In [ ]:
. ./nbs_header.ps1
. ./core.ps1
In [ ]:
{ . "$ScriptDir/../apps/builder/build.ps1" } | Invoke-Block

── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # DibParser (Polyglot)                                                       │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── pwsh ────────────────────────────────────────────────────────────────────────

ls ~/.nuget/packages/argu



╭─[ 652.60ms - stdout ]────────────────────────────────────────────────────────╮

│                                                                              │

│     Directory: C:\Users\i574n\.nuget\packages\argu                           │

│                                                                              │

│ Mode                 LastWriteTime         Length[     │

│ 32;1m Name                                                                 │

│ ----                 -------------         ------ [      │

│ 32;1m----                                                                  │

│ d----          2023-05-17  3:38 PM                6.1.1               │

│ d----          2024-03-12  8:22 PM                6.1.4               │

│ d----          2024-01-29  5:12 PM                6.1.5               │

│ d----          2024-03-12  8:20 PM                6.2.0               │

│ d----          2024-02-23  6:50 PM                6.2.1               │

│ d----          2024-03-12  8:15 PM                6.2.2               │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#r 

@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

dard2.1/FSharp.Control.AsyncSeq.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

0/System.Reactive.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/

netstandard2.0/System.Reactive.Linq.dll"

#r 

@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

#r 

@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

b/net6.0/System.CommandLine.dll"

#r 

@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP

arsec.dll"

#r 

@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP

arsecCS.dll"



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import ../../lib/fsharp/CommonFSharp.fs

#!import ../../lib/fsharp/Async.fs

#!import ../../lib/fsharp/AsyncSeq.fs

#!import ../../lib/fsharp/Runtime.fs

#!import ../../lib/fsharp/FileSystem.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module CommonFSharp =



    open Common



    /// ## getUnionCaseName



    let inline getUnionCaseName<'T> (x: 'T) =

        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

        | case, _ -> case.Name





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Async =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## choice



    let inline choice asyncs = async {

        let e = Event<_> ()

        use cts = new System.Threading.CancellationTokenSource ()

        let fn =

            asyncs

            |> Seq.map (fun a -> async {

                let! x = a

                e.Trigger x

            })

            |> Async.Parallel

            |> Async.Ignore

        Async.Start (fn, cts.Token)

        let! result = Async.AwaitEvent e.Publish

        cts.Cancel ()

        return result

    }



    /// ## map



    let inline map fn a = async {

        let! x = a

        return fn x

    }



    /// ## catch



    let inline catch a =

   ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module AsyncSeq =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## subscribeEvent



    let inline subscribeEvent (event: IEvent<'H, 'A>) map =

        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 

'A>(event.AddHandler, event.RemoveHandler)

        System.Reactive.Linq.Observable.Select (observable, fun event -> map 

event.EventArgs)

        |> FSharp.Control.AsyncSeq.ofObservableBuffered



    let subscribeToken (token : System.Threading.CancellationToken) =

        let tcs = new System.Threading.Tasks.TaskCompletionSource ()

        System.Action tcs.SetResult |> token.Register |> ignore

        let start = System.DateTime.Now.Ticks

        FSharp.Control.A...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Runtime =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## isWindows



    let isWindows =

        fun () ->

            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

                System.Runtime.InteropServices.OSPlatform.Windows

        |> memoize



    /// ## getExecutableSuffix



    let inline getExecutableSuffix () =

        if isWindows ()

        then ".exe"

        else ""



    /// ## splitCommand



    type private CommandParseStep =

        | Start

        | Path of quoted: bool

        | Arguments



    let splitCommand (command: string) =

        let rec loop (path, args) chars step =

            match chars, step with

            | ('"' | '\'') ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module FileSystem =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## readAllTextAsync



    let inline readAllTextAsync path =

        path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask



    /// ## fileExistsContent



    let inline fileExistsContent path content = async {

        if path |> System.IO.File.Exists |> not

        then return false

        else

            let! existingContent = path |> readAllTextAsync

            return content = existingContent

    }



    /// ## writeAllTextAsync



    let inline writeAllTextAsync path contents =

        System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask



    /// ## write...



── fsharp ──────────────────────────────────────────────────────────────────────

#if !INTERACTIVE

open Lib

#endif



── fsharp ──────────────────────────────────────────────────────────────────────

open Common

open FParsec



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## escapeCell (test)                                                         │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let inline escapeCell input =

    input

    |> SpiralSm.split "\n"

    |> Array.map (function

        | line when line |> SpiralSm.starts_with "\\#!" || line |> 

SpiralSm.starts_with "\\#r" ->

            System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")

        | line -> line

    )

    |> SpiralSm.concat "\n"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



$"a{nl}\\#!magic{nl}b{nl}"

|> escapeCell

|> _assertEqual (

    $"a{nl}#!magic{nl}b{nl}"

)



╭─[ 53.51ms - stdout ]─────────────────────────────────────────────────────────╮

│ a                                                                            │

│ #!magic                                                                      │

│ b                                                                            │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## magicMarker                                                               │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let magicMarker : Parser<string, unit> = pstring "#!"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic"

|> run magicMarker

|> _assertEqual (

    Success ("#!", (), Position ("", 2, 1, 3))

)



╭─[ 52.33ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: #!                                                              │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 2                                                             │

│         Line: 1                                                              │

│         Column: 3                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"##!magic"

|> run magicMarker

|> _assertEqual (

    Failure (

        $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",

        ParserError (

            Position ("", 0, 1, 1),

            (),

            ErrorMessageList (ExpectedString "#!")

        ),

        ()

    )

)



╭─[ 51.47ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: Error in Ln: 1 Col: 1                                           │

│ ##!magic                                                                     │

│ ^                                                                            │

│ Expecting: '#!'                                                              │

│                                                                              │

│       Item2: ParserError                                                     │

│         Position: Position                                                   │

│           Index: 0                                                           │

│           Line: 1                                                            │

│           Column: 1                                                          │

│           StreamName:                                                        │

│         UserState: <null>                                                    │

│         Messages: ErrorMessageList                                           │

│           Head: ExpectedString                                               │

│             String: #!                                                       │

│             Type: ExpectedString                                             │

│           Tail: <null>                                                       │

│       Item3: <null>                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## magicCommand                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let magicCommand =

    magicMarker

    >>. manyTill anyChar newline

    |>> (System.String.Concat >> SpiralSm.trim)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic



a"

|> run magicCommand

|> _assertEqual (

    Success ("magic", (), Position ("", 8, 2, 1))

)



╭─[ 31.97ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: magic                                                           │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 8                                                             │

│         Line: 2                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



" #!magic



a"

|> run magicCommand

|> _assertEqual (

    Failure (

        $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",

        ParserError (

            Position ("", 0, 1, 1),

            (),

            ErrorMessageList (ExpectedString "#!")

        ),

        ()

    )

)



╭─[ 33.53ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: Error in Ln: 1 Col: 1                                           │

│  #!magic                                                                     │

│ ^                                                                            │

│ Expecting: '#!'                                                              │

│                                                                              │

│       Item2: ParserError                                                     │

│         Position: Position                                                   │

│           Index: 0                                                           │

│           Line: 1                                                            │

│           Column: 1                                                          │

│           StreamName:                                                        │

│         UserState: <null>                                                    │

│         Messages: ErrorMessageList                                           │

│           Head: ExpectedString                                               │

│             String: #!                                                       │

│             Type: ExpectedString                                             │

│           Tail: <null>                                                       │

│       Item3: <null>                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## content                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let content =

    (newline >>. magicMarker) <|> (eof >>. preturn "")

    |> attempt

    |> lookAhead

    |> manyTill anyChar

    |>> (System.String.Concat >> SpiralSm.trim)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic





a





"

|> run content

|> _assertEqual (

    Success ("#!magic





a", (), Position ("", 14, 7, 1))

)



╭─[ 33.65ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: #!magic                                                         │

│                                                                              │

│                                                                              │

│ a                                                                            │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 14                                                            │

│         Line: 7                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Block                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type Block =

    {

        magic : string

        content : string

    }



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## block                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let block =

    pipe2

        magicCommand

        content

        (fun magic content ->

            {

                magic = magic

                content = content

            })



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic





a





"

|> run block

|> _assertEqual (

    Success (

        { magic = "magic"; content = "a" },

        (),

        Position ("", 14, 7, 1)

    )

)



╭─[ 43.07ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: Block                                                           │

│         magic: magic                                                         │

│         content: a                                                           │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 14                                                            │

│         Line: 7                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## blocks                                                                    │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let blocks =

    skipMany newline

    >>. sepEndBy block (skipMany1 newline)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test





"#!magic1



a



\#!magic2



b



"

|> escapeCell

|> run blocks

|> _assertEqual (

    Success (

        [[

            { magic = "magic1"; content = "a" }

            { magic = "magic2"; content = "b" }

        ]],

        (),

        Position ("", 26, 9, 1)

    )

)



╭─[ 48.11ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: FSharpList<Block>                                               │

│         - magic: magic1                                                      │

│           content: a                                                         │

│         - magic: magic2                                                      │

│           content: b                                                         │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 26                                                            │

│         Line: 9                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Output                                                                    │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type Output =

    | Fs

    | Md

    | Spi

    | Spir



let inline kernelOutputs magic =

    match magic with

    | "fsharp" -> [[ Fs ]]

    | "markdown" -> [[ Md ]]

    | "spiral" -> [[ Spi; Spir ]]

    | _ -> [[]]



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## formatBlock                                                               │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline formatBlock output (block : Block) =

    match output, block with

    | output, { magic = "markdown"; content = content } ->

        let markdownComment =

            match output with

            | Spi | Spir -> "// // "

            | Fs -> "/// "

            | _ -> ""

        content

        |> SpiralSm.split "\n"

        |> Array.map (SpiralSm.trim_end [[||]])

        |> Array.filter (SpiralSm.ends_with " (test)" >> not)

        |> Array.map (function

            | "" -> markdownComment |> SpiralSm.trim

            | line -> System.Text.RegularExpressions.Regex.Replace (line, 

"^\\s*", $"$&{markdownComment}")

        )

        |> SpiralSm.concat "\n"

    | Fs, { magic = "fsharp"; content = content } ->

        let trimmedContent = content |> SpiralSm.trim

        if trimmedContent |> SpiralSm.starts_with "//// test" || trimmedContent 

|> SpiralSm.starts_with "//// ignore"

        then ""

        else

            content

            |> SpiralSm.split "\n"

            |> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with 

"#r" >> not)

            |> SpiralSm.concat "\n"

    | (Spi | Spir), { magic = "spiral"; content = content } ->

        let trimmedContent = content |> SpiralSm.trim

        if trimmedContent |> SpiralSm.starts_with "// // test" || trimmedContent

|> SpiralSm.starts_with "// // ignore"

        then ""

        else content

    | _ -> ""



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!markdown





a



    b



c





\#!markdown





c





\#!fsharp





let a = 1"

|> escapeCell

|> run block

|> function

    | Success (block, _, _) -> formatBlock Fs block

    | Failure (msg, _, _) -> failwith msg

|> _assertEqual "/// a

///

    /// b

///

/// c"



╭─[ 58.48ms - stdout ]─────────────────────────────────────────────────────────╮

│ /// a                                                                        │

│ ///                                                                          │

│     /// b                                                                    │

│ ///                                                                          │

│ /// c                                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## formatBlocks                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline formatBlocks output blocks =

    blocks

    |> List.map (formatBlock output)

    |> List.filter ((<>) "")

    |> SpiralSm.concat "\n\n"

    |> fun s -> s + "\n"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!markdown





a



b





\#!markdown





c





\#!fsharp





let a = 1



\#!markdown



d (test)



\#!fsharp



//// test



let a = 2



\#!markdown



e



\#!fsharp



let a = 3"

|> escapeCell

|> run blocks

|> function

    | Success (blocks, _, _) -> formatBlocks Fs blocks

    | Failure (msg, _, _) -> failwith msg

|> _assertEqual "/// a

///

/// b



/// c



let a = 1



/// e



let a = 3

"



╭─[ 60.18ms - stdout ]─────────────────────────────────────────────────────────╮

│ /// a                                                                        │

│ ///                                                                          │

│ /// b                                                                        │

│                                                                              │

│ /// c                                                                        │

│                                                                              │

│ let a = 1                                                                    │

│                                                                              │

│ /// e                                                                        │

│                                                                              │

│ let a = 3                                                                    │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## parse                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline parse output input =

    match run blocks input with

    | Success (blocks, _, _) ->

        let blocks =

            blocks

            |> List.filter (fun block ->

                block.magic |> kernelOutputs |> List.contains output || 

block.magic = "markdown"

            )



        match blocks with

        | { magic = "markdown"; content = content } :: _

            when output = Fs

            && content |> SpiralSm.starts_with "# "

            && content |> SpiralSm.ends_with ")"

            ->

            let inline indentBlock (block : Block) =

                { block with

                    content =

                        block.content

                        |> SpiralSm.split "\n"

                        |> Array.fold

                            (fun (lines, isMultiline) line ->

                                let trimmedLine = line |> SpiralSm.trim

                                if trimmedLine = ""

                                then "" :: lines, isMultiline

                                else

                                    let inline singleQuoteLine () =

                                        trimmedLine |> Seq.sumBy ((=) '"' >> 

System.Convert.ToInt32) = 1

                                        && trimmedLine |> SpiralSm.contains 

@"'""'" |> not

                                        && trimmedLine |> SpiralSm.ends_with "{"

|> not

                                        && trimmedLine |> SpiralSm.ends_with 

"{|" |> not

                                        && trimmedLine |> SpiralSm.starts_with 

"}" |> not

                                        && trimmedLine |> SpiralSm.starts_with 

"|}" |> not



                                    match isMultiline, trimmedLine |> 

SpiralSm.split_string [[| $"{q}{q}{q}" |]] with

                                    | false, [[| _; _ |]] ->

                                        $"    {line}" :: lines, true



                                    | true, [[| _; _ |]] ->

                                        line :: lines, false



                                    | false, _ when singleQuoteLine () ->

                                        $"    {line}" :: lines, true



                                    | false, _ when line |> SpiralSm.starts_with

"#" && block.magic = "fsharp" ->

                                        line :: lines, false



                                    | false, _ ->

                                        $"    {line}" :: lines, false



                                    | true, _ when singleQuoteLine () && line |>

SpiralSm.starts_with "    " ->

                                        $"    {line}" :: lines, false



                                    | true, _ when singleQuoteLine () ->

                                        line :: lines, false



                                    | true, _ ->

                                        line :: lines, true

                            )

                            ([[]], false)

                        |> fst

                        |> List.rev

                        |> SpiralSm.concat "\n"

                }



            let moduleName, namespaceName =

                System.Text.RegularExpressions.Regex.Match (content, @"# (.*) 

\((.*)\)$")

                |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value



            let moduleBlock =

                {

                    magic = "fsharp"

                    content =

                        $"#if !INTERACTIVE

namespace {namespaceName}

#endif



module {moduleName} ="

                }



            blocks

            |> List.indexed

            |> List.fold

                (fun blocks (index, block) ->

                    match index with

                    | 0 -> blocks

                    | 1 -> indentBlock block :: moduleBlock :: blocks

                    | _ -> indentBlock block :: blocks

                )

                [[]]

            |> List.rev

        | _ -> blocks

        |> Result.Ok

    | Failure (errorMsg, _, _) -> Result.Error errorMsg



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let example1 =

    $"""#!meta



{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":

"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}



\#!markdown



# TestModule (TestNamespace)



\#!fsharp



\#!import file.dib



\#!fsharp



\#r "nuget:Expecto"



\#!markdown



## ParserLibrary



\#!fsharp



open System



\#!markdown



## x (test)



\#!fsharp



//// ignore



let x = 1



\#!spiral



// // test



inl x = 0i32



\#!spiral



inl x = 0i32



\#!markdown



### TextInput



\#!fsharp



let str1 = "abc

def"



let str2 =

    "abc\

def"



let str3 =

    $"1{{

        1

    }}1"



let str4 =

    $"1{{({{|

        a = 1

    |}}).a}}1"



let str5 =

    "abc \

        def"



let x =

    match '"' with

    | '"' -> true

    | _ -> false



let long1 = {q}{q}{q}a{q}{q}{q}



let long2 =

    {q}{q}{q}

a

{q}{q}{q}



\#!fsharp



type Position =

    {{

#if INTERACTIVE

        line : string

#else

        line : int

#endif

        column : int

    }}"""

    |> escapeCell



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



example1

|> parse Fs

|> Result.toOption

|> Option.get

|> (formatBlocks Fs)

|> _assertEqual $"""#if !INTERACTIVE

namespace TestNamespace

#endif



module TestModule =



    /// ## ParserLibrary



    open System



    /// ### TextInput



    let str1 = "abc

def"



    let str2 =

        "abc\

def"



    let str3 =

        $"1{{

            1

        }}1"



    let str4 =

        $"1{{({{|

            a = 1

        |}}).a}}1"



    let str5 =

        "abc \

            def"



    let x =

        match '"' with

        | '"' -> true

        | _ -> false



    let long1 = {q}{q}{q}a{q}{q}{q}



    let long2 =

        {q}{q}{q}

a

{q}{q}{q}



    type Position =

        {{

#if INTERACTIVE

            line : string

#else

            line : int

#endif

            column : int

        }}

"""



╭─[ 172.03ms - stdout ]────────────────────────────────────────────────────────╮

│ #if !INTERACTIVE                                                             │

│ namespace TestNamespace                                                      │

│ #endif                                                                       │

│                                                                              │

│ module TestModule =                                                          │

│                                                                              │

│     /// ## ParserLibrary                                                     │

│                                                                              │

│     open System                                                              │

│                                                                              │

│     /// ### TextInput                                                        │

│                                                                              │

│     let str1 = "abc                                                          │

│ def"                                                                         │

│                                                                              │

│     let str2 =                                                               │

│         "abc\                                                                │

│ def"                                                                         │

│                                                                              │

│     let str3 =                                                               │

│         $"1{                                                                 │

│             1                                                                │

│         }1"                                                                  │

│                                                                              │

│     let str4 =                                                               │

│         $"1{({|                                                              │

│             a = 1                                                            │

│         |}).a}1"                                                             │

│                                                                              │

│     let str5 =                                                               │

│         "abc \                                                               │

│             def"                                                             │

│                                                                              │

│     let x =                                                                  │

│         match '"' with                                                       │

│         | '"' -> true                                                        │

│         | _ -> false                                                         │

│                                                                              │

│     let long1 = """a"""                                                      │

│                                                                              │

│     let long2 =                                                              │

│         """                                                                  │

│ a                                                                            │

│ """                                                                          │

│                                                                              │

│     type Position =                                                          │

│         {                                                                    │

│ #if INTERACTIVE                                                              │

│             line : string                                                    │

│ #else                                                                        │

│             line : int                                                       │

│ #endif                                                                       │

│             column : int                                                     │

│         }                                                                    │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



example1

|> parse Md

|> Result.toOption

|> Option.get

|> (formatBlocks Md)

|> _assertEqual "# TestModule (TestNamespace)



## ParserLibrary



### TextInput

"



╭─[ 158.50ms - stdout ]────────────────────────────────────────────────────────╮

│ # TestModule (TestNamespace)                                                 │

│                                                                              │

│ ## ParserLibrary                                                             │

│                                                                              │

│ ### TextInput                                                                │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



example1

|> parse Spi

|> Result.toOption

|> Option.get

|> (formatBlocks Spi)

|> _assertEqual "// // # TestModule (TestNamespace)



// // ## ParserLibrary



inl x = 0i32



// // ### TextInput

"



╭─[ 164.24ms - stdout ]────────────────────────────────────────────────────────╮

│ // // # TestModule (TestNamespace)                                           │

│                                                                              │

│ // // ## ParserLibrary                                                       │

│                                                                              │

│ inl x = 0i32                                                                 │

│                                                                              │

│ // // ### TextInput                                                          │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## parseDibCode                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline parseDibCode output file = async {

    let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"

    trace Debug (fun () -> "parseDibCode") getLocals

    let! input = file |> FileSystem.readAllTextAsync

    match parse output input with

    | Result.Ok blocks -> return blocks |> formatBlocks output

    | Result.Error msg -> return failwith msg

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## writeDibCode                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline writeDibCode output path = async {

    let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"

    trace Debug (fun () -> "writeDibCode") getLocals

    let! result = parseDibCode output path

    let outputPath = path |> SpiralSm.replace ".dib" $".{output |> string |> 

SpiralSm.to_lower}"

    do! result |> FileSystem.writeAllTextAsync outputPath

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Arguments                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

[[<RequireQualifiedAccess>]]

type Arguments =

    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]

        File of file : string * Output



    interface Argu.IArgParserTemplate with

        member s.Usage =

            match s with

            | File _ -> nameof File



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



Argu.ArgumentParser.Create<Arguments>().PrintUsage ()



╭─[ 107.28ms - return value ]──────────────────────────────────────────────────╮

│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir>                          │

│                                                                              │

│ FILE:                                                                        │

│                                                                              │

│     <file> <fs|md|spi|spir>                                                  │

│                           File                                               │

│                                                                              │

│ OPTIONS:                                                                     │

│                                                                              │

│     --help                display this list of options.                      │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## main                                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let main args =

    let argsMap = args |> Runtime.parseArgsMap<Arguments>



    let files =

        argsMap.[[nameof Arguments.File]]

        |> List.map (function

            | Arguments.File (path, output) -> path, output

        )



    files

    |> List.map (fun (path, output) -> path |> writeDibCode output)

    |> Async.Parallel

    |> Async.Ignore

    |> Async.runWithTimeout 30000

    |> function

        | Some () -> 0

        | None -> 1



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let args =

    System.Environment.GetEnvironmentVariable "ARGS"

    |> Runtime.splitArgs

    |> Seq.toArray



match args with

| [[||]] -> 0

| args -> if main args = 0 then 0 else failwith "main failed"



╭─[ 159.91ms - return value ]──────────────────────────────────────────────────╮

│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │

│ .dni-code-hint {                                                             │

│     font-style: italic;                                                      │

│     overflow: hidden;                                                        │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview {                                                              │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview td {                                                           │

│     vertical-align: top;                                                     │

│     text-align: start;                                                       │

│ }                                                                            │

│ details.dni-treeview {                                                       │

│     padding-left: 1em;                                                       │

│ }                                                                            │

│ table td {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ table tr {                                                                   │

│     vertical-align: top;                                                     │

│     margin: 0em 0px;                                                         │

│ }                                                                            │

│ table tr td pre                                                              │

│ {                                                                            │

│     vertical-align: top !important;                                          │

│     margin: 0em 0px !important;                                              │

│ }                                                                            │

│ table th {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ </style>                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 170.26ms - stdout ]────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Builder.dib            │

│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Builder.dib            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # Builder (Polyglot)                                                         │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── fsharp ──────────────────────────────────────────────────────────────────────

#r 

@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

dard2.1/FSharp.Control.AsyncSeq.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

0/System.Reactive.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/

netstandard2.0/System.Reactive.Linq.dll"

#r 

@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

#r 

@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

b/net6.0/System.CommandLine.dll"



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import ../../lib/fsharp/CommonFSharp.fs

#!import ../../lib/fsharp/Async.fs

#!import ../../lib/fsharp/AsyncSeq.fs

#!import ../../lib/fsharp/Networking.fs

#!import ../../lib/fsharp/Runtime.fs

#!import ../../lib/fsharp/FileSystem.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module CommonFSharp =



    open Common



    /// ## getUnionCaseName



    let inline getUnionCaseName<'T> (x: 'T) =

        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

        | case, _ -> case.Name





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Async =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## choice



    let inline choice asyncs = async {

        let e = Event<_> ()

        use cts = new System.Threading.CancellationTokenSource ()

        let fn =

            asyncs

            |> Seq.map (fun a -> async {

                let! x = a

                e.Trigger x

            })

            |> Async.Parallel

            |> Async.Ignore

        Async.Start (fn, cts.Token)

        let! result = Async.AwaitEvent e.Publish

        cts.Cancel ()

        return result

    }



    /// ## map



    let inline map fn a = async {

        let! x = a

        return fn x

    }



    /// ## catch



    let inline catch a =

   ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module AsyncSeq =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## subscribeEvent



    let inline subscribeEvent (event: IEvent<'H, 'A>) map =

        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 

'A>(event.AddHandler, event.RemoveHandler)

        System.Reactive.Linq.Observable.Select (observable, fun event -> map 

event.EventArgs)

        |> FSharp.Control.AsyncSeq.ofObservableBuffered



    let subscribeToken (token : System.Threading.CancellationToken) =

        let tcs = new System.Threading.Tasks.TaskCompletionSource ()

        System.Action tcs.SetResult |> token.Register |> ignore

        let start = System.DateTime.Now.Ticks

        FSharp.Control.A...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Networking =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## testPortOpen



    let inline testPortOpen port = async {

        let! ct = Async.CancellationToken

        use client = new System.Net.Sockets.TcpClient ()

        try

            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 

Async.awaitValueTaskUnit

            return true

        with ex ->

            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 

SpiralSm.format_exception}") getLocals

            return false

    }



    let inline testPortOpenTimeout timeout port = async {

        let! result =

            testPortOpen port

            |> Async.runWithTimeoutAsync timeout

        return

          ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Runtime =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## isWindows



    let isWindows =

        fun () ->

            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

                System.Runtime.InteropServices.OSPlatform.Windows

        |> memoize



    /// ## getExecutableSuffix



    let inline getExecutableSuffix () =

        if isWindows ()

        then ".exe"

        else ""



    /// ## splitCommand



    type private CommandParseStep =

        | Start

        | Path of quoted: bool

        | Arguments



    let splitCommand (command: string) =

        let rec loop (path, args) chars step =

            match chars, step with

            | ('"' | '\'') ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module FileSystem =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## readAllTextAsync



    let inline readAllTextAsync path =

        path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask



    /// ## fileExistsContent



    let inline fileExistsContent path content = async {

        if path |> System.IO.File.Exists |> not

        then return false

        else

            let! existingContent = path |> readAllTextAsync

            return content = existingContent

    }



    /// ## writeAllTextAsync



    let inline writeAllTextAsync path contents =

        System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask



    /// ## write...



── fsharp ──────────────────────────────────────────────────────────────────────

#if !INTERACTIVE

open Lib

#endif



── fsharp ──────────────────────────────────────────────────────────────────────

open Common

open SpiralFileSystem.Operators



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## buildProject                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline buildProject runtime outputDir path = async {

    let fullPath = path |> System.IO.Path.GetFullPath

    let fileDir = fullPath |> System.IO.Path.GetDirectoryName

    let extension = fullPath |> System.IO.Path.GetExtension



    let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"

    trace Debug (fun () -> "buildProject") getLocals



    match extension with

    | ".fsproj" -> ()

    | _ -> failwith "Invalid project file"



    let runtimes =

        runtime

        |> Option.map List.singleton

        |> Option.defaultValue [[ "linux-x64"; "win-x64" ]]



    let outputDir = outputDir |> Option.defaultValue "dist"



    return!

        runtimes

        |> List.map (fun runtime -> async {

            let! exitCode, _result =

                Runtime.executeWithOptionsAsync

                    {

                        Command = $@"dotnet publish ""{path}"" --configuration 

Release --output ""{outputDir}"" --runtime {runtime}"

                        CancellationToken = None

                        OnLine = None

                        WorkingDirectory = Some fileDir

                    }



            return exitCode

        })

        |> Async.Sequential

        |> Async.map Array.sum

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## persistCodeProject                                                        │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline persistCodeProject packages modules name code = async {

    let getLocals () = $"packages: {packages} / modules: {modules} / name: 

{name} / code.Length: {code |> String.length} / {getLocals ()}"

    trace Debug (fun () -> "persistCodeProject") getLocals



    let repositoryRoot = SpiralFileSystem.get_source_directory () |> 

SpiralFileSystem.find_parent ".paket" false



    let targetDir = repositoryRoot </> "target/polyglot/builder" </> name

    System.IO.Directory.CreateDirectory targetDir |> ignore



    let filePath = targetDir </> $"{name}.fs" |> System.IO.Path.GetFullPath

    do! code |> FileSystem.writeAllTextExists filePath



    let modulesCode =

        modules

        |> List.map (fun path -> $"""<Compile Include="{repositoryRoot </> 

path}" />""")

        |> SpiralSm.concat "\n        "



    let fsprojPath = targetDir </> $"{name}.fsproj"

    let fsprojCode = $"""<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>

        <TargetFramework>net9.0</TargetFramework>

        <LangVersion>preview</LangVersion>

        <RollForward>Major</RollForward>

        <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

        <PublishAot>false</PublishAot>

        <PublishTrimmed>false</PublishTrimmed>

        <PublishSingleFile>true</PublishSingleFile>

        <SelfContained>true</SelfContained>

        <Version>0.0.1-alpha.1</Version>

        <OutputType>Exe</OutputType>

    </PropertyGroup>



    <ItemGroup>

        {modulesCode}

        <Compile Include="{filePath}" />

    </ItemGroup>



    <Import Project="{repositoryRoot}/.paket/Paket.Restore.targets" />

</Project>

"""

    do! fsprojCode |> FileSystem.writeAllTextExists fsprojPath



    let paketReferencesPath = targetDir </> "paket.references"

    let paketReferencesCode =

        "FSharp.Core" :: packages

        |> SpiralSm.concat "\n"

    do! paketReferencesCode |> FileSystem.writeAllTextExists paketReferencesPath



    return fsprojPath

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## buildCode                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline buildCode runtime packages modules outputDir name code = async {

    let! fsprojPath = code |> persistCodeProject packages modules name

    return! fsprojPath |> buildProject runtime outputDir

}



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"1 + 1 |> ignore"

|> buildCode None [[]] [[]] None "test1"

|> Async.runWithTimeout 180000

|> _assertEqual (Some 0)



╭─[ 23.16s - stdout ]──────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] persistCodeProject / packages: [] / modules: [] / name:  │

│ test1 / code.Length: 15                                                      │

│ 00:00:00 #2 [Debug] buildProject / fullPath:                                 │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj              │

│ 00:00:00 #3 [Debug] executeAsync / options: { Command =                      │

│    "dotnet publish                                                           │

│ "C:\home\git\polyglot\target/polyglot/builder\test1\test1.fsproj"            │

│ --configuration Release --output "dist" --runtime linux-x64"                 │

│   WorkingDirectory = Some                                                    │

│ "C:\home\git\polyglot\target\polyglot\builder\test1"                         │

│   CancellationToken = None                                                   │

│   OnLine = None }                                                            │

│ 00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f   │

│ for .NET                                                                     │

│ 00:00:01 #5 [Verbose] >   Determining projects to restore...                 │

│ 00:00:01 #6 [Verbose] >   Restored                                           │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj (in 444 ms). │

│ 00:00:02 #7 [Verbose] >                                                      │

│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │

│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │

│ ce.targets(313,5): message NETSDK1057: You are using a preview version of    │

│ .NET. See: https://aka.ms/dotnet-support-policy [                            │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj]             │

│ 00:00:04 #8 [Verbose] >                                                      │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fs(1,16): warning   │

│ FS0988: Main module of program is empty: nothing will happen when it is run  │

│ [C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj]            │

│ 00:00:05 #9 [Verbose] >   test1 ->                                           │

│ C:\home\git\polyglot\target\polyglot\builder\test1\bin\Release\net9.0\linux- │

│ x64\test1.dll                                                                │

│ 00:00:06 #10 [Verbose] >   test1 ->                                          │

│ C:\home\git\polyglot\target\polyglot\builder\test1\dist\                     │

│ 00:00:06 #11 [Debug] executeAsync / exitCode: 0 / output.Length: 910         │

│ 00:00:06 #12 [Debug] executeAsync / options: { Command =                     │

│    "dotnet publish                                                           │

│ "C:\home\git\polyglot\target/polyglot/builder\test1\test1.fsproj"            │

│ --configuration Release --output "dist" --runtime win-x64"                   │

│   WorkingDirectory = Some                                                    │

│ "C:\home\git\polyglot\target\polyglot\builder\test1"                         │

│   CancellationToken = None                                                   │

│   OnLine = None }                                                            │

│ 00:00:07 #13 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │

│ for .NET                                                                     │

│ 00:00:07 #14 [Verbose] >   Determining projects to restore...                │

│ 00:00:08 #15 [Verbose] >   Restored                                          │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj (in 365 ms). │

│ 00:00:08 #16 [Verbose] >                                                     │

│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │

│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │

│ ce.targets(313,5): message NETSDK1057: You are using a preview version of    │

│ .NET. See: https://aka.ms/dotnet-support-policy [                            │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj]             │

│ 00:00:12 #17 [Verbose] >                                                     │

│ C:\home\git\polyglot\target\polyglot\builder\test1\test1.fs(1,16): warning   │

│ FS0988: Main module of program is empty: nothing will happen when it is run  │

│ [C:\home\git\polyglot\target\polyglot\builder\test1\test1.fsproj]            │

│ 00:00:13 #18 [Verbose] >   test1 ->                                          │

│ C:\home\git\polyglot\target\polyglot\builder\test1\bin\Release\net9.0\win-x6 │

│ 4\test1.dll                                                                  │

│ 00:00:22 #19 [Verbose] >   test1 ->                                          │

│ C:\home\git\polyglot\target\polyglot\builder\test1\dist\                     │

│ 00:00:22 #20 [Debug] executeAsync / exitCode: 0 / output.Length: 908         │

│ FSharpOption<Int32>                                                          │

│       Value: 0                                                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"1 + a |> ignore"

|> buildCode None [[]] [[]] None "test2"

|> Async.runWithTimeout 180000

|> _assertEqual (Some 2)



╭─[ 7.31s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:23 #21 [Debug] persistCodeProject / packages: [] / modules: [] / name: │

│ test2 / code.Length: 15                                                      │

│ 00:00:23 #22 [Debug] buildProject / fullPath:                                │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj              │

│ 00:00:23 #23 [Debug] executeAsync / options: { Command =                     │

│    "dotnet publish                                                           │

│ "C:\home\git\polyglot\target/polyglot/builder\test2\test2.fsproj"            │

│ --configuration Release --output "dist" --runtime linux-x64"                 │

│   WorkingDirectory = Some                                                    │

│ "C:\home\git\polyglot\target\polyglot\builder\test2"                         │

│   CancellationToken = None                                                   │

│   OnLine = None }                                                            │

│ 00:00:23 #24 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │

│ for .NET                                                                     │

│ 00:00:23 #25 [Verbose] >   Determining projects to restore...                │

│ 00:00:24 #26 [Verbose] >   Restored                                          │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj (in 358 ms). │

│ 00:00:24 #27 [Verbose] >                                                     │

│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │

│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │

│ ce.targets(313,5): message NETSDK1057: You are using a preview version of    │

│ .NET. See: https://aka.ms/dotnet-support-policy [                            │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj]             │

│ 00:00:26 #28 [Verbose] >                                                     │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fs(1,5): error      │

│ FS0039: The value or constructor 'a' is not defined. [                       │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj]             │

│ 00:00:26 #29 [Debug] executeAsync / exitCode: 1 / output.Length: 715         │

│ 00:00:26 #30 [Debug] executeAsync / options: { Command =                     │

│    "dotnet publish                                                           │

│ "C:\home\git\polyglot\target/polyglot/builder\test2\test2.fsproj"            │

│ --configuration Release --output "dist" --runtime win-x64"                   │

│   WorkingDirectory = Some                                                    │

│ "C:\home\git\polyglot\target\polyglot\builder\test2"                         │

│   CancellationToken = None                                                   │

│   OnLine = None }                                                            │

│ 00:00:26 #31 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │

│ for .NET                                                                     │

│ 00:00:27 #32 [Verbose] >   Determining projects to restore...                │

│ 00:00:28 #33 [Verbose] >   Restored                                          │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj (in 370 ms). │

│ 00:00:28 #34 [Verbose] >                                                     │

│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │

│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │

│ ce.targets(313,5): message NETSDK1057: You are using a preview version of    │

│ .NET. See: https://aka.ms/dotnet-support-policy [                            │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj]             │

│ 00:00:29 #35 [Verbose] >                                                     │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fs(1,5): error      │

│ FS0039: The value or constructor 'a' is not defined. [                       │

│ C:\home\git\polyglot\target\polyglot\builder\test2\test2.fsproj]             │

│ 00:00:29 #36 [Debug] executeAsync / exitCode: 1 / output.Length: 715         │

│ FSharpOption<Int32>                                                          │

│       Value: 2                                                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## readFile                                                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline readFile path = async {

    let! code = path |> FileSystem.readAllTextAsync



    let code = System.Text.RegularExpressions.Regex.Replace (

        code,

        @"( *)(let\s+main\s+.*?\s*=)",

        fun m -> m.Groups.[[1]].Value + "[[<EntryPoint>]]\n" + 

m.Groups.[[1]].Value + m.Groups.[[2]].Value

    )



    let codeTrim = code |> SpiralSm.trim_end [[||]]

    return

        if codeTrim |> SpiralSm.ends_with "\n()"

        then codeTrim |> SpiralSm.slice 0 ((codeTrim |> String.length) - 3)

        else code

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## buildFile                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline buildFile runtime packages modules path = async {

    let fullPath = path |> System.IO.Path.GetFullPath

    let dir = fullPath |> System.IO.Path.GetDirectoryName

    let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension

    let! code = fullPath |> readFile

    return! code |> buildCode runtime packages modules (dir </> "dist" |> Some) 

name

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## persistFile                                                               │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline persistFile packages modules path = async {

    let fullPath = path |> System.IO.Path.GetFullPath

    let name = fullPath |> System.IO.Path.GetFileNameWithoutExtension

    let! code = fullPath |> readFile

    return! code |> persistCodeProject packages modules name

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Arguments                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

[[<RequireQualifiedAccess>]]

type Arguments =

    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce>]] 

Path of path : string

    | [[<Argu.ArguAttributes.Unique>]] Packages of packages : string list

    | [[<Argu.ArguAttributes.Unique>]] Modules of modules : string list

    | [[<Argu.ArguAttributes.Unique>]] Runtime of runtime : string

    | [[<Argu.ArguAttributes.Unique>]] Persist_Only



    interface Argu.IArgParserTemplate with

        member s.Usage =

            match s with

            | Path _ -> nameof Path

            | Packages _ -> nameof Packages

            | Modules _ -> nameof Modules

            | Runtime _ -> nameof Runtime

            | Persist_Only -> nameof Persist_Only



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



Argu.ArgumentParser.Create<Arguments>().PrintUsage ()



╭─[ 124.02ms - return value ]──────────────────────────────────────────────────╮

│ USAGE: dotnet-repl [--help] [--packages [<packages>...]]                     │

│                    [--modules [<modules>...]] [--runtime <runtime>]          │

│                    [--persist-only] <path>                                   │

│                                                                              │

│ PATH:                                                                        │

│                                                                              │

│     <path>                Path                                               │

│                                                                              │

│ OPTIONS:                                                                     │

│                                                                              │

│     --packages [<packages>...]                                               │

│                           Packages                                           │

│     --modules [<modules>...]                                                 │

│                           Modules                                            │

│     --runtime <runtime>   Runtime                                            │

│     --persist-only        Persist_Only                                       │

│     --help                display this list of options.                      │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## main                                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let main args =

    let argsMap = args |> Runtime.parseArgsMap<Arguments>



    let path =

        match argsMap.[[nameof Arguments.Path]] with

        | [[ Arguments.Path path ]] -> Some path

        | _ -> None

        |> Option.get



    let packages =

        match argsMap |> Map.tryFind (nameof Arguments.Packages) with

        | Some [[ Arguments.Packages packages ]] -> packages

        | _ -> [[]]



    let modules =

        match argsMap |> Map.tryFind (nameof Arguments.Modules) with

        | Some [[ Arguments.Modules modules ]] -> modules

        | _ -> [[]]



    let runtime =

        match argsMap |> Map.tryFind (nameof Arguments.Runtime) with

        | Some [[ Arguments.Runtime runtime ]] -> Some runtime

        | _ -> None



    let persistOnly = argsMap |> Map.containsKey (nameof Arguments.Persist_Only)



    if persistOnly

    then path |> persistFile packages modules |> Async.map (fun _ -> 0)

    else path |> buildFile runtime packages modules

    |> Async.runWithTimeout (60000 * 60)

    |> function

        | Some exitCode -> exitCode

        | None -> 1



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let args =

    System.Environment.GetEnvironmentVariable "ARGS"

    |> Runtime.splitArgs

    |> Seq.toArray



match args with

| [[||]] -> 0

| args -> if main args = 0 then 0 else failwith "main failed"



╭─[ 24.97s - return value ]────────────────────────────────────────────────────╮

│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │

│ .dni-code-hint {                                                             │

│     font-style: italic;                                                      │

│     overflow: hidden;                                                        │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview {                                                              │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview td {                                                           │

│     vertical-align: top;                                                     │

│     text-align: start;                                                       │

│ }                                                                            │

│ details.dni-treeview {                                                       │

│     padding-left: 1em;                                                       │

│ }                                                                            │

│ table td {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ table tr {                                                                   │

│     vertical-align: top;                                                     │

│     margin: 0em 0px;                                                         │

│ }                                                                            │

│ table tr td pre                                                              │

│ {                                                                            │

│     vertical-align: top !important;                                          │

│     margin: 0em 0px !important;                                              │

│ }                                                                            │

│ table th {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ </style>                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 24.98s - stdout ]──────────────────────────────────────────────────────────╮

│ 00:00:32 #37 [Debug] persistCodeProject / packages: [Argu;                   │

│ FSharp.Control.AsyncSeq; System.CommandLine; ... ] / modules: [              │

│ lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] /  │

│ name: Builder / code.Length: 7153                                            │

│ 00:00:32 #38 [Debug] buildProject / fullPath:                                │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj          │

│ 00:00:32 #39 [Debug] executeAsync / options: { Command =                     │

│    "dotnet publish                                                           │

│ "C:\home\git\polyglot\target/polyglot/builder\Builder\Builder.fsproj"        │

│ --configuration Release --output "C:\home\git\polyglot\apps\builder\dist"    │

│ --runtime linux-x64"                                                         │

│   WorkingDirectory = Some                                                    │

│ "C:\home\git\polyglot\target\polyglot\builder\Builder"                       │

│   CancellationToken = None                                                   │

│   OnLine = None }                                                            │

│ 00:00:32 #40 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │

│ for .NET                                                                     │

│ 00:00:33 #41 [Verbose] >   Determining projects to restore...                │

│ 00:00:33 #42 [Verbose] >   Restored                                          │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj (in 394  │

│ ms).                                                                         │

│ 00:00:33 #43 [Verbose] >                                                     │

│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │

│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │

│ ce.targets(313,5): message NETSDK1057: You are using a preview version of    │

│ .NET. See: https://aka.ms/dotnet-support-policy [                            │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj]         │

│ 00:00:40 #44 [Verbose] >   Builder ->                                        │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\bin\Release\net9.0\linu │

│ x-x64\Builder.dll                                                            │

│ 00:00:41 #45 [Verbose] >   Builder ->                                        │

│ C:\home\git\polyglot\apps\builder\dist\                                      │

│ 00:00:41 #46 [Debug] executeAsync / exitCode: 0 / output.Length: 692         │

│ 00:00:41 #47 [Debug] executeAsync / options: { Command =                     │

│    "dotnet publish                                                           │

│ "C:\home\git\polyglot\target/polyglot/builder\Builder\Builder.fsproj"        │

│ --configuration Release --output "C:\home\git\polyglot\apps\builder\dist"    │

│ --runtime win-x64"                                                           │

│   WorkingDirectory = Some                                                    │

│ "C:\home\git\polyglot\target\polyglot\builder\Builder"                       │

│   CancellationToken = None                                                   │

│   OnLine = None }                                                            │

│ 00:00:42 #48 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f  │

│ for .NET                                                                     │

│ 00:00:42 #49 [Verbose] >   Determining projects to restore...                │

│ 00:00:43 #50 [Verbose] >   Restored                                          │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj (in 367  │

│ ms).                                                                         │

│ 00:00:43 #51 [Verbose] >                                                     │

│ C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.2 │

│ 4101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInferen │

│ ce.targets(313,5): message NETSDK1057: You are using a preview version of    │

│ .NET. See: https://aka.ms/dotnet-support-policy [                            │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\Builder.fsproj]         │

│ 00:00:49 #52 [Verbose] >   Builder ->                                        │

│ C:\home\git\polyglot\target\polyglot\builder\Builder\bin\Release\net9.0\win- │

│ x64\Builder.dll                                                              │

│ 00:00:56 #53 [Verbose] >   Builder ->                                        │

│ C:\home\git\polyglot\apps\builder\dist\                                      │

│ 00:00:56 #54 [Debug] executeAsync / exitCode: 0 / output.Length: 690         │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook Builder.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 328615 bytes to Builder.dib.html

In [ ]:
{ . "$ScriptDir/../apps/parser/build.ps1" } | Invoke-Block

── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # DibParser (Polyglot)                                                       │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── pwsh ────────────────────────────────────────────────────────────────────────

ls ~/.nuget/packages/argu



╭─[ 615.07ms - stdout ]────────────────────────────────────────────────────────╮

│                                                                              │

│     Directory: C:\Users\i574n\.nuget\packages\argu                           │

│                                                                              │

│ Mode                 LastWriteTime         Length[     │

│ 32;1m Name                                                                 │

│ ----                 -------------         ------ [      │

│ 32;1m----                                                                  │

│ d----          2023-05-17  3:38 PM                6.1.1               │

│ d----          2024-03-12  8:22 PM                6.1.4               │

│ d----          2024-01-29  5:12 PM                6.1.5               │

│ d----          2024-03-12  8:20 PM                6.2.0               │

│ d----          2024-02-23  6:50 PM                6.2.1               │

│ d----          2024-03-12  8:15 PM                6.2.2               │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#r 

@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

dard2.1/FSharp.Control.AsyncSeq.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

0/System.Reactive.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/

netstandard2.0/System.Reactive.Linq.dll"

#r 

@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

#r 

@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

b/net6.0/System.CommandLine.dll"

#r 

@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP

arsec.dll"

#r 

@"../../../../../../../.nuget/packages/fparsec/2.0.0-beta2/lib/netstandard2.1/FP

arsecCS.dll"



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import ../../lib/fsharp/CommonFSharp.fs

#!import ../../lib/fsharp/Async.fs

#!import ../../lib/fsharp/AsyncSeq.fs

#!import ../../lib/fsharp/Runtime.fs

#!import ../../lib/fsharp/FileSystem.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module CommonFSharp =



    open Common



    /// ## getUnionCaseName



    let inline getUnionCaseName<'T> (x: 'T) =

        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

        | case, _ -> case.Name





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Async =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## choice



    let inline choice asyncs = async {

        let e = Event<_> ()

        use cts = new System.Threading.CancellationTokenSource ()

        let fn =

            asyncs

            |> Seq.map (fun a -> async {

                let! x = a

                e.Trigger x

            })

            |> Async.Parallel

            |> Async.Ignore

        Async.Start (fn, cts.Token)

        let! result = Async.AwaitEvent e.Publish

        cts.Cancel ()

        return result

    }



    /// ## map



    let inline map fn a = async {

        let! x = a

        return fn x

    }



    /// ## catch



    let inline catch a =

   ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module AsyncSeq =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## subscribeEvent



    let inline subscribeEvent (event: IEvent<'H, 'A>) map =

        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 

'A>(event.AddHandler, event.RemoveHandler)

        System.Reactive.Linq.Observable.Select (observable, fun event -> map 

event.EventArgs)

        |> FSharp.Control.AsyncSeq.ofObservableBuffered



    let subscribeToken (token : System.Threading.CancellationToken) =

        let tcs = new System.Threading.Tasks.TaskCompletionSource ()

        System.Action tcs.SetResult |> token.Register |> ignore

        let start = System.DateTime.Now.Ticks

        FSharp.Control.A...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Runtime =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## isWindows



    let isWindows =

        fun () ->

            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

                System.Runtime.InteropServices.OSPlatform.Windows

        |> memoize



    /// ## getExecutableSuffix



    let inline getExecutableSuffix () =

        if isWindows ()

        then ".exe"

        else ""



    /// ## splitCommand



    type private CommandParseStep =

        | Start

        | Path of quoted: bool

        | Arguments



    let splitCommand (command: string) =

        let rec loop (path, args) chars step =

            match chars, step with

            | ('"' | '\'') ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module FileSystem =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## readAllTextAsync



    let inline readAllTextAsync path =

        path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask



    /// ## fileExistsContent



    let inline fileExistsContent path content = async {

        if path |> System.IO.File.Exists |> not

        then return false

        else

            let! existingContent = path |> readAllTextAsync

            return content = existingContent

    }



    /// ## writeAllTextAsync



    let inline writeAllTextAsync path contents =

        System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask



    /// ## write...



── fsharp ──────────────────────────────────────────────────────────────────────

#if !INTERACTIVE

open Lib

#endif



── fsharp ──────────────────────────────────────────────────────────────────────

open Common

open FParsec



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## escapeCell (test)                                                         │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let inline escapeCell input =

    input

    |> SpiralSm.split "\n"

    |> Array.map (function

        | line when line |> SpiralSm.starts_with "\\#!" || line |> 

SpiralSm.starts_with "\\#r" ->

            System.Text.RegularExpressions.Regex.Replace (line, "^\\\\#", "#")

        | line -> line

    )

    |> SpiralSm.concat "\n"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



$"a{nl}\\#!magic{nl}b{nl}"

|> escapeCell

|> _assertEqual (

    $"a{nl}#!magic{nl}b{nl}"

)



╭─[ 50.96ms - stdout ]─────────────────────────────────────────────────────────╮

│ a                                                                            │

│ #!magic                                                                      │

│ b                                                                            │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## magicMarker                                                               │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let magicMarker : Parser<string, unit> = pstring "#!"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic"

|> run magicMarker

|> _assertEqual (

    Success ("#!", (), Position ("", 2, 1, 3))

)



╭─[ 47.07ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: #!                                                              │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 2                                                             │

│         Line: 1                                                              │

│         Column: 3                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"##!magic"

|> run magicMarker

|> _assertEqual (

    Failure (

        $"Error in Ln: 1 Col: 1{nl}##!magic{nl}^{nl}Expecting: '#!'{nl}",

        ParserError (

            Position ("", 0, 1, 1),

            (),

            ErrorMessageList (ExpectedString "#!")

        ),

        ()

    )

)



╭─[ 47.85ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: Error in Ln: 1 Col: 1                                           │

│ ##!magic                                                                     │

│ ^                                                                            │

│ Expecting: '#!'                                                              │

│                                                                              │

│       Item2: ParserError                                                     │

│         Position: Position                                                   │

│           Index: 0                                                           │

│           Line: 1                                                            │

│           Column: 1                                                          │

│           StreamName:                                                        │

│         UserState: <null>                                                    │

│         Messages: ErrorMessageList                                           │

│           Head: ExpectedString                                               │

│             String: #!                                                       │

│             Type: ExpectedString                                             │

│           Tail: <null>                                                       │

│       Item3: <null>                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## magicCommand                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let magicCommand =

    magicMarker

    >>. manyTill anyChar newline

    |>> (System.String.Concat >> SpiralSm.trim)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic



a"

|> run magicCommand

|> _assertEqual (

    Success ("magic", (), Position ("", 8, 2, 1))

)



╭─[ 35.30ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: magic                                                           │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 8                                                             │

│         Line: 2                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



" #!magic



a"

|> run magicCommand

|> _assertEqual (

    Failure (

        $"Error in Ln: 1 Col: 1{nl} #!magic{nl}^{nl}Expecting: '#!'{nl}",

        ParserError (

            Position ("", 0, 1, 1),

            (),

            ErrorMessageList (ExpectedString "#!")

        ),

        ()

    )

)



╭─[ 32.60ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: Error in Ln: 1 Col: 1                                           │

│  #!magic                                                                     │

│ ^                                                                            │

│ Expecting: '#!'                                                              │

│                                                                              │

│       Item2: ParserError                                                     │

│         Position: Position                                                   │

│           Index: 0                                                           │

│           Line: 1                                                            │

│           Column: 1                                                          │

│           StreamName:                                                        │

│         UserState: <null>                                                    │

│         Messages: ErrorMessageList                                           │

│           Head: ExpectedString                                               │

│             String: #!                                                       │

│             Type: ExpectedString                                             │

│           Tail: <null>                                                       │

│       Item3: <null>                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## content                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let content =

    (newline >>. magicMarker) <|> (eof >>. preturn "")

    |> attempt

    |> lookAhead

    |> manyTill anyChar

    |>> (System.String.Concat >> SpiralSm.trim)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic





a





"

|> run content

|> _assertEqual (

    Success ("#!magic





a", (), Position ("", 14, 7, 1))

)



╭─[ 32.33ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: #!magic                                                         │

│                                                                              │

│                                                                              │

│ a                                                                            │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 14                                                            │

│         Line: 7                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Block                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type Block =

    {

        magic : string

        content : string

    }



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## block                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let block =

    pipe2

        magicCommand

        content

        (fun magic content ->

            {

                magic = magic

                content = content

            })



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!magic





a





"

|> run block

|> _assertEqual (

    Success (

        { magic = "magic"; content = "a" },

        (),

        Position ("", 14, 7, 1)

    )

)



╭─[ 43.00ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: Block                                                           │

│         magic: magic                                                         │

│         content: a                                                           │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 14                                                            │

│         Line: 7                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## blocks                                                                    │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let blocks =

    skipMany newline

    >>. sepEndBy block (skipMany1 newline)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test





"#!magic1



a



\#!magic2



b



"

|> escapeCell

|> run blocks

|> _assertEqual (

    Success (

        [[

            { magic = "magic1"; content = "a" }

            { magic = "magic2"; content = "b" }

        ]],

        (),

        Position ("", 26, 9, 1)

    )

)



╭─[ 51.30ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item1: FSharpList<Block>                                               │

│         - magic: magic1                                                      │

│           content: a                                                         │

│         - magic: magic2                                                      │

│           content: b                                                         │

│       Item2: <null>                                                          │

│       Item3: Position                                                        │

│         Index: 26                                                            │

│         Line: 9                                                              │

│         Column: 1                                                            │

│         StreamName:                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Output                                                                    │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type Output =

    | Fs

    | Md

    | Spi

    | Spir



let inline kernelOutputs magic =

    match magic with

    | "fsharp" -> [[ Fs ]]

    | "markdown" -> [[ Md ]]

    | "spiral" -> [[ Spi; Spir ]]

    | _ -> [[]]



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## formatBlock                                                               │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline formatBlock output (block : Block) =

    match output, block with

    | output, { magic = "markdown"; content = content } ->

        let markdownComment =

            match output with

            | Spi | Spir -> "// // "

            | Fs -> "/// "

            | _ -> ""

        content

        |> SpiralSm.split "\n"

        |> Array.map (SpiralSm.trim_end [[||]])

        |> Array.filter (SpiralSm.ends_with " (test)" >> not)

        |> Array.map (function

            | "" -> markdownComment |> SpiralSm.trim

            | line -> System.Text.RegularExpressions.Regex.Replace (line, 

"^\\s*", $"$&{markdownComment}")

        )

        |> SpiralSm.concat "\n"

    | Fs, { magic = "fsharp"; content = content } ->

        let trimmedContent = content |> SpiralSm.trim

        if trimmedContent |> SpiralSm.starts_with "//// test" || trimmedContent 

|> SpiralSm.starts_with "//// ignore"

        then ""

        else

            content

            |> SpiralSm.split "\n"

            |> Array.filter (SpiralSm.trim_start [[||]] >> SpiralSm.starts_with 

"#r" >> not)

            |> SpiralSm.concat "\n"

    | (Spi | Spir), { magic = "spiral"; content = content } ->

        let trimmedContent = content |> SpiralSm.trim

        if trimmedContent |> SpiralSm.starts_with "// // test" || trimmedContent

|> SpiralSm.starts_with "// // ignore"

        then ""

        else content

    | _ -> ""



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!markdown





a



    b



c





\#!markdown





c





\#!fsharp





let a = 1"

|> escapeCell

|> run block

|> function

    | Success (block, _, _) -> formatBlock Fs block

    | Failure (msg, _, _) -> failwith msg

|> _assertEqual "/// a

///

    /// b

///

/// c"



╭─[ 62.24ms - stdout ]─────────────────────────────────────────────────────────╮

│ /// a                                                                        │

│ ///                                                                          │

│     /// b                                                                    │

│ ///                                                                          │

│ /// c                                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## formatBlocks                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline formatBlocks output blocks =

    blocks

    |> List.map (formatBlock output)

    |> List.filter ((<>) "")

    |> SpiralSm.concat "\n\n"

    |> fun s -> s + "\n"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"#!markdown





a



b





\#!markdown





c





\#!fsharp





let a = 1



\#!markdown



d (test)



\#!fsharp



//// test



let a = 2



\#!markdown



e



\#!fsharp



let a = 3"

|> escapeCell

|> run blocks

|> function

    | Success (blocks, _, _) -> formatBlocks Fs blocks

    | Failure (msg, _, _) -> failwith msg

|> _assertEqual "/// a

///

/// b



/// c



let a = 1



/// e



let a = 3

"



╭─[ 141.95ms - stdout ]────────────────────────────────────────────────────────╮

│ /// a                                                                        │

│ ///                                                                          │

│ /// b                                                                        │

│                                                                              │

│ /// c                                                                        │

│                                                                              │

│ let a = 1                                                                    │

│                                                                              │

│ /// e                                                                        │

│                                                                              │

│ let a = 3                                                                    │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## parse                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline parse output input =

    match run blocks input with

    | Success (blocks, _, _) ->

        let blocks =

            blocks

            |> List.filter (fun block ->

                block.magic |> kernelOutputs |> List.contains output || 

block.magic = "markdown"

            )



        match blocks with

        | { magic = "markdown"; content = content } :: _

            when output = Fs

            && content |> SpiralSm.starts_with "# "

            && content |> SpiralSm.ends_with ")"

            ->

            let inline indentBlock (block : Block) =

                { block with

                    content =

                        block.content

                        |> SpiralSm.split "\n"

                        |> Array.fold

                            (fun (lines, isMultiline) line ->

                                let trimmedLine = line |> SpiralSm.trim

                                if trimmedLine = ""

                                then "" :: lines, isMultiline

                                else

                                    let inline singleQuoteLine () =

                                        trimmedLine |> Seq.sumBy ((=) '"' >> 

System.Convert.ToInt32) = 1

                                        && trimmedLine |> SpiralSm.contains 

@"'""'" |> not

                                        && trimmedLine |> SpiralSm.ends_with "{"

|> not

                                        && trimmedLine |> SpiralSm.ends_with 

"{|" |> not

                                        && trimmedLine |> SpiralSm.starts_with 

"}" |> not

                                        && trimmedLine |> SpiralSm.starts_with 

"|}" |> not



                                    match isMultiline, trimmedLine |> 

SpiralSm.split_string [[| $"{q}{q}{q}" |]] with

                                    | false, [[| _; _ |]] ->

                                        $"    {line}" :: lines, true



                                    | true, [[| _; _ |]] ->

                                        line :: lines, false



                                    | false, _ when singleQuoteLine () ->

                                        $"    {line}" :: lines, true



                                    | false, _ when line |> SpiralSm.starts_with

"#" && block.magic = "fsharp" ->

                                        line :: lines, false



                                    | false, _ ->

                                        $"    {line}" :: lines, false



                                    | true, _ when singleQuoteLine () && line |>

SpiralSm.starts_with "    " ->

                                        $"    {line}" :: lines, false



                                    | true, _ when singleQuoteLine () ->

                                        line :: lines, false



                                    | true, _ ->

                                        line :: lines, true

                            )

                            ([[]], false)

                        |> fst

                        |> List.rev

                        |> SpiralSm.concat "\n"

                }



            let moduleName, namespaceName =

                System.Text.RegularExpressions.Regex.Match (content, @"# (.*) 

\((.*)\)$")

                |> fun m -> m.Groups.[[1]].Value, m.Groups.[[2]].Value



            let moduleBlock =

                {

                    magic = "fsharp"

                    content =

                        $"#if !INTERACTIVE

namespace {namespaceName}

#endif



module {moduleName} ="

                }



            blocks

            |> List.indexed

            |> List.fold

                (fun blocks (index, block) ->

                    match index with

                    | 0 -> blocks

                    | 1 -> indentBlock block :: moduleBlock :: blocks

                    | _ -> indentBlock block :: blocks

                )

                [[]]

            |> List.rev

        | _ -> blocks

        |> Result.Ok

    | Failure (errorMsg, _, _) -> Result.Error errorMsg



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let example1 =

    $"""#!meta



{{"kernelInfo":{{"defaultKernelName":"fsharp","items":[[{{"aliases":[[]],"name":

"fsharp"}},{{"aliases":[[]],"name":"fsharp"}}]]}}}}



\#!markdown



# TestModule (TestNamespace)



\#!fsharp



\#!import file.dib



\#!fsharp



\#r "nuget:Expecto"



\#!markdown



## ParserLibrary



\#!fsharp



open System



\#!markdown



## x (test)



\#!fsharp



//// ignore



let x = 1



\#!spiral



// // test



inl x = 0i32



\#!spiral



inl x = 0i32



\#!markdown



### TextInput



\#!fsharp



let str1 = "abc

def"



let str2 =

    "abc\

def"



let str3 =

    $"1{{

        1

    }}1"



let str4 =

    $"1{{({{|

        a = 1

    |}}).a}}1"



let str5 =

    "abc \

        def"



let x =

    match '"' with

    | '"' -> true

    | _ -> false



let long1 = {q}{q}{q}a{q}{q}{q}



let long2 =

    {q}{q}{q}

a

{q}{q}{q}



\#!fsharp



type Position =

    {{

#if INTERACTIVE

        line : string

#else

        line : int

#endif

        column : int

    }}"""

    |> escapeCell



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



example1

|> parse Fs

|> Result.toOption

|> Option.get

|> (formatBlocks Fs)

|> _assertEqual $"""#if !INTERACTIVE

namespace TestNamespace

#endif



module TestModule =



    /// ## ParserLibrary



    open System



    /// ### TextInput



    let str1 = "abc

def"



    let str2 =

        "abc\

def"



    let str3 =

        $"1{{

            1

        }}1"



    let str4 =

        $"1{{({{|

            a = 1

        |}}).a}}1"



    let str5 =

        "abc \

            def"



    let x =

        match '"' with

        | '"' -> true

        | _ -> false



    let long1 = {q}{q}{q}a{q}{q}{q}



    let long2 =

        {q}{q}{q}

a

{q}{q}{q}



    type Position =

        {{

#if INTERACTIVE

            line : string

#else

            line : int

#endif

            column : int

        }}

"""



╭─[ 183.26ms - stdout ]────────────────────────────────────────────────────────╮

│ #if !INTERACTIVE                                                             │

│ namespace TestNamespace                                                      │

│ #endif                                                                       │

│                                                                              │

│ module TestModule =                                                          │

│                                                                              │

│     /// ## ParserLibrary                                                     │

│                                                                              │

│     open System                                                              │

│                                                                              │

│     /// ### TextInput                                                        │

│                                                                              │

│     let str1 = "abc                                                          │

│ def"                                                                         │

│                                                                              │

│     let str2 =                                                               │

│         "abc\                                                                │

│ def"                                                                         │

│                                                                              │

│     let str3 =                                                               │

│         $"1{                                                                 │

│             1                                                                │

│         }1"                                                                  │

│                                                                              │

│     let str4 =                                                               │

│         $"1{({|                                                              │

│             a = 1                                                            │

│         |}).a}1"                                                             │

│                                                                              │

│     let str5 =                                                               │

│         "abc \                                                               │

│             def"                                                             │

│                                                                              │

│     let x =                                                                  │

│         match '"' with                                                       │

│         | '"' -> true                                                        │

│         | _ -> false                                                         │

│                                                                              │

│     let long1 = """a"""                                                      │

│                                                                              │

│     let long2 =                                                              │

│         """                                                                  │

│ a                                                                            │

│ """                                                                          │

│                                                                              │

│     type Position =                                                          │

│         {                                                                    │

│ #if INTERACTIVE                                                              │

│             line : string                                                    │

│ #else                                                                        │

│             line : int                                                       │

│ #endif                                                                       │

│             column : int                                                     │

│         }                                                                    │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



example1

|> parse Md

|> Result.toOption

|> Option.get

|> (formatBlocks Md)

|> _assertEqual "# TestModule (TestNamespace)



## ParserLibrary



### TextInput

"



╭─[ 200.50ms - stdout ]────────────────────────────────────────────────────────╮

│ # TestModule (TestNamespace)                                                 │

│                                                                              │

│ ## ParserLibrary                                                             │

│                                                                              │

│ ### TextInput                                                                │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



example1

|> parse Spi

|> Result.toOption

|> Option.get

|> (formatBlocks Spi)

|> _assertEqual "// // # TestModule (TestNamespace)



// // ## ParserLibrary



inl x = 0i32



// // ### TextInput

"



╭─[ 193.09ms - stdout ]────────────────────────────────────────────────────────╮

│ // // # TestModule (TestNamespace)                                           │

│                                                                              │

│ // // ## ParserLibrary                                                       │

│                                                                              │

│ inl x = 0i32                                                                 │

│                                                                              │

│ // // ### TextInput                                                          │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## parseDibCode                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline parseDibCode output file = async {

    let getLocals () = $"output: {output} / file: {file} / {getLocals ()}"

    trace Debug (fun () -> "parseDibCode") getLocals

    let! input = file |> FileSystem.readAllTextAsync

    match parse output input with

    | Result.Ok blocks -> return blocks |> formatBlocks output

    | Result.Error msg -> return failwith msg

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## writeDibCode                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline writeDibCode output path = async {

    let getLocals () = $"output: {output} / path: {path} / {getLocals ()}"

    trace Debug (fun () -> "writeDibCode") getLocals

    let! result = parseDibCode output path

    let outputPath = path |> SpiralSm.replace ".dib" $".{output |> string |> 

SpiralSm.to_lower}"

    do! result |> FileSystem.writeAllTextAsync outputPath

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Arguments                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

[[<RequireQualifiedAccess>]]

type Arguments =

    | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.Mandatory>]]

        File of file : string * Output



    interface Argu.IArgParserTemplate with

        member s.Usage =

            match s with

            | File _ -> nameof File



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



Argu.ArgumentParser.Create<Arguments>().PrintUsage ()



╭─[ 132.72ms - return value ]──────────────────────────────────────────────────╮

│ USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir>                          │

│                                                                              │

│ FILE:                                                                        │

│                                                                              │

│     <file> <fs|md|spi|spir>                                                  │

│                           File                                               │

│                                                                              │

│ OPTIONS:                                                                     │

│                                                                              │

│     --help                display this list of options.                      │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## main                                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let main args =

    let argsMap = args |> Runtime.parseArgsMap<Arguments>



    let files =

        argsMap.[[nameof Arguments.File]]

        |> List.map (function

            | Arguments.File (path, output) -> path, output

        )



    files

    |> List.map (fun (path, output) -> path |> writeDibCode output)

    |> Async.Parallel

    |> Async.Ignore

    |> Async.runWithTimeout 30000

    |> function

        | Some () -> 0

        | None -> 1



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let args =

    System.Environment.GetEnvironmentVariable "ARGS"

    |> Runtime.splitArgs

    |> Seq.toArray



match args with

| [[||]] -> 0

| args -> if main args = 0 then 0 else failwith "main failed"



╭─[ 167.53ms - return value ]──────────────────────────────────────────────────╮

│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │

│ .dni-code-hint {                                                             │

│     font-style: italic;                                                      │

│     overflow: hidden;                                                        │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview {                                                              │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview td {                                                           │

│     vertical-align: top;                                                     │

│     text-align: start;                                                       │

│ }                                                                            │

│ details.dni-treeview {                                                       │

│     padding-left: 1em;                                                       │

│ }                                                                            │

│ table td {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ table tr {                                                                   │

│     vertical-align: top;                                                     │

│     margin: 0em 0px;                                                         │

│ }                                                                            │

│ table tr td pre                                                              │

│ {                                                                            │

│     vertical-align: top !important;                                          │

│     margin: 0em 0px !important;                                              │

│ }                                                                            │

│ table th {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ </style>                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 181.12ms - stdout ]────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DibParser.dib          │

│ 00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DibParser.dib          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook DibParser.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 369668 bytes to DibParser.dib.html

00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: DibParser / code.Length: 9170

00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj

00:00:00 #3 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64"

  WorkingDirectory =

   Some "C:\home\git\polyglot\target\polyglot\builder\DibParser"

  CancellationToken = None

  OnLine = None }

00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:00 #5 [Verbose] >   Determining projects to restore...

00:00:01 #6 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj (in 373 ms).

00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj]

00:00:08 #8 [Verbose] >   DibParser -> C:\home\git\polyglot\target\polyglot\builder\DibParser\bin\Release\net9.0\linux-x64\DibParser.dll

00:00:09 #9 [Verbose] >   DibParser -> C:\home\git\polyglot\apps\parser\dist\

00:00:09 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 707

00:00:09 #11 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64"

  WorkingDirectory =

   Some "C:\home\git\polyglot\target\polyglot\builder\DibParser"

  CancellationToken = None

  OnLine = None }

00:00:09 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:10 #13 [Verbose] >   Determining projects to restore...

00:00:11 #14 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj (in 387 ms).

00:00:11 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DibParser\DibParser.fsproj]

00:00:17 #16 [Verbose] >   DibParser -> C:\home\git\polyglot\target\polyglot\builder\DibParser\bin\Release\net9.0\win-x64\DibParser.dll

00:00:25 #17 [Verbose] >   DibParser -> C:\home\git\polyglot\apps\parser\dist\

00:00:25 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 705



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # JsonParser (Polyglot)                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import Parser.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Parser =



    open Common



    /// ### TextInput



    type Position =

        {

            line : int

            column : int

        }



    let initialPos = { line = 0; column = 0 }



    let inline incrCol (pos : Position) =

        { pos with column = pos.column + 1 }



    let inline incrLine pos =

        { line = pos.line + 1; column = 0 }



    type InputState =

        {

            lines : string[[]]

            position : Position

        }



    let inline fromStr str =

        {

            lines =

                if str |> String.IsNullOrEmpty

                then [[||]]

                else str |> SpiralSm.split_string [[| "\r\n"; "\n" |]]

            position = initialPos

        }



...



── fsharp ──────────────────────────────────────────────────────────────────────

open Common

open Parser



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## JsonParser                                                                │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

(*

// --------------------------------

JSON spec from http://www.json.org/

// --------------------------------



The JSON spec is available at [[json.org]](http://www.json.org/). I'll paraphase

it here:



* A `value` can be a `string` or a `number` or a `bool` or `null` or an `object`

or an `array`.

  * These structures can be nested.

* A `string` is a sequence of zero or more Unicode characters, wrapped in double

quotes, using backslash escapes.

* A `number` is very much like a C or Java number, except that the octal and 

hexadecimal formats are not used.

* A `boolean` is the literal `true` or `false`

* A `null` is the literal `null`

* An `object` is an unordered set of name/value pairs.

  * An object begins with { (left brace) and ends with } (right brace).

  * Each name is followed by : (colon) and the name/value pairs are separated by

, (comma).

* An `array` is an ordered collection of values.

  * An array begins with [[ (left bracket) and ends with ]] (right bracket).

  * Values are separated by , (comma).

* Whitespace can be inserted between any pair of tokens.



*)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let inline parserEqual (expected : ParseResult<'a>) (actual : ParseResult<'a * 

Input>) =

    match actual, expected with

    | Success (_actual, _), Success _expected ->

        printResult actual

        _actual |> _assertEqual _expected

    | Failure (l1, e1, p1), Failure (l2, e2, p2) when l1 = l2 && e1 = e2 && p1 =

p2 ->

        printResult actual

    | _ ->

        printfn $"Actual: {actual}"

        printfn $"Expected: {expected}"

        failwith "Parse failed"

    actual



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### JValue                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type JValue =

    | JString of string

    | JNumber of float

    | JBool   of bool

    | JNull

    | JObject of Map<string, JValue>

    | JArray  of JValue list



── fsharp ──────────────────────────────────────────────────────────────────────

let jValue, jValueRef = createParserForwardedToRef<JValue> ()



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jNull                                                                    │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jNull =

    pstring "null"

    >>% JNull

    <?> "null"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



jValueRef <|

    choice

        [[

            jNull

        ]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jValue "null"

|> parserEqual (Success JNull)



╭─[ 244.74ms - return value ]──────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNull, { lines = [                      │

│ |&quot;null&quot;|]<br/>                  position = { line = 0<br/>         │

│ column = 4 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNull, { lines = [|&quot;null&quot;|]<br/>      │

│ position = { line = 0<br/>               column = 4 }                        │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead> │

│ <tr></tr></thead><tbody><tr><td>IsJString</td><td><d...                      │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 254.50ms - stdout ]────────────────────────────────────────────────────────╮

│ JNull                                                                        │

│ JValue                                                                       │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: True                                                          │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNull "nulp"

|> parserEqual (

    Failure (

        "null",

        "Unexpected 'p'",

        { currentLine = "nulp"; line = 0; column = 3 }

    )

)



╭─[ 48.11ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure (&quot;null&quot;, &quot;Unexpected      │

│ &#39;p&#39;&quot;, { currentLine = &quot;nulp&quot;<br/>                     │

│ line = 0<br/>                                     column = 3                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>null</pre></div></td></tr><tr><td>Item2</td><td>< │

│ div class="dni-plaintext"><pre>Unexpected                                    │

│ &#39;p&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;nulp&quot;<br/>  line = 0<br/>  column = 3               │

│ }</code></span></summary><div><table><thead><tr></tr></thead...              │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 53.71ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:3 Error parsing null                                              │

│ nulp                                                                         │

│    ^Unexpected 'p'                                                           │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jBool                                                                    │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jBool =

    let jtrue =

        pstring "true"

        >>% JBool true

    let jfalse =

        pstring "false"

        >>% JBool false



    jtrue <|> jfalse

    <?> "bool"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



jValueRef <|

    choice

        [[

            jNull

            jBool

        ]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jBool "true"

|> parserEqual (Success (JBool true))



╭─[ 49.11ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JBool true, { lines = [                 │

│ |&quot;true&quot;|]<br/>                       position = { line = 0<br/>    │

│ column = 4 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JBool true, { lines = [|&quot;true&quot;|]<br/> │

│ position = { line = 0<br/>               column = 4 }                        │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JBool                                            │

│ true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr.. │

│ .                                                                            │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 70.05ms - stdout ]─────────────────────────────────────────────────────────╮

│ JBool true                                                                   │

│ JBool                                                                        │

│       Item: True                                                             │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: True                                                          │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jBool "false"

|> parserEqual (Success (JBool false))



╭─[ 36.89ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JBool false, { lines = [                │

│ |&quot;false&quot;|]<br/>                        position = { line = 0<br/>  │

│ column = 5 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JBool false, { lines = [                        │

│ |&quot;false&quot;|]<br/>  position = { line = 0<br/>               column = │

│ 5 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JBool                                            │

│ false</code></span></summary><div><table><thead><tr></tr></thead><tb...      │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 43.66ms - stdout ]─────────────────────────────────────────────────────────╮

│ JBool false                                                                  │

│ JBool                                                                        │

│       Item: False                                                            │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: True                                                          │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jBool "truX"

|> parserEqual (

    Failure (

        "bool",

        "Unexpected 't'",

        { currentLine = "truX"; line = 0; column = 0 }

    )

)



╭─[ 29.98ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure (&quot;bool&quot;, &quot;Unexpected      │

│ &#39;t&#39;&quot;, { currentLine = &quot;truX&quot;<br/>                     │

│ line = 0<br/>                                     column = 0                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>bool</pre></div></td></tr><tr><td>Item2</td><td>< │

│ div class="dni-plaintext"><pre>Unexpected                                    │

│ &#39;t&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;truX&quot;<br/>  line = 0<br/>  column = 0               │

│ }</code></span></summary><div><table><thead><tr></tr></thead...              │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 35.68ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:0 Error parsing bool                                              │

│ truX                                                                         │

│ ^Unexpected 't'                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jUnescapedChar                                                           │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jUnescapedChar =

    satisfy (fun ch -> ch <> '\\' && ch <> '\"') "char"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jUnescapedChar "a"

|> parserEqual (Success 'a')



╭─[ 67.90ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (&#39;a&#39;, { lines = [                │

│ |&quot;a&quot;|]<br/>                position = { line = 0<br/>              │

│ column = 1 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(a, { lines = [|&quot;a&quot;|]<br/>  position = │

│ { line = 0<br/>               column = 1 }                                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │

│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │

│ = [|&quot;a&quot;|]<br/...                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 74.41ms - stdout ]─────────────────────────────────────────────────────────╮

│ 'a'                                                                          │

│ a                                                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jUnescapedChar "\\"

|> parserEqual (

    Failure (

        "char",

        "Unexpected '\\'",

        { currentLine = "\\"; line = 0; column = 0 }

    )

)



╭─[ 34.58ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure (&quot;char&quot;, &quot;Unexpected      │

│ &#39;\&#39;&quot;, { currentLine = &quot;\&quot;<br/>                        │

│ line = 0<br/>                                     column = 0                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>char</pre></div></td></tr><tr><td>Item2</td><td>< │

│ div class="dni-plaintext"><pre>Unexpected                                    │

│ &#39;\&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;\&quot;<br/>  line = 0<br/>  column = 0                  │

│ }</code></span></summary><div><table><thead><tr></tr></thead><tbod...        │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 39.73ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:0 Error parsing char                                              │

│ \                                                                            │

│ ^Unexpected '\'                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jEscapedChar                                                             │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jEscapedChar =

    [[

        ("\\\"",'\"')

        ("\\\\",'\\')

        ("\\/",'/')

        ("\\b",'\b')

        ("\\f",'\f')

        ("\\n",'\n')

        ("\\r",'\r')

        ("\\t",'\t')

    ]]

    |> List.map (fun (toMatch, result) ->

        pstring toMatch >>% result

    )

    |> choice

    <?> "escaped char"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jEscapedChar "\\\\"

|> parserEqual (Success '\\')



╭─[ 40.10ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines = [               │

│ |&quot;\\&quot;|]<br/>                 position = { line = 0<br/>            │

│ column = 2 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(\, { lines = [|&quot;\\&quot;|]<br/>  position  │

│ = { line = 0<br/>               column = 2 }                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │

│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │

│ = [|&quot;\\&quot;...                                                        │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 47.48ms - stdout ]─────────────────────────────────────────────────────────╮

│ '\\'                                                                         │

│ \                                                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jEscapedChar "\\t"

|> parserEqual (Success '\t')



╭─[ 34.53ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (&#39;\009&#39;, { lines = [             │

│ |&quot;\t&quot;|]<br/>                   position = { line = 0<br/>          │

│ column = 2 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(	, { lines = [|&quot;\t&quot;|]<br/>  position =  │

│ { line = 0<br/>               column = 2 }                                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div class="dni-plaintext"><pre>	                               │

│ </pre></div></td></tr><tr><td>Item2</td><td><details                         │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = [  │

│ |&quot;\t...                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 41.77ms - stdout ]─────────────────────────────────────────────────────────╮

│ '\009'                                                                       │

│ 	                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jEscapedChar @"\\"

|> parserEqual (Success '\\')



╭─[ 36.23ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (&#39;\\&#39;, { lines = [               │

│ |&quot;\\&quot;|]<br/>                 position = { line = 0<br/>            │

│ column = 2 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(\, { lines = [|&quot;\\&quot;|]<br/>  position  │

│ = { line = 0<br/>               column = 2 }                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>\</pre></div></td></tr><tr><td>Item2</td><td><det │

│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │

│ = [|&quot;\\&quot;...                                                        │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 42.52ms - stdout ]─────────────────────────────────────────────────────────╮

│ '\\'                                                                         │

│ \                                                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jEscapedChar @"\n"

|> parserEqual (Success '\n')



╭─[ 38.21ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (&#39;\010&#39;, { lines = [             │

│ |&quot;<br/>&quot;|]<br/>                   position = { line = 0<br/>       │

│ column = 2 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(<br/>, { lines = [|&quot;<br/>&quot;|]<br/>     │

│ position = { line = 0<br/>               column = 2 }                        │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div class="dni-plaintext"><pre>                              │

│ </pre></div></td></tr><tr><td>Item2</td><td><details                         │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines =    │

│ ...                                                                          │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 44.12ms - stdout ]─────────────────────────────────────────────────────────╮

│ '\010'                                                                       │

│                                                                              │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jEscapedChar "a"

|> parserEqual (

    Failure (

        "escaped char",

        "Unexpected 'a'",

        { currentLine = "a"; line = 0; column = 0 }

    )

)



╭─[ 25.96ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure (&quot;escaped char&quot;,               │

│ &quot;Unexpected &#39;a&#39;&quot;, { currentLine = &quot;a&quot;<br/>       │

│ line = 0<br/>                                             column = 0         │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div class="dni-plaintext"><pre>escaped                       │

│ char</pre></div></td></tr><tr><td>Item2</td><td><div                         │

│ class="dni-plaintext"><pre>Unexpected                                        │

│ &#39;a&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;a&quot;<br/>  line = 0<br/>  column = 0                  │

│ }</code></span></summary><div><tab...                                        │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 32.19ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:0 Error parsing escaped char                                      │

│ a                                                                            │

│ ^Unexpected 'a'                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jUnicodeChar                                                             │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jUnicodeChar =

    let backslash = pchar '\\'

    let uChar = pchar 'u'

    let hexdigit = anyOf ([[ '0' .. '9' ]] @ [[ 'A' .. 'F' ]] @ [[ 'a' .. 'f' 

]])

    let fourHexDigits = hexdigit .>>. hexdigit .>>. hexdigit .>>. hexdigit



    let inline convertToChar (((h1, h2), h3), h4) =

        let str = $"%c{h1}%c{h2}%c{h3}%c{h4}"

        Int32.Parse (str, Globalization.NumberStyles.HexNumber) |> char



    backslash >>. uChar >>. fourHexDigits

    |>> convertToChar



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jUnicodeChar "\\u263A"

|> parserEqual (Success '☺')



╭─[ 47.88ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (&#39;☺&#39;, { lines = [                │

│ |&quot;\u263A&quot;|]<br/>                position = { line = 0<br/>         │

│ column = 6 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(☺, { lines = [|&quot;\u263A&quot;|]<br/>        │

│ position = { line = 0<br/>               column = 6 }                        │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>☺</pre></div></td></tr><tr><td>Item2</td><td><det │

│ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines │

│ = [|&quot;\u2...                                                             │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 55.26ms - stdout ]─────────────────────────────────────────────────────────╮

│ '☺'                                                                          │

│ ☺                                                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jString                                                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let quotedString =

    let quote = pchar '\"' <?> "quote"

    let jchar = jUnescapedChar <|> jEscapedChar <|> jUnicodeChar



    quote >>. manyChars jchar .>> quote



── fsharp ──────────────────────────────────────────────────────────────────────

let jString =

    quotedString

    |>> JString

    <?> "quoted string"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



jValueRef <|

    choice

        [[

            jNull

            jBool

            jString

        ]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jString "\"\""

|> parserEqual (Success (JString ""))



╭─[ 56.51ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JString &quot;&quot;, { lines = [       │

│ |&quot;&quot;&quot;&quot;|]<br/>                       position = { line =   │

│ 0<br/>                                    column = 2 }                       │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JString &quot;&quot;, { lines = [               │

│ |&quot;&quot;&quot;&quot;|]<br/>  position = { line = 0<br/>                 │

│ column = 2 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JString &quot;&quot;</code></span></summary>...  │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 63.15ms - stdout ]─────────────────────────────────────────────────────────╮

│ JString ""                                                                   │

│ JString                                                                      │

│       Item:                                                                  │

│       IsJString: True                                                        │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jString "\"a\""

|> parserEqual (Success (JString "a"))



╭─[ 37.50ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JString &quot;a&quot;, { lines = [      │

│ |&quot;&quot;a&quot;&quot;|]<br/>                        position = { line = │

│ 0<br/>                                     column = 3 }                      │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JString &quot;a&quot;, { lines = [              │

│ |&quot;&quot;a&quot;&quot;|]<br/>  position = { line = 0<br/>                │

│ column = 3 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JString &quot;a&quot;</code></span></s...        │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 44.08ms - stdout ]─────────────────────────────────────────────────────────╮

│ JString "a"                                                                  │

│ JString                                                                      │

│       Item: a                                                                │

│       IsJString: True                                                        │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jString "\"ab\""

|> parserEqual (Success (JString "ab"))



╭─[ 34.98ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JString &quot;ab&quot;, { lines = [     │

│ |&quot;&quot;ab&quot;&quot;|]<br/>                         position = { line │

│ = 0<br/>                                      column = 4 }                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JString &quot;ab&quot;, { lines = [             │

│ |&quot;&quot;ab&quot;&quot;|]<br/>  position = { line = 0<br/>               │

│ column = 4 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JString &quot;ab&quot;</code></s...              │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 41.69ms - stdout ]─────────────────────────────────────────────────────────╮

│ JString "ab"                                                                 │

│ JString                                                                      │

│       Item: ab                                                               │

│       IsJString: True                                                        │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jString "\"ab\\tde\""

|> parserEqual (Success (JString "ab\tde"))



╭─[ 40.54ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JString &quot;ab	de&quot;, { lines = [    │

│ |&quot;&quot;ab\tde&quot;&quot;|]<br/>                            position = │

│ { line = 0<br/>                                         column = 8 }         │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JString &quot;ab	de&quot;, { lines = [            │

│ |&quot;&quot;ab\tde&quot;&quot;|]<br/>  position = { line = 0<br/>           │

│ column = 8 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JString &quo...                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 46.85ms - stdout ]─────────────────────────────────────────────────────────╮

│ JString "ab	de"                                                                │

│ JString                                                                      │

│       Item: ab	de                                                              │

│       IsJString: True                                                        │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jString "\"ab\\u263Ade\""

|> parserEqual (Success (JString "ab☺de"))



╭─[ 34.98ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JString &quot;ab☺de&quot;, { lines = [  │

│ |&quot;&quot;ab\u263Ade&quot;&quot;|]<br/>                                   │

│ position = { line = 0<br/>                                         column =  │

│ 12 }                                                                         │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JString &quot;ab☺de&quot;, { lines = [          │

│ |&quot;&quot;ab\u263Ade&quot;&quot;|]<br/>  position = { line = 0<br/>       │

│ column = 12 }                                                                │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JS...                                            │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 42.68ms - stdout ]─────────────────────────────────────────────────────────╮

│ JString "ab☺de"                                                              │

│ JString                                                                      │

│       Item: ab☺de                                                            │

│       IsJString: True                                                        │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jNumber                                                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jNumber =

    let optSign = opt (pchar '-')



    let zero = pstring "0"



    let digitOneNine =

        satisfy (fun ch -> Char.IsDigit ch && ch <> '0') "1-9"



    let digit =

        satisfy Char.IsDigit "digit"



    let point = pchar '.'



    let e = pchar 'e' <|> pchar 'E'



    let optPlusMinus = opt (pchar '-' <|> pchar '+')



    let nonZeroInt =

        digitOneNine .>>. manyChars digit

        |>> fun (first, rest) -> string first + rest



    let intPart = zero <|> nonZeroInt



    let fractionPart = point >>. manyChars1 digit



    let exponentPart = e >>. optPlusMinus .>>. manyChars1 digit



    let inline (|>?) opt f =

        match opt with

        | None -> ""

        | Some x -> f x



    let inline convertToJNumber (((optSign, intPart), fractionPart), expPart) =

        let signStr =

            optSign

            |>? string



        let fractionPartStr =

            fractionPart

            |>? (fun digits -> "." + digits)



        let expPartStr =

            expPart

            |>? fun (optSign, digits) ->

                let sign = optSign |>? string

                "e" + sign + digits



        (signStr + intPart + fractionPartStr + expPartStr)

        |> float

        |> JNumber



    optSign .>>. intPart .>>. opt fractionPart .>>. opt exponentPart

    |>> convertToJNumber

    <?> "number"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



jValueRef <|

    choice

        [[

            jNull

            jBool

            jString

            jNumber

        ]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber "123"

|> parserEqual (Success (JNumber 123.0))



╭─[ 60.48ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [              │

│ |&quot;123&quot;|]<br/>                          position = { line = 0<br/>  │

│ column = 3 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [                      │

│ |&quot;123&quot;|]<br/>  position = { line = 0<br/>               column = 3 │

│ }                                                                            │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 123.0</code></span></summary><div><table><thead><tr></tr></the...            │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 67.08ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 123.0                                                                │

│ JNumber                                                                      │

│       Item: 123                                                              │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber "-123"

|> parserEqual (Success (JNumber -123.0))



╭─[ 37.38ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [             │

│ |&quot;-123&quot;|]<br/>                           position = { line =       │

│ 0<br/>                                        column = 4 }                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [                     │

│ |&quot;-123&quot;|]<br/>  position = { line = 0<br/>               column =  │

│ 4 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ -123.0</code></span></summary><div><table><thead><tr></t...                  │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 44.45ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber -123.0                                                               │

│ JNumber                                                                      │

│       Item: -123                                                             │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber "123.4"

|> parserEqual (Success (JNumber 123.4))



╭─[ 34.69ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [              │

│ |&quot;123.4&quot;|]<br/>                          position = { line =       │

│ 0<br/>                                       column = 5 }                    │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [                      │

│ |&quot;123.4&quot;|]<br/>  position = { line = 0<br/>               column = │

│ 5 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 123.4</code></span></summary><div><table><thead><tr></tr><...                │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 40.99ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 123.4                                                                │

│ JNumber                                                                      │

│       Item: 123.4                                                            │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber "-123."

|> parserEqual (Success (JNumber -123.0))



╭─[ 38.04ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [             │

│ |&quot;-123.&quot;|]<br/>                           position = { line =      │

│ 0<br/>                                        column = 4 }                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [                     │

│ |&quot;-123.&quot;|]<br/>  position = { line = 0<br/>               column = │

│ 4 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ -123.0</code></span></summary><div><table><thead><tr><...                    │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 45.25ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber -123.0                                                               │

│ JNumber                                                                      │

│       Item: -123                                                             │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber "00.1"

|> parserEqual (Success (JNumber 0.0))



╭─[ 36.22ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 0.0, { lines = [                │

│ |&quot;00.1&quot;|]<br/>                        position = { line = 0<br/>   │

│ column = 1 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 0.0, { lines = [                        │

│ |&quot;00.1&quot;|]<br/>  position = { line = 0<br/>               column =  │

│ 1 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbod...      │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 43.09ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 0.0                                                                  │

│ JNumber                                                                      │

│       Item: 0                                                                │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let jNumber_ = jNumber .>> spaces1



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "123"

|> parserEqual (Success (JNumber 123.0))



╭─[ 52.80ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 123.0, { lines = [              │

│ |&quot;123&quot;|]<br/>                          position = { line = 1<br/>  │

│ column = 0 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 123.0, { lines = [                      │

│ |&quot;123&quot;|]<br/>  position = { line = 1<br/>               column = 0 │

│ }                                                                            │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 123.0</code></span></summary><div><table><thead><tr></tr></the...            │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 59.92ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 123.0                                                                │

│ JNumber                                                                      │

│       Item: 123                                                              │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "-123"

|> parserEqual (Success (JNumber -123.0))



╭─[ 35.01ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber -123.0, { lines = [             │

│ |&quot;-123&quot;|]<br/>                           position = { line =       │

│ 1<br/>                                        column = 0 }                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber -123.0, { lines = [                     │

│ |&quot;-123&quot;|]<br/>  position = { line = 1<br/>               column =  │

│ 0 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ -123.0</code></span></summary><div><table><thead><tr></t...                  │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 41.90ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber -123.0                                                               │

│ JNumber                                                                      │

│       Item: -123                                                             │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "-123."

|> parserEqual (

    Failure (

        "number andThen many1 whitespace",

        "Unexpected '.'",

        { currentLine = "-123."; line = 0; column = 4 }

    )

)



╭─[ 27.96ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure<br/>  (&quot;number andThen many1        │

│ whitespace&quot;, &quot;Unexpected &#39;.&#39;&quot;, { currentLine =        │

│ &quot;-123.&quot;<br/>                                                       │

│ line = 0<br/>                                                                │

│ column = 4                                                                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1          │

│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div                   │

│ class="dni-plaintext"><pre>Unexpected                                        │

│ &#39;.&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;...                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 34.22ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:4 Error parsing number andThen many1 whitespace                   │

│ -123.                                                                        │

│     ^Unexpected '.'                                                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "123.4"

|> parserEqual (Success (JNumber 123.4))



╭─[ 36.12ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 123.4, { lines = [              │

│ |&quot;123.4&quot;|]<br/>                          position = { line =       │

│ 1<br/>                                       column = 0 }                    │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 123.4, { lines = [                      │

│ |&quot;123.4&quot;|]<br/>  position = { line = 1<br/>               column = │

│ 0 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 123.4</code></span></summary><div><table><thead><tr></tr><...                │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 43.43ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 123.4                                                                │

│ JNumber                                                                      │

│       Item: 123.4                                                            │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "00.4"

|> parserEqual (

    Failure (

        "number andThen many1 whitespace",

        "Unexpected '0'",

        { currentLine = "00.4"; line = 0; column = 1 }

    )

)



╭─[ 29.54ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure<br/>  (&quot;number andThen many1        │

│ whitespace&quot;, &quot;Unexpected &#39;0&#39;&quot;, { currentLine =        │

│ &quot;00.4&quot;<br/>                                                        │

│ line = 0<br/>                                                                │

│ column = 1                                                                   │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div class="dni-plaintext"><pre>number andThen many1          │

│ whitespace</pre></div></td></tr><tr><td>Item2</td><td><div                   │

│ class="dni-plaintext"><pre>Unexpected                                        │

│ &#39;0&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;0...                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 35.67ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:1 Error parsing number andThen many1 whitespace                   │

│ 00.4                                                                         │

│  ^Unexpected '0'                                                             │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "123e4"

|> parserEqual (Success (JNumber 1230000.0))



╭─[ 37.31ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = [          │

│ |&quot;123e4&quot;|]<br/>                              position = { line =   │

│ 1<br/>                                           column = 0 }                │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 1230000.0, { lines = [                  │

│ |&quot;123e4&quot;|]<br/>  position = { line = 1<br/>               column = │

│ 0 }                                                                          │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 1230000.0</code></span></summary><div><tab...                                │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 44.77ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 1230000.0                                                            │

│ JNumber                                                                      │

│       Item: 1230000                                                          │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "123.4e5"

|> parserEqual (Success (JNumber 12340000.0))



╭─[ 36.56ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = [         │

│ |&quot;123.4e5&quot;|]<br/>                               position = { line  │

│ = 1<br/>                                            column = 0 }             │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 12340000.0, { lines = [                 │

│ |&quot;123.4e5&quot;|]<br/>  position = { line = 1<br/>               column │

│ = 0 }                                                                        │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber 12340000.0</code></span></summary>...    │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 42.71ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 12340000.0                                                           │

│ JNumber                                                                      │

│       Item: 12340000                                                         │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jNumber_ "123.4e-5"

|> parserEqual (Success (JNumber 0.001234))



╭─[ 40.01ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = [           │

│ |&quot;123.4e-5&quot;|]<br/>                             position = { line = │

│ 1<br/>                                          column = 0 }                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JNumber 0.001234, { lines = [                   │

│ |&quot;123.4e-5&quot;|]<br/>  position = { line = 1<br/>                     │

│ column = 0 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>JNumber                                          │

│ 0.001234</code></span></summary><div><ta...                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 47.92ms - stdout ]─────────────────────────────────────────────────────────╮

│ JNumber 0.001234                                                             │

│ JNumber                                                                      │

│       Item: 0.001234                                                         │

│       IsJString: False                                                       │

│       IsJNumber: True                                                        │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jArray                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jArray =

    let left = pchar '[[' .>> spaces

    let right = pchar ']]' .>> spaces

    let comma = pchar ',' .>> spaces

    let value = jValue .>> spaces



    let values = sepBy value comma



    between left values right

    |>> JArray

    <?> "array"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



jValueRef <|

    choice

        [[

            jNull

            jBool

            jString

            jNumber

            jArray

        ]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jArray "[[ 1, 2 ]]"

|> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]]))



╭─[ 99.16ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], {    │

│ lines = [|&quot;[ 1, 2 ]&quot;|]<br/>                                        │

│ position = { line = 1<br/>                                                   │

│ column = 0 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JArray [JNumber 1.0; JNumber 2.0], { lines = [  │

│ |&quot;[ 1, 2 ]&quot;|]<br/>  position = { line = 1<br/>                     │

│ column = 0 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><details class="dni-treeview"><summary><span class="d...      │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 105.71ms - stdout ]────────────────────────────────────────────────────────╮

│ JArray [JNumber 1.0; JNumber 2.0]                                            │

│ JArray                                                                       │

│       Item: FSharpList<JValue>                                               │

│         - Item: 1                                                            │

│           IsJString: False                                                   │

│           IsJNumber: True                                                    │

│           IsJBool: False                                                     │

│           IsJNull: False                                                     │

│           IsJObject: False                                                   │

│           IsJArray: False                                                    │

│         - Item: 2                                                            │

│           IsJString: False                                                   │

│           IsJNumber: True                                                    │

│           IsJBool: False                                                     │

│           IsJNull: False                                                     │

│           IsJObject: False                                                   │

│           IsJArray: False                                                    │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: False                                                       │

│       IsJArray: True                                                         │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jArray "[[ 1, 2, ]]"

|> parserEqual (

    Failure (

        "array",

        "Unexpected ','",

        { currentLine = "[[ 1, 2, ]]"; line = 0; column = 6 }

    )

)



╭─[ 33.16ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure (&quot;array&quot;, &quot;Unexpected     │

│ &#39;,&#39;&quot;, { currentLine = &quot;[ 1, 2, ]&quot;<br/>                │

│ line = 0<br/>                                      column = 6                │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>array</pre></div></td></tr><tr><td>Item2</td><td> │

│ <div class="dni-plaintext"><pre>Unexpected                                   │

│ &#39;,&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;[ 1, 2, ]&quot;<br/>  line = 0<br/>  column = 6          │

│ }</code></span></summary><div><table><thead><t...                            │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 38.70ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:6 Error parsing array                                             │

│ [ 1, 2, ]                                                                    │

│       ^Unexpected ','                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jObject                                                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let jObject =

    let left = spaces >>. pchar '{' .>> spaces

    let right = pchar '}' .>> spaces

    let colon = pchar ':' .>> spaces

    let comma = pchar ',' .>> spaces

    let key = quotedString .>> spaces

    let value = jValue .>> spaces



    let keyValue = (key .>> colon) .>>. value

    let keyValues = sepBy keyValue comma



    between left keyValues right

    |>> Map.ofList

    |>> JObject

    <?> "object"



── fsharp ──────────────────────────────────────────────────────────────────────

jValueRef <|

    choice

        [[

            jNull

            jBool

            jString

            jNumber

            jArray

            jObject

        ]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jObject """{ "a":1, "b"  :  2 }"""

|> parserEqual (

    Success (

        JObject (

            Map.ofList [[

                "a", JNumber 1.0

                "b", JNumber 2.0

            ]]

        )

    )

)



╭─[ 189.92ms - return value ]──────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success<br/>  (JObject (map [(&quot;a&quot;,     │

│ JNumber 1.0); (&quot;b&quot;, JNumber 2.0)]),<br/>   { lines = [|&quot;{     │

│ &quot;a&quot;:1, &quot;b&quot;  :  2 }&quot;|]<br/>     position = { line =  │

│ 1<br/>                  column = 0 }                                         │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item</td><td><details class="dni-treeview"><summary><span                   │

│ class="dni-code-hint"><code>(JObject (map [(&quot;a&quot;, JNumber 1.0);     │

│ (&quot;b&quot;, JNumber 2.0)]), { lines = [|&quot;{ &quot;a&quot;:1,         │

│ &quot;b&quot;  :  2 }&quot;|]<br/>  position = { line = 1<br/>               │

│ column = 0 }                                                                 │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbod...       │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 199.05ms - stdout ]────────────────────────────────────────────────────────╮

│ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)])                       │

│ JObject                                                                      │

│       Item: FSharpMap<String,JValue>                                         │

│         - Key: a                                                             │

│           Value: JNumber                                                     │

│             Item: 1                                                          │

│             IsJString: False                                                 │

│             IsJNumber: True                                                  │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: b                                                             │

│           Value: JNumber                                                     │

│             Item: 2                                                          │

│             IsJString: False                                                 │

│             IsJNumber: True                                                  │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: True                                                        │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run jObject """{ "a":1, "b"  :  2, }"""

|> parserEqual (

    Failure (

        "object",

        "Unexpected ','",

        { currentLine = """{ "a":1, "b"  :  2, }"""; line = 0; column = 18 }

    )

)



╭─[ 41.00ms - return value ]───────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Failure (&quot;object&quot;, &quot;Unexpected    │

│ &#39;,&#39;&quot;, { currentLine = &quot;{ &quot;a&quot;:1, &quot;b&quot;  : │

│ 2, }&quot;<br/>                                       line = 0<br/>          │

│ column = 18                                                                  │

│ })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

│ >Item1</td><td><div                                                          │

│ class="dni-plaintext"><pre>object</pre></div></td></tr><tr><td>Item2</td><td │

│ ><div class="dni-plaintext"><pre>Unexpected                                  │

│ &#39;,&#39;</pre></div></td></tr><tr><td>Item3</td><td><details              │

│ class="dni-treeview"><summary><span class="dni-code-hint"><code>{            │

│ currentLine = &quot;{ &quot;a&quot;:1, &quot;b&quot;  :  2, }&quot;<br/>     │

│ lin...                                                                       │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 47.83ms - stdout ]─────────────────────────────────────────────────────────╮

│ Line:0 Col:18 Error parsing object                                           │

│ { "a":1, "b"  :  2, }                                                        │

│                   ^Unexpected ','                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### jValue                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let example1 = """{

    "name" : "Scott",

    "isMale" : true,

    "bday" : {"year":2001, "month":12, "day":25 },

    "favouriteColors" : [["blue", "green"]],

    "emptyArray" : [[]],

    "emptyObject" : {}

}"""

run jValue example1

|> parserEqual (

    Success (

        JObject (

            Map.ofList [[

                "name", JString "Scott"

                "isMale", JBool true

                "bday", JObject (

                    Map.ofList [[

                        "year", JNumber 2001.0

                        "month", JNumber 12.0

                        "day", JNumber 25.0

                    ]]

                )

                "favouriteColors", JArray [[ JString "blue"; JString "green" ]]

                "emptyArray", JArray [[]]

                "emptyObject", JObject Map.empty

            ]]

        )

    )

)



╭─[ 159.64ms - return value ]──────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success<br/>  (JObject<br/>     (map<br/>        │

│ [(&quot;bday&quot;,<br/>          JObject<br/>            (map<br/>          │

│ [(&quot;day&quot;, JNumber 25.0); (&quot;month&quot;, JNumber 12.0);<br/>    │

│ (&quot;year&quot;, JNumber 2001.0)])); (&quot;emptyArray&quot;, JArray [     │

│ ]);<br/>         (&quot;emptyObject&quot;, JObject (map []));<br/>           │

│ (&quot;favouriteColors&quot;,                                                │

│ ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │

│ d>Item</td><td><details class="dni-treeview"><summary><span                  │

│ class="dni-code-hint"><code>(JObject<br/>  (map<br/>     [                   │

│ (&quot;bday&quot;,<br/>       JObject<br/>         (map<br/>            [    │

│ (...                                                                         │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 166.25ms - stdout ]────────────────────────────────────────────────────────╮

│ JObject                                                                      │

│   (map                                                                       │

│      [("bday",                                                               │

│        JObject                                                               │

│          (map                                                                │

│             [("day", JNumber 25.0); ("month", JNumber 12.0);                 │

│              ("year", JNumber 2001.0)])); ("emptyArray", JArray []);         │

│       ("emptyObject", JObject (map []));                                     │

│       ("favouriteColors", JArray [JString "blue"; JString "green"]);         │

│       ("isMale", JBool true); ("name", JString "Scott")])                    │

│ JObject                                                                      │

│       Item: FSharpMap<String,JValue>                                         │

│         - Key: bday                                                          │

│           Value: JObject                                                     │

│             Item: FSharpMap<String,JValue>                                   │

│               - Key: day                                                     │

│                 Value: JNumber 25.0                                          │

│               - Key: month                                                   │

│                 Value: JNumber 12.0                                          │

│               - Key: year                                                    │

│                 Value: JNumber 2001.0                                        │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: True                                                  │

│             IsJArray: False                                                  │

│         - Key: emptyArray                                                    │

│           Value: JArray                                                      │

│             Item: FSharpList<JValue>                                         │

│                                                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: True                                                   │

│         - Key: emptyObject                                                   │

│           Value: JObject                                                     │

│             Item: FSharpMap<String,JValue>                                   │

│                                                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: True                                                  │

│             IsJArray: False                                                  │

│         - Key: favouriteColors                                               │

│           Value: JArray                                                      │

│             Item: FSharpList<JValue>                                         │

│               - Item: blue                                                   │

│                 IsJString: True                                              │

│                 IsJNumber: False                                             │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│               - Item: green                                                  │

│                 IsJString: True                                              │

│                 IsJNumber: False                                             │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: True                                                   │

│         - Key: isMale                                                        │

│           Value: JBool                                                       │

│             Item: True                                                       │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: True                                                    │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: name                                                          │

│           Value: JString                                                     │

│             Item: Scott                                                      │

│             IsJString: True                                                  │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: True                                                        │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let example2 = """{"widget": {

    "debug": "on",

    "window": {

        "title": "Sample Konfabulator Widget",

        "name": "main_window",

        "width": 500,

        "height": 500

    },

    "image": {

        "src": "Images/Sun.png",

        "name": "sun1",

        "hOffset": 250,

        "vOffset": 250,

        "alignment": "center"

    },

    "text": {

        "data": "Click Here",

        "size": 36,

        "style": "bold",

        "name": "text1",

        "hOffset": 250,

        "vOffset": 100,

        "alignment": "center",

        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"

    }

}}"""



run jValue example2

|> parserEqual (

    Success (

        JObject (

            Map.ofList [[

                "widget", JObject (

                    Map.ofList [[

                        "debug", JString "on"

                        "window", JObject (

                            Map.ofList [[

                                "title", JString "Sample Konfabulator Widget"

                                "name", JString "main_window"

                                "width", JNumber 500.0

                                "height", JNumber 500.0

                            ]]

                        )

                        "image", JObject (

                            Map.ofList [[

                                "src", JString "Images/Sun.png"

                                "name", JString "sun1"

                                "hOffset", JNumber 250.0

                                "vOffset", JNumber 250.0

                                "alignment", JString "center"

                            ]]

                        )

                        "text", JObject (

                            Map.ofList [[

                                "data", JString "Click Here"

                                "size", JNumber 36.0

                                "style", JString "bold"

                                "name", JString "text1"

                                "hOffset", JNumber 250.0

                                "vOffset", JNumber 100.0

                                "alignment", JString "center"

                                "onMouseUp", JString "sun1.opacity = 

(sun1.opacity / 100) * 90;"

                            ]]

                        )

                    ]]

                )

            ]]

        )

    )

)



╭─[ 342.87ms - return value ]──────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success<br/>  (JObject<br/>     (map<br/>        │

│ [(&quot;widget&quot;,<br/>          JObject<br/>            (map<br/>        │

│ [(&quot;debug&quot;, JString &quot;on&quot;);<br/>                           │

│ (&quot;image&quot;,<br/>                 JObject<br/>                        │

│ (map<br/>                      [(&quot;alignment&quot;, JString              │

│ &quot;center&quot;);<br/>                                                    │

│ (&quot;hOffset&quot;...</code></span></summary><div><table><thead><tr></tr>< │

│ /thead><tbody><tr><td>Item</td><td><details                                  │

│ class="dni-treeview"><summary><span                                          │

│ class="dni-code-hint"><code>(JObject<br/>  (map<br/>     [                   │

│ (&quot;widget&quot;,<br/>       JObject<br/>         (map<br/>      ...      │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 350.13ms - stdout ]────────────────────────────────────────────────────────╮

│ JObject                                                                      │

│   (map                                                                       │

│      [("widget",                                                             │

│        JObject                                                               │

│          (map                                                                │

│             [("debug", JString "on");                                        │

│              ("image",                                                       │

│               JObject                                                        │

│                 (map                                                         │

│                    [("alignment", JString "center"); ("hOffset", JNumber     │

│ 250.0);                                                                      │

│                     ("name", JString "sun1"); ("src", JString                │

│ "Images/Sun.png");                                                           │

│                     ("vOffset", JNumber 250.0)]));                           │

│              ("text",                                                        │

│               JObject                                                        │

│                 (map                                                         │

│                    [("alignment", JString "center");                         │

│                     ("data", JString "Click Here"); ("hOffset", JNumber      │

│ 250.0);                                                                      │

│                     ("name", JString "text1");                               │

│                     ("onMouseUp",                                            │

│                      JString "sun1.opacity = (sun1.opacity / 100) * 90;");   │

│                     ("size", JNumber 36.0); ("style", JString "bold");       │

│                     ("vOffset", JNumber 100.0)]));                           │

│              ("window",                                                      │

│               JObject                                                        │

│                 (map                                                         │

│                    [("height", JNumber 500.0); ("name", JString              │

│ "main_window");                                                              │

│                     ("title", JString "Sample Konfabulator Widget");         │

│                     ("width", JNumber 500.0)]))]))])                         │

│ JObject                                                                      │

│       Item: FSharpMap<String,JValue>                                         │

│         - Key: widget                                                        │

│           Value: JObject                                                     │

│             Item: FSharpMap<String,JValue>                                   │

│               - Key: debug                                                   │

│                 Value: JString "on"                                          │

│               - Key: image                                                   │

│                 Value: JObject                                               │

│   (map                                                                       │

│      [("alignment", JString "center"); ("hOffset", JNumber 250.0);           │

│       ("name", JString "sun1"); ("src", JString "Images/Sun.png");           │

│       ("vOffset", JNumber 250.0)])                                           │

│               - Key: text                                                    │

│                 Value: JObject                                               │

│   (map                                                                       │

│      [("alignment", JString "center"); ("data", JString "Click Here");       │

│       ("hOffset", JNumber 250.0); ("name", JString "text1");                 │

│       ("onMouseUp", JString "sun1.opacity = (sun1.opacity / 100) * 90;");    │

│       ("size", JNumber 36.0); ("style", JString "bold");                     │

│       ("vOffset", JNumber 100.0)])                                           │

│               - Key: window                                                  │

│                 Value: JObject                                               │

│   (map                                                                       │

│      [("height", JNumber 500.0); ("name", JString "main_window");            │

│       ("title", JString "Sample Konfabulator Widget"); ("width", JNumber     │

│ 500.0)])                                                                     │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: True                                                  │

│             IsJArray: False                                                  │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: True                                                        │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let example3 = """{

  "string": "Hello, \"World\"!",

  "escapedString": "This string contains \\/\\\\\\b\\f\\n\\r\\t\\\"\\'",

  "number": 42,

  "scientificNumber": 3.14e-10,

  "boolean": true,

  "nullValue": null,

  "array": [[1, 2, 3, 4, 5]],

  "unicodeString1": "프리마",

  "unicodeString2": "\u0048\u0065\u006C\u006C\u006F, 

\u0022\u0057\u006F\u0072\u006C\u0064\u0022!",

  "specialCharacters": "!@#$%^&*()",

  "emptyArray": [[]],

  "emptyObject": {},

  "nestedArrays": [[[[1, 2, 3]], [[4, 5, 6]]]],

  "object": {

    "nestedString": "Nested Value",

    "nestedNumber": 3.14,

    "nestedBoolean": false,

    "nestedNull": null,

    "nestedArray": [["a", "b", "c"]],

    "nestedObject": {

      "nestedProperty": "Nested Object Value"

    }

  },

  "nestedObjects": [[

    {"name": "Alice", "age": 25},

    {"name": "Bob", "age": 30}

  ]]

}"""

run jValue example3

|> parserEqual (

    Success (

        JObject (

            Map.ofList [[

                "string", JString @"Hello, ""World""!"

                "escapedString", JString @"This string contains 

\/\\\b\f\n\r\t\""\'"

                "number", JNumber 42.0

                "scientificNumber", JNumber 3.14e-10

                "boolean", JBool true

                "nullValue", JNull

                "array", JArray [[

                    JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 

5.0

                ]]

                "unicodeString1", JString "프리마"

                "unicodeString2", JString @"Hello, ""World""!"

                "specialCharacters", JString "!@#$%^&*()"

                "emptyArray", JArray [[]]

                "emptyObject", JObject Map.empty

                "nestedArrays", JArray [[

                    JArray [[ JNumber 1.0; JNumber 2.0; JNumber 3.0 ]]

                    JArray [[ JNumber 4.0; JNumber 5.0; JNumber 6.0 ]]

                ]]

                "object", JObject (

                    Map.ofList [[

                        "nestedString", JString "Nested Value"

                        "nestedNumber", JNumber 3.14

                        "nestedBoolean", JBool false

                        "nestedNull", JNull

                        "nestedArray", JArray [[JString "a"; JString "b"; 

JString "c"]]

                        "nestedObject", JObject (

                            Map.ofList [[

                                "nestedProperty", JString "Nested Object Value"

                            ]]

                        )

                    ]]

                )

                "nestedObjects", JArray [[

                  JObject (Map.ofList [[ "name", JString "Alice"; "age", JNumber

25.0 ]])

                  JObject (Map.ofList [[ "name", JString "Bob"; "age", JNumber 

30.0 ]])

                ]]

            ]]

        )

    )

)



╭─[ 453.97ms - return value ]──────────────────────────────────────────────────╮

│ <details open="open" class="dni-treeview"><summary><span                     │

│ class="dni-code-hint"><code>Success<br/>  (JObject<br/>     (map<br/>        │

│ [(&quot;array&quot;,<br/>          JArray<br/>            [JNumber 1.0;      │

│ JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber 5.0]);<br/>                   │

│ (&quot;boolean&quot;, JBool true); (&quot;emptyArray&quot;, JArray []);<br/> │

│ (&quot;emptyObject&quot;, JObject (map []));<br/>                            │

│ (&quot;escapedString&quot;, JString &quot;This                               │

│ s...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< │

│ td>Item</td><td><details class="dni-treeview"><summary><span                 │

│ class="dni-code-hint"><code>(JObject<br/>  (map<br/>     [                   │

│ (&quot;array&quot;,<br/>       JArray [JNumber 1.0; JNumber 2.0; JNumber     │

│ 3.0; JNumber 4.0; J...                                                       │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 462.87ms - stdout ]────────────────────────────────────────────────────────╮

│ JObject                                                                      │

│   (map                                                                       │

│      [("array",                                                              │

│        JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; JNumber 4.0; JNumber   │

│ 5.0]);                                                                       │

│       ("boolean", JBool true); ("emptyArray", JArray []);                    │

│       ("emptyObject", JObject (map []));                                     │

│       ("escapedString", JString "This string contains \/\\\b\f\n\r\t\"\'");  │

│       ("nestedArrays",                                                       │

│        JArray                                                                │

│          [JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0];                    │

│           JArray [JNumber 4.0; JNumber 5.0; JNumber 6.0]]);                  │

│       ("nestedObjects",                                                      │

│        JArray                                                                │

│          [JObject (map [("age", JNumber 25.0); ("name", JString "Alice")]);  │

│           JObject (map [("age", JNumber 30.0); ("name", JString "Bob")])]);  │

│       ("nullValue", JNull); ("number", JNumber 42.0); ...])                  │

│ JObject                                                                      │

│       Item: FSharpMap<String,JValue>                                         │

│         - Key: array                                                         │

│           Value: JArray                                                      │

│             Item: FSharpList<JValue>                                         │

│               - Item: 1                                                      │

│                 IsJString: False                                             │

│                 IsJNumber: True                                              │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│               - Item: 2                                                      │

│                 IsJString: False                                             │

│                 IsJNumber: True                                              │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│               - Item: 3                                                      │

│                 IsJString: False                                             │

│                 IsJNumber: True                                              │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│               - Item: 4                                                      │

│                 IsJString: False                                             │

│                 IsJNumber: True                                              │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│               - Item: 5                                                      │

│                 IsJString: False                                             │

│                 IsJNumber: True                                              │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: False                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: True                                                   │

│         - Key: boolean                                                       │

│           Value: JBool                                                       │

│             Item: True                                                       │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: True                                                    │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: emptyArray                                                    │

│           Value: JArray                                                      │

│             Item: FSharpList<JValue>                                         │

│                                                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: True                                                   │

│         - Key: emptyObject                                                   │

│           Value: JObject                                                     │

│             Item: FSharpMap<String,JValue>                                   │

│                                                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: True                                                  │

│             IsJArray: False                                                  │

│         - Key: escapedString                                                 │

│           Value: JString                                                     │

│             Item: This string contains \/\\\b\f\n\r\t\"\'                    │

│             IsJString: True                                                  │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: nestedArrays                                                  │

│           Value: JArray                                                      │

│             Item: FSharpList<JValue>                                         │

│               - Item: [ JNumber 1.0, JNumber 2.0, JNumber 3.0 ]              │

│                 IsJString: False                                             │

│                 IsJNumber: False                                             │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: True                                               │

│               - Item: [ JNumber 4.0, JNumber 5.0, JNumber 6.0 ]              │

│                 IsJString: False                                             │

│                 IsJNumber: False                                             │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: False                                             │

│                 IsJArray: True                                               │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: True                                                   │

│         - Key: nestedObjects                                                 │

│           Value: JArray                                                      │

│             Item: FSharpList<JValue>                                         │

│               - Item: [ [age, JNumber 25.0], [name, JString "Alice"] ]       │

│                 IsJString: False                                             │

│                 IsJNumber: False                                             │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: True                                              │

│                 IsJArray: False                                              │

│               - Item: [ [age, JNumber 30.0], [name, JString "Bob"] ]         │

│                 IsJString: False                                             │

│                 IsJNumber: False                                             │

│                 IsJBool: False                                               │

│                 IsJNull: False                                               │

│                 IsJObject: True                                              │

│                 IsJArray: False                                              │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: True                                                   │

│         - Key: nullValue                                                     │

│           Value: JValue                                                      │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: True                                                    │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: number                                                        │

│           Value: JNumber                                                     │

│             Item: 42                                                         │

│             IsJString: False                                                 │

│             IsJNumber: True                                                  │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: object                                                        │

│           Value: JObject                                                     │

│             Item: FSharpMap<String,JValue>                                   │

│               - Key: nestedArray                                             │

│                 Value: JArray [JString "a"; JString "b"; JString "c"]        │

│               - Key: nestedBoolean                                           │

│                 Value: JBool false                                           │

│               - Key: nestedNull                                              │

│                 Value: JNull                                                 │

│               - Key: nestedNumber                                            │

│                 Value: JNumber 3.14                                          │

│               - Key: nestedObject                                            │

│                 Value: JObject (map [("nestedProperty", JString "Nested      │

│ Object Value")])                                                             │

│               - Key: nestedString                                            │

│                 Value: JString "Nested Value"                                │

│             IsJString: False                                                 │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: True                                                  │

│             IsJArray: False                                                  │

│         - Key: scientificNumber                                              │

│           Value: JNumber                                                     │

│             Item: 3.14E-10                                                   │

│             IsJString: False                                                 │

│             IsJNumber: True                                                  │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: specialCharacters                                             │

│           Value: JString                                                     │

│             Item: !@#$%^&*()                                                 │

│             IsJString: True                                                  │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: string                                                        │

│           Value: JString                                                     │

│             Item: Hello, "World"!                                            │

│             IsJString: True                                                  │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: unicodeString1                                                │

│           Value: JString                                                     │

│             Item: 프리마                                                     │

│             IsJString: True                                                  │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│         - Key: unicodeString2                                                │

│           Value: JString                                                     │

│             Item: Hello, "World"!                                            │

│             IsJString: True                                                  │

│             IsJNumber: False                                                 │

│             IsJBool: False                                                   │

│             IsJNull: False                                                   │

│             IsJObject: False                                                 │

│             IsJArray: False                                                  │

│       IsJString: False                                                       │

│       IsJNumber: False                                                       │

│       IsJBool: False                                                         │

│       IsJNull: False                                                         │

│       IsJObject: True                                                        │

│       IsJArray: False                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook JsonParser.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 545759 bytes to JsonParser.dib.html



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # Parser (Polyglot)                                                          │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp ──────────────────────────────────────────────────────────────────────

open Common



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### TextInput                                                                │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type Position =

    {

        line : int

        column : int

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let initialPos = { line = 0; column = 0 }



── fsharp ──────────────────────────────────────────────────────────────────────

let inline incrCol (pos : Position) =

    { pos with column = pos.column + 1 }



── fsharp ──────────────────────────────────────────────────────────────────────

let inline incrLine pos =

    { line = pos.line + 1; column = 0 }



── fsharp ──────────────────────────────────────────────────────────────────────

type InputState =

    {

        lines : string[[]]

        position : Position

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let inline fromStr str =

    {

        lines =

            if str |> String.IsNullOrEmpty

            then [[||]]

            else str |> SpiralSm.split_string [[| "\r\n"; "\n" |]]

        position = initialPos

    }



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



fromStr "" |> _assertEqual {

    lines = [[||]]

    position = { line = 0; column = 0 }

}



╭─[ 50.61ms - stdout ]─────────────────────────────────────────────────────────╮

│ InputState                                                                   │

│       lines: [  ]                                                            │

│       position: Position                                                     │

│         line: 0                                                              │

│         column: 0                                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



fromStr "Hello \n World" |> _assertEqual {

    lines = [[| "Hello "; " World" |]]

    position = { line = 0; column = 0 }

}



╭─[ 18.52ms - stdout ]─────────────────────────────────────────────────────────╮

│ InputState                                                                   │

│       lines: [ Hello ,  World ]                                              │

│       position: Position                                                     │

│         line: 0                                                              │

│         column: 0                                                            │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline currentLine inputState =

    let linePos = inputState.position.line

    if linePos < inputState.lines.Length

    then inputState.lines.[[linePos]]

    else "end of file"



── fsharp ──────────────────────────────────────────────────────────────────────

let inline nextChar input =

    let linePos = input.position.line

    let colPos = input.position.column



    if linePos >= input.lines.Length

    then input, None

    else

        let currentLine = currentLine input

        if colPos < currentLine.Length then

            let char = currentLine.[[colPos]]

            let newPos = incrCol input.position

            let newState = { input with position = newPos }

            newState, Some char

        else

            let char = '\n'

            let newPos = incrLine input.position

            let newState = { input with position = newPos }

            newState, Some char



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let newInput, charOpt = fromStr "Hello World" |> nextChar



newInput |> _assertEqual {

    lines = [[| "Hello World" |]]

    position = { line = 0; column = 1 }

}

charOpt |> _assertEqual (Some 'H')



╭─[ 40.78ms - stdout ]─────────────────────────────────────────────────────────╮

│ InputState                                                                   │

│       lines: [ Hello World ]                                                 │

│       position: Position                                                     │

│         line: 0                                                              │

│         column: 1                                                            │

│ FSharpOption<Char>                                                           │

│       Value: H                                                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let newInput, charOpt = fromStr "Hello\n\nWorld" |> nextChar



newInput |> _assertEqual {

    lines = [[| "Hello"; ""; "World" |]]

    position = { line = 0; column = 1 }

}

charOpt |> _assertEqual (Some 'H')



╭─[ 31.48ms - stdout ]─────────────────────────────────────────────────────────╮

│ InputState                                                                   │

│       lines: [ Hello, , World ]                                              │

│       position: Position                                                     │

│         line: 0                                                              │

│         column: 1                                                            │

│ FSharpOption<Char>                                                           │

│       Value: H                                                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ### Parser                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type Input = InputState

type ParserLabel = string

type ParserError = string



type ParserPosition =

    {

        currentLine : string

        line : int

        column : int

    }



type ParseResult<'a> =

    | Success of 'a

    | Failure of ParserLabel * ParserError * ParserPosition



type Parser<'a> =

    {

        label : ParserLabel

        parseFn : Input -> ParseResult<'a * Input>

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let inline printResult result =

    match result with

    | Success (value, input) ->

        printfn $"%A{value}"

    | Failure (label, error, parserPos) ->

        let errorLine = parserPos.currentLine

        let colPos = parserPos.column

        let linePos = parserPos.line

        let failureCaret = $"{' ' |> string |> String.replicate colPos}^{error}"

        printfn $"Line:%i{linePos} Col:%i{colPos} Error parsing 

%s{label}\n%s{errorLine}\n%s{failureCaret}"



── fsharp ──────────────────────────────────────────────────────────────────────

let inline runOnInput parser input =

    parser.parseFn input



── fsharp ──────────────────────────────────────────────────────────────────────

let inline run parser inputStr =

    runOnInput parser (fromStr inputStr)



── fsharp ──────────────────────────────────────────────────────────────────────

let inline parserPositionFromInputState (inputState : Input) =

    {

        currentLine = currentLine inputState

        line = inputState.position.line

        column = inputState.position.column

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let inline getLabel parser =

    parser.label



── fsharp ──────────────────────────────────────────────────────────────────────

let inline setLabel parser newLabel =

    {

        label = newLabel

        parseFn = fun input ->

            match parser.parseFn input with

            | Success s -> Success s

            | Failure (oldLabel, err, pos) -> Failure (newLabel, err, pos)

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let (<?>) = setLabel



── fsharp ──────────────────────────────────────────────────────────────────────

let inline satisfy predicate label =

    {

        label = label

        parseFn = fun input ->

            let remainingInput, charOpt = nextChar input

            match charOpt with

            | None ->

                let err = "No more input"

                let pos = parserPositionFromInputState input

                Failure (label, err, pos)

            | Some first ->

                if predicate first

                then Success (first, remainingInput)

                else

                    let err = $"Unexpected '%c{first}'"

                    let pos = parserPositionFromInputState input

                    Failure (label, err, pos)

    }



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = satisfy (fun c -> c = 'H') "H"

runOnInput parser input |> _assertEqual (

    Success (

        'H',

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 1 }

        }

    )

)



╭─[ 37.37ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - H                                                        │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 1                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "World"

let parser = satisfy (fun c -> c = 'H') "H"

runOnInput parser input |> _assertEqual (

    Failure (

        "H",

        "Unexpected 'W'",

        {

            currentLine = "World"

            line = 0

            column = 0

        }

    )

)



╭─[ 77.18ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: H                                                               │

│       Item2: Unexpected 'W'                                                  │

│       Item3: ParserPosition                                                  │

│         currentLine: World                                                   │

│         line: 0                                                              │

│         column: 0                                                            │

│       IsSuccess: False                                                       │

│       IsFailure: True                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline bindP f p =

    {

        label = "unknown"

        parseFn = fun input ->

            match runOnInput p input with

            | Failure (label, err, pos) -> Failure (label, err, pos)

            | Success (value1, remainingInput) -> runOnInput (f value1) 

remainingInput

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let inline (>>=) p f = bindP f p



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"

runOnInput parser2 input |> _assertEqual (

    Success (

        'e',

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 2 }

        }

    )

)



╭─[ 47.93ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - e                                                        │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 2                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "World"

let parser = satisfy (fun c -> c = 'W') "W"

let parser2 = parser >>= fun c -> satisfy (fun c -> c = 'e') "e"

runOnInput parser2 input |> _assertEqual (

    Failure (

        "e",

        "Unexpected 'o'",

        {

            currentLine = "World"

            line = 0

            column = 1

        }

    )

)



╭─[ 39.46ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: e                                                               │

│       Item2: Unexpected 'o'                                                  │

│       Item3: ParserPosition                                                  │

│         currentLine: World                                                   │

│         line: 0                                                              │

│         column: 1                                                            │

│       IsSuccess: False                                                       │

│       IsFailure: True                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline returnP x =

    {

        label = $"%A{x}"

        parseFn = fun input -> Success (x, input)

    }



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = returnP "Hello"

runOnInput parser input |> _assertEqual (

    Success (

        "Hello",

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 0 }

        }

    )

)



╭─[ 32.12ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - Hello                                                    │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 0                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline mapP f =

    bindP (f >> returnP)



── fsharp ──────────────────────────────────────────────────────────────────────

let (<!>) = mapP



── fsharp ──────────────────────────────────────────────────────────────────────

let inline (|>>) x f = f <!> x



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = parser |>> string

runOnInput parser2 input |> _assertEqual (

    Success (

        "H",

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 1 }

        }

    )

)



╭─[ 34.02ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - H                                                        │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 1                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline applyP fP xP =

    fP >>=

        fun f ->

            xP >>=

                fun x ->

                    returnP (f x)



── fsharp ──────────────────────────────────────────────────────────────────────

let (<*>) = applyP



── fsharp ──────────────────────────────────────────────────────────────────────

let inline lift2 f xP yP =

    returnP f <*> xP <*> yP



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = satisfy (fun c -> c = 'e') "e"

let parser3 = lift2 (fun c1 c2 -> string c1 + string c2) parser parser2

runOnInput parser3 input |> _assertEqual (

    Success (

        "He",

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 2 }

        }

    )

)



╭─[ 58.56ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - He                                                       │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 2                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline andThen p1 p2 =

    p1 >>=

        fun p1Result ->

            p2 >>=

                fun p2Result ->

                    returnP (p1Result, p2Result)

    <?> $"{getLabel p1} andThen {getLabel p2}"



── fsharp ──────────────────────────────────────────────────────────────────────

let (.>>.) = andThen



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = satisfy (fun c -> c = 'e') "e"

let parser3 = parser .>>. parser2

runOnInput parser3 input |> _assertEqual (

    Success (

        ('H', 'e'),

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 2 }

        }

    )

)



╭─[ 54.89ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - ( H, e )                                                 │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 2                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline orElse p1 p2 =

    {

        label = $"{getLabel p1} orElse {getLabel p2}"

        parseFn = fun input ->

            match runOnInput p1 input with

            | Success _ as result -> result

            | Failure _ -> runOnInput p2 input

    }



── fsharp ──────────────────────────────────────────────────────────────────────

let (<|>) = orElse



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = satisfy (fun c -> c = 'h') "h"

let parser3 = parser <|> parser2

runOnInput parser3 input |> _assertEqual (

    Success (

        'h',

        {

            lines = [[| "hello" |]]

            position = { line = 0; column = 1 }

        }

    )

)



╭─[ 36.24ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - h                                                        │

│       - InputState                                                           │

│           lines: [ hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 1                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline choice listOfParsers =

    listOfParsers |> List.reduce (<|>)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = satisfy (fun c -> c = 'h') "h"

let parser3 = choice [[ parser; parser2 ]]

runOnInput parser3 input |> _assertEqual (

    Success (

        'h',

        {

            lines = [[| "hello" |]]

            position = { line = 0; column = 1 }

        }

    )

)



╭─[ 44.41ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - h                                                        │

│       - InputState                                                           │

│           lines: [ hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 1                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let rec sequence parserList =

    match parserList with

    | [[]] -> returnP [[]]

    | head :: tail -> (lift2 cons) head (sequence tail)



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = satisfy (fun c -> c = 'e') "e"

let parser3 = sequence [[ parser; parser2 ]]

runOnInput parser3 input |> _assertEqual (

    Success (

        [[ 'H'; 'e' ]],

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 2 }

        }

    )

)



╭─[ 70.52ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - [ H, e ]                                                 │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 2                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let rec parseZeroOrMore parser input =

    match runOnInput parser input with

    | Failure (_, _, _) ->

        [[]], input

    | Success (firstValue, inputAfterFirstParse) ->

        let subsequentValues, remainingInput = parseZeroOrMore parser 

inputAfterFirstParse

        firstValue :: subsequentValues, remainingInput



── fsharp ──────────────────────────────────────────────────────────────────────

let inline many parser =

    {

        label = $"many {getLabel parser}"

        parseFn = fun input -> Success (parseZeroOrMore parser input)

    }



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = many parser

runOnInput parser2 input |> _assertEqual (

    Success (

        [[]],

        {

            lines = [[| "hello" |]]

            position = { line = 0; column = 0 }

        }

    )

)



╭─[ 32.50ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - [  ]                                                     │

│       - InputState                                                           │

│           lines: [ hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 0                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline many1 p =

    p >>=

        fun head ->

            many p >>=

                fun tail ->

                    returnP (head :: tail)

    <?> $"many1 {getLabel p}"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = many1 parser

runOnInput parser2 input |> _assertEqual (

    Failure (

        "many1 H",

        "Unexpected 'h'",

        {

            currentLine = "hello"

            line = 0

            column = 0

        }

    )

)



╭─[ 47.14ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: many1 H                                                         │

│       Item2: Unexpected 'h'                                                  │

│       Item3: ParserPosition                                                  │

│         currentLine: hello                                                   │

│         line: 0                                                              │

│         column: 0                                                            │

│       IsSuccess: False                                                       │

│       IsFailure: True                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline opt p =

    let some = p |>> Some

    let none = returnP None

    (some <|> none)

    <?> $"opt {getLabel p}"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "hello"

let parser = satisfy (fun c -> c = 'H') "H"

let parser2 = opt parser

runOnInput parser2 input |> _assertEqual (

    Success (

        None,

        {

            lines = [[| "hello" |]]

            position = { line = 0; column = 0 }

        }

    )

)



╭─[ 45.79ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - <null>                                                   │

│       - InputState                                                           │

│           lines: [ hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 0                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline (.>>) p1 p2 =

    p1 .>>. p2

    |> mapP fst



── fsharp ──────────────────────────────────────────────────────────────────────

let inline (>>.) p1 p2 =

    p1 .>>. p2

    |> mapP snd



── fsharp ──────────────────────────────────────────────────────────────────────

let inline between p1 p2 p3 =

    p1 >>. p2 .>> p3



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "[[Hello]]"

let parser =

    between

        (satisfy (fun c -> c = '[[') "[[")

        (many (satisfy (fun c -> [[ 'a' .. 'z' ]] @ [[ 'A' .. 'Z' ]] |> 

List.contains c) "letter"))

        (satisfy (fun c -> c = ']]') "]]")

runOnInput parser input |> _assertEqual (

    Success (

        [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],

        {

            lines = [[| "[[Hello]]" |]]

            position = { line = 0; column = 7 }

        }

    )

)



╭─[ 151.33ms - stdout ]────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - [ H, e, l, l, o ]                                        │

│       - InputState                                                           │

│           lines: [ [Hello] ]                                                 │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 7                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline sepBy1 p sep =

    let sepThenP = sep >>. p

    p .>>. many sepThenP

    |>> fun (p, pList) -> p :: pList



── fsharp ──────────────────────────────────────────────────────────────────────

let inline sepBy p sep =

    sepBy1 p sep <|> returnP [[]]



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello,World"

let parser = sepBy (many (satisfy (fun c -> c <> ',') "not comma")) (satisfy 

(fun c -> c = ',') "comma")

runOnInput parser input |> _assertEqual (

    Success (

        [[ [[ 'H'; 'e'; 'l'; 'l'; 'o' ]]; [[ 'W'; 'o'; 'r'; 'l'; 'd'; '\n' ]] 

]],

        {

            lines = [[| "Hello,World" |]]

            position = { line = 1; column = 0 }

        }

    )

)



╭─[ 85.20ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - FSharpList<FSharpList<Char>>                             │

│ [ H, e, l, l, o ]                                                            │

│ [ W, o, r, l, d,                                                             │

│  ]                                                                           │

│       - InputState                                                           │

│           lines: [ Hello,World ]                                             │

│           position: Position                                                 │

│             line: 1                                                          │

│             column: 0                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline pchar charToMatch =

    satisfy ((=) charToMatch) $"%c{charToMatch}"



── fsharp ──────────────────────────────────────────────────────────────────────

let inline anyOf listOfChars =

    listOfChars

    |> List.map pchar

    |> choice

    <?> $"anyOf %A{listOfChars}"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = anyOf [[ 'H'; 'e'; 'l'; 'o' ]] |> many

runOnInput parser input |> _assertEqual (

    Success (

        [[ 'H'; 'e'; 'l'; 'l'; 'o' ]],

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 5 }

        }

    )

)



╭─[ 38.45ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - [ H, e, l, l, o ]                                        │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 5                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline charListToStr charList =

    charList |> List.toArray |> String



── fsharp ──────────────────────────────────────────────────────────────────────

let inline manyChars cp =

    many cp

    |>> charListToStr



── fsharp ──────────────────────────────────────────────────────────────────────

let inline manyChars1 cp =

    many1 cp

    |>> charListToStr



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = manyChars1 (anyOf [[ 'H'; 'e'; 'l'; 'o' ]])

runOnInput parser input |> _assertEqual (

    Success (

        "Hello",

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 5 }

        }

    )

)



╭─[ 66.63ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - Hello                                                    │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 5                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline pstring str =

    str

    |> List.ofSeq

    |> List.map pchar

    |> sequence

    |> mapP charListToStr

    <?> str



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = pstring "Hello"

runOnInput parser input |> _assertEqual (

    Success (

        "Hello",

        {

            lines = [[| "Hello" |]]

            position = { line = 0; column = 5 }

        }

    )

)



╭─[ 48.09ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - Hello                                                    │

│       - InputState                                                           │

│           lines: [ Hello ]                                                   │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 5                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let whitespaceChar =

    satisfy Char.IsWhiteSpace "whitespace"



── fsharp ──────────────────────────────────────────────────────────────────────

let spaces = many whitespaceChar



── fsharp ──────────────────────────────────────────────────────────────────────

let spaces1 = many1 whitespaceChar



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "  Hello"

let parser = spaces1 .>>. pstring "Hello"

runOnInput parser input |> _assertEqual (

    Success (

        ([[ ' '; ' ' ]], "Hello"),

        {

            lines = [[| "  Hello" |]]

            position = { line = 0; column = 7 }

        }

    )

)



╭─[ 58.99ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       -         - [  ,   ]                                       │

│         - Hello                                                              │

│       - InputState                                                           │

│           lines: [   Hello ]                                                 │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 7                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let digitChar =

    satisfy Char.IsDigit "digit"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let input = fromStr "Hello"

let parser = digitChar

runOnInput parser input |> _assertEqual (

    Failure (

        "digit",

        "Unexpected 'H'",

        {

            currentLine = "Hello"

            line = 0

            column = 0

        }

    )

)



╭─[ 24.31ms - stdout ]─────────────────────────────────────────────────────────╮

│ Failure                                                                      │

│       Item1: digit                                                           │

│       Item2: Unexpected 'H'                                                  │

│       Item3: ParserPosition                                                  │

│         currentLine: Hello                                                   │

│         line: 0                                                              │

│         column: 0                                                            │

│       IsSuccess: False                                                       │

│       IsFailure: True                                                        │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let pint =

    let inline resultToInt (sign, digits) =

        let i = int digits

        match sign with

        | Some ch -> -i

        | None -> i



    let digits = manyChars1 digitChar



    opt (pchar '-') .>>. digits

    |> mapP resultToInt

    <?> "integer"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run pint "-123"

|> _assertEqual (

    Success (

        -123,

        {

            lines = [[| "-123" |]]

            position = { line = 0; column = 4 }

        }

    )

)



╭─[ 35.46ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - -123                                                     │

│       - InputState                                                           │

│           lines: [ -123 ]                                                    │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 4                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let pfloat =

    let inline resultToFloat (((sign, digits1), point), digits2) =

        let fl = float $"{digits1}.{digits2}"

        match sign with

        | Some ch -> -fl

        | None -> fl



    let digits = manyChars1 digitChar



    opt (pchar '-') .>>. digits .>>. pchar '.' .>>. digits

    |> mapP resultToFloat

    <?> "float"



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



run pfloat "-123.45"

|> _assertEqual (

    Success (

        -123.45,

        {

            lines = [[| "-123.45" |]]

            position = { line = 0; column = 7 }

        }

    )

)



╭─[ 35.62ms - stdout ]─────────────────────────────────────────────────────────╮

│ Success                                                                      │

│       Item:       - -123.45                                                  │

│       - InputState                                                           │

│           lines: [ -123.45 ]                                                 │

│           position: Position                                                 │

│             line: 0                                                          │

│             column: 7                                                        │

│     - IsSuccess: True                                                        │

│       IsFailure: False                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline createParserForwardedToRef<'a> () =

    let mutable parserRef : Parser<'a> =

        {

            label = "unknown"

            parseFn = fun _ -> failwith "unfixed forwarded parser"

        }



    let wrapperParser =

        { parserRef with

            parseFn = fun input -> runOnInput parserRef input

        }



    wrapperParser, (fun v -> parserRef <- v)



── fsharp ──────────────────────────────────────────────────────────────────────

let inline (>>%) p x =

    p

    |>> fun _ -> x

[NbConvertApp] Converting notebook Parser.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 415579 bytes to Parser.dib.html

00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Parser.dib

00:00:00 #1 [Debug] writeDibCode / output: Fs / path: JsonParser.dib

00:00:00 #3 [Debug] parseDibCode / output: Fs / file: JsonParser.dib

00:00:00 #3 [Debug] parseDibCode / output: Fs / file: Parser.dib

In [ ]:
{ . "$ScriptDir/../apps/spiral/build.ps1" } | Invoke-Block

── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # Supervisor (Polyglot)                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── fsharp ──────────────────────────────────────────────────────────────────────

#r 

@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

dard2.1/FSharp.Control.AsyncSeq.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

0/System.Reactive.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/

netstandard2.0/System.Reactive.Linq.dll"

#r 

@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

#r 

@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

b/net6.0/System.CommandLine.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com

mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli

ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0

/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0

/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/

7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"

#r 

@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha

rp.Json.dll"



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import ../../lib/fsharp/CommonFSharp.fs

#!import ../../lib/fsharp/Threading.fs

#!import ../../lib/fsharp/Async.fs

#!import ../../lib/fsharp/AsyncSeq.fs

#!import ../../lib/fsharp/Networking.fs

#!import ../../lib/fsharp/Runtime.fs

#!import ../../lib/fsharp/FileSystem.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module CommonFSharp =



    open Common



    /// ## getUnionCaseName



    let inline getUnionCaseName<'T> (x: 'T) =

        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

        | case, _ -> case.Name





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Threading =



    open Common



    /// ## newDisposableToken



    let inline newDisposableToken (mergeToken: 

System.Threading.CancellationToken option) =

        let cts = new System.Threading.CancellationTokenSource ()

        let cts =

            match mergeToken with

            | None -> cts

            | Some mergeToken ->

                System.Threading.CancellationTokenSource.CreateLinkedTokenSource

[[| cts.Token; mergeToken |]]

        let disposable = new_disposable cts.Cancel

        cts.Token, disposable





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Async =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## choice



    let inline choice asyncs = async {

        let e = Event<_> ()

        use cts = new System.Threading.CancellationTokenSource ()

        let fn =

            asyncs

            |> Seq.map (fun a -> async {

                let! x = a

                e.Trigger x

            })

            |> Async.Parallel

            |> Async.Ignore

        Async.Start (fn, cts.Token)

        let! result = Async.AwaitEvent e.Publish

        cts.Cancel ()

        return result

    }



    /// ## map



    let inline map fn a = async {

        let! x = a

        return fn x

    }



    /// ## catch



    let inline catch a =

   ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module AsyncSeq =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## subscribeEvent



    let inline subscribeEvent (event: IEvent<'H, 'A>) map =

        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 

'A>(event.AddHandler, event.RemoveHandler)

        System.Reactive.Linq.Observable.Select (observable, fun event -> map 

event.EventArgs)

        |> FSharp.Control.AsyncSeq.ofObservableBuffered



    let subscribeToken (token : System.Threading.CancellationToken) =

        let tcs = new System.Threading.Tasks.TaskCompletionSource ()

        System.Action tcs.SetResult |> token.Register |> ignore

        let start = System.DateTime.Now.Ticks

        FSharp.Control.A...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Networking =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## testPortOpen



    let inline testPortOpen port = async {

        let! ct = Async.CancellationToken

        use client = new System.Net.Sockets.TcpClient ()

        try

            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 

Async.awaitValueTaskUnit

            return true

        with ex ->

            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 

SpiralSm.format_exception}") getLocals

            return false

    }



    let inline testPortOpenTimeout timeout port = async {

        let! result =

            testPortOpen port

            |> Async.runWithTimeoutAsync timeout

        return

          ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Runtime =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## isWindows



    let isWindows =

        fun () ->

            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

                System.Runtime.InteropServices.OSPlatform.Windows

        |> memoize



    /// ## getExecutableSuffix



    let inline getExecutableSuffix () =

        if isWindows ()

        then ".exe"

        else ""



    /// ## splitCommand



    type private CommandParseStep =

        | Start

        | Path of quoted: bool

        | Arguments



    let splitCommand (command: string) =

        let rec loop (path, args) chars step =

            match chars, step with

            | ('"' | '\'') ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module FileSystem =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## readAllTextAsync



    let inline readAllTextAsync path =

        path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask



    /// ## fileExistsContent



    let inline fileExistsContent path content = async {

        if path |> System.IO.File.Exists |> not

        then return false

        else

            let! existingContent = path |> readAllTextAsync

            return content = existingContent

    }



    /// ## writeAllTextAsync



    let inline writeAllTextAsync path contents =

        System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask



    /// ## write...



── fsharp ──────────────────────────────────────────────────────────────────────

#if !INTERACTIVE

open Lib

#endif



── fsharp ──────────────────────────────────────────────────────────────────────

open Common

open SpiralFileSystem.Operators

open Microsoft.AspNetCore.SignalR.Client



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## sendJson                                                                  │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline sendJson (port : int) (json : string) = async {

    let! portOpen = Networking.testPortOpen port

    if portOpen then

        try

            let connection = 

HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()

            do! connection.StartAsync () |> Async.AwaitTask

            let! result = connection.InvokeAsync<string>("ClientToServerMsg", 

json) |> Async.AwaitTask

            do! connection.StopAsync () |> Async.AwaitTask

            trace Debug (fun () -> $"sendJson / port: {port} / json: {json} / 

result.Length: {result |> Option.ofObj |> Option.map String.length}") getLocals

            return Some result

        with ex ->

            trace Critical (fun () -> $"sendJson / port: {port} / json: {json} /

ex: {ex |> SpiralSm.format_exception}") getLocals

            return None

    else

        trace Debug (fun () -> "sendJson / error: port not open") getLocals

        return None

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## sendObj                                                                   │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline sendObj port obj =

    obj

    |> System.Text.Json.JsonSerializer.Serialize

    |> sendJson port



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## awaitCompiler                                                             │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

type VSCPos = {| line : int; character : int |}

type VSCRange = VSCPos * VSCPos

type RString = VSCRange * string

type TracedError = {| trace : string list; message : string |}

type ClientErrorsRes =

    | FatalError of string

    | TracedError of TracedError

    | PackageErrors of {| uri : string; errors : RString list |}

    | TokenizerErrors of {| uri : string; errors : RString list |}

    | ParserErrors of {| uri : string; errors : RString list |}

    | TypeErrors of {| uri : string; errors : RString list |}



── fsharp ──────────────────────────────────────────────────────────────────────

let inline awaitCompiler port cancellationToken = async {

    let ct, disposable = cancellationToken |> Threading.newDisposableToken

    let! ct = ct |> Async.mergeCancellationTokenWithDefaultAsync



    let compiler = MailboxProcessor.Start (fun inbox -> async {

        let! availablePort = Networking.getAvailablePort (Some 60) port

        if availablePort <> port then

            inbox.Post (port, false)

        else

            let repositoryRoot = SpiralFileSystem.get_source_directory () |> 

SpiralFileSystem.find_parent ".paket" false



            let compilerPath =

                repositoryRoot </> "deps/The-Spiral-Language/The Spiral Language

2/artifacts/bin/The Spiral Language 2/release"

                |> System.IO.Path.GetFullPath



            let dllPath = compilerPath </> "Spiral.dll"



            let! exitCode, result =

                Runtime.executeWithOptionsAsync

                    {

                        Command = $@"dotnet ""{dllPath}"" --port {availablePort}

--default-int i32 --default-float f64"

                        CancellationToken = Some ct

                        WorkingDirectory = None

                        OnLine = Some <| fun { Line = line } -> async {

                            if line |> SpiralSm.contains $"Server bound to: 

http://localhost:{availablePort}" then

                                do! Networking.waitForPortAccess (Some 500) true

availablePort |> Async.Ignore



                                let rec loop retry = async {

                                    let getLocals () = $"port: {availablePort} /

retry: {retry} / {getLocals ()}"

                                    try

                                        let pingObj = {| Ping = true |}

                                        let! pingResult = pingObj |> sendObj 

availablePort

                                        trace Verbose (fun () -> $"awaitCompiler

/ Ping / result: {pingResult}") getLocals

                                    with ex ->

                                        trace Verbose (fun () -> $"awaitCompiler

/ Ping / ex: {ex |> SpiralSm.format_exception}") getLocals

                                        do! Async.Sleep 10

                                        do! loop (retry + 1)

                                }

                                do! loop 0

                                inbox.Post (availablePort, true)

                        }

                    }

            trace Debug (fun () -> $"awaitCompiler / exitCode: {exitCode} / 

result: {result}") getLocals

            disposable.Dispose ()

    }, ct)



    let! serverPort, managed = compiler.Receive ()



    let connection = 

HubConnectionBuilder().WithUrl($"http://127.0.0.1:{serverPort}").Build ()

    do! connection.StartAsync () |> Async.AwaitTask



    let event = Event<_> ()

    let disposable' = connection.On<string> ("ServerToClientMsg", event.Trigger)

    let stream =

        FSharp.Control.AsyncSeq.unfoldAsync

            (fun () -> async {

                let! msg = event.Publish |> Async.AwaitEvent

                return Some (msg |> 

FSharp.Json.Json.deserialize<ClientErrorsRes>, ())

            })

            ()



    let disposable' =

        new_disposable (fun () ->

            async {

                disposable'.Dispose ()

                do! connection.StopAsync () |> Async.AwaitTask

                disposable.Dispose ()

                if managed

                then do! Networking.waitForPortAccess (Some 2000) false 

serverPort |> Async.Ignore

            }

            |> Async.RunSynchronously

        )



    return

        serverPort,

        stream,

        ct,

        disposable'

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## getFileUri                                                                │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline getFileUri (path : string) =

    let path =

        if Runtime.isWindows () |> not

        then path

        else $"{path.[[0]] |> System.Char.ToLower}{path.[[1..]]}" |> 

SpiralSm.replace "\\" "/"

    $"file:///{path |> SpiralSm.trim_start [[| '/' |]]}"



── fsharp ──────────────────────────────────────────────────────────────────────

let inline getFilePathFromUri uri =

    match System.Uri.TryCreate (uri, System.UriKind.Absolute) with

    | true, uri -> uri.AbsolutePath |> System.IO.Path.GetFullPath

    | _ -> failwith "invalid uri"



── fsharp ──────────────────────────────────────────────────────────────────────

let inline getCompilerPort () =

    13805



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## serialize_obj                                                             │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

    let serializeObj obj =

        obj

        |> FSharp.Json.Json.serialize

        |> SpiralSm.replace "\\\\" "\\"

        |> SpiralSm.replace "\\r\\n" "\n"

        |> SpiralSm.replace "\\n" "\n"



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## buildFile                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline buildFile timeout port cancellationToken path = async {

    let fullPath = path |> System.IO.Path.GetFullPath

    let fileDir = fullPath |> System.IO.Path.GetDirectoryName

    let fileName = fullPath |> System.IO.Path.GetFileNameWithoutExtension

    let! code = fullPath |> FileSystem.readAllTextAsync



    let eventFilter = function

        | FileSystem.FileSystemChange.Changed (path, _) when path = 

$"{fileName}.fsx" -> true

        | _ -> false



    let stream, disposable = fileDir |> FileSystem.watchDirectory eventFilter

    use _ = disposable



    let token, disposable = Threading.newDisposableToken cancellationToken

    use _ = disposable



    let! serverPort, errors, ct, disposable = awaitCompiler port (Some token)

    use _ = disposable



    let fsxContentSeq =

        stream

        |> FSharp.Control.AsyncSeq.choose (function

            | _, (FileSystem.FileSystemChange.Changed (path, Some content) as 

event)

                when event |> eventFilter

                ->

                Some content

            | _ -> None

        )

        |> FSharp.Control.AsyncSeq.map (fun content ->

            Some (content |> SpiralSm.replace "\r\n" "\n"), None

        )



    let inline printErrorData (data : {| uri : string; errors : RString list |})

=

        let fileName = data.uri |> System.IO.Path.GetFileName

        let errors =

            data.errors

            |> List.map snd

            |> SpiralSm.concat "\n"

        $"{fileName}:\n{errors}"



    let errorsSeq =

        errors

        |> FSharp.Control.AsyncSeq.choose (fun error ->

            match error with

            | FatalError message ->

                Some (message, error)

            | TracedError data ->

                Some (data.message, error)

            | PackageErrors data when data.errors |> List.isEmpty |> not ->

                Some (data |> printErrorData, error)

            | TokenizerErrors data when data.errors |> List.isEmpty |> not ->

                Some (data |> printErrorData, error)

            | ParserErrors data when data.errors |> List.isEmpty |> not ->

                Some (data |> printErrorData, error)

            | TypeErrors data when data.errors |> List.isEmpty |> not ->

                Some (data |> printErrorData, error)

            | _ -> None

        )

        |> FSharp.Control.AsyncSeq.map (fun (message, error) ->

            None, Some (message, error)

        )



    let timerSeq =

        1000

        |> FSharp.Control.AsyncSeq.intervalMs

        |> FSharp.Control.AsyncSeq.map (fun _ -> None, None)



    let outputSeq =

        [[ fsxContentSeq; errorsSeq; timerSeq ]]

        |> FSharp.Control.AsyncSeq.mergeAll



    let! outputChild =

        ((None, [[]], 0), outputSeq)

        ||> FSharp.Control.AsyncSeq.scan (

            fun (fsxContentResult, errors, typeErrorCount) (fsxContent, error) 

->

                match fsxContent, error with

                | Some fsxContent, None -> Some fsxContent, errors, 

typeErrorCount

                | None, Some (_, FatalError "File main has a type error 

somewhere in its path.") ->

                    fsxContentResult, errors, typeErrorCount + 1

                | None, Some error -> fsxContentResult, error :: errors, 

typeErrorCount

                | None, None when typeErrorCount >= 1 ->

                    fsxContentResult, errors, typeErrorCount + 1

                | _ -> fsxContentResult, errors, typeErrorCount

        )

        |> FSharp.Control.AsyncSeq.takeWhileInclusive (fun (fsxContent, errors, 

typeErrorCount) ->

            trace Debug (fun () -> $"buildFile / takeWhileInclusive / 

fsxContent: {fsxContent |> Option.defaultValue System.String.Empty |> 

SpiralSm.ellipsis 750} / errors: {errors |> serializeObj} / typeErrorCount: 

{typeErrorCount}") getLocals

#if INTERACTIVE

            let errorWait = 2

#else

            let errorWait = 10

#endif

            match fsxContent, errors with

            | None, [[]] when typeErrorCount > errorWait -> false

            | None, [[]] -> true

            | _ -> false

        )

        |> FSharp.Control.AsyncSeq.tryLast

        |> Async.withCancellationToken ct

        |> Async.catch

        |> Async.runWithTimeoutAsync timeout

        |> Async.StartChild



    let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText = 

code |} |}

    let! _fileOpenResult = fileOpenObj |> sendObj serverPort



    do! Async.Sleep 60



    let buildFileObj = {| BuildFile = {| uri = fullPath |> getFileUri; backend =

"Fsharp" |} |}

    let! _buildFileResult = buildFileObj |> sendObj serverPort



    return!

        outputChild

        |> Async.map (function

            | Some (Ok (Some (message, errors, _))) ->

                message, errors |> List.distinct |> List.rev

            | Some (Error ex) ->

                trace Critical (fun () -> $"buildFile / error: {ex |> 

serializeObj}") getLocals

                None, [[]]

            | _ -> None, [[]]

        )

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## persistCode                                                               │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline persistCode code = async {

    let tempDir = SpiralFileSystem.create_temp_directory ()



    let mainPath = tempDir </> "main.spi"

    do! code |> FileSystem.writeAllTextAsync mainPath



    let repositoryRoot = SpiralFileSystem.get_source_directory () |> 

SpiralFileSystem.find_parent ".paket" false



    let spiprojPath = tempDir </> "package.spiproj"

    let spiprojCode =

        $"""packageDir: {repositoryRoot </> "lib"}

packages:

    |core-

    spiral-

modules:

    main

"""

    do! spiprojCode |> FileSystem.writeAllTextAsync spiprojPath



    let disposable = new_disposable (fun () ->

        ()

        // tempDir |> FileSystem.deleteDirectoryAsync |> Async.Ignore |> 

Async.RunSynchronously

    )



    return mainPath, disposable

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## buildCode                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline buildCode timeout cancellationToken code = async {

    let! mainPath, disposable = persistCode code

    use _ = disposable

    let port = getCompilerPort ()

    return! mainPath |> buildFile timeout port cancellationToken

}



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let buildCode timeout cancellationToken code = buildCode timeout 

cancellationToken code



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""inl app () =

    console.write_line "text"

    1i32



inl main () =

    app

    |> dyn

    |> ignore

"""

|> buildCode 15000 None

|> Async.runWithTimeout 15000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        Some """let rec closure0 () () : int32 =

    let v0 : string = "text"

    System.Console.WriteLine v0

    1

let v0 : (unit -> int32) = closure0()

()

""",

        [[]]

    )

)



╭─[ 7.66s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60                   │

│ 00:00:00 #2 [Debug] executeAsync / options: { Command =                      │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:01 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral                │

│ 00:00:01 #4 [Verbose] > dll_path:                                            │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:01 #5 [Verbose] > Starting the Spiral Server. It is bound to:          │

│ http://localhost:13805                                                       │

│ 00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500                  │

│ 00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0             │

│ 00:00:02 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} /           │

│ result.Length:                                                               │

│ 00:00:02 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port:      │

│ 13805 / retry: 0                                                             │

│ 00:00:02 #10 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:02 #11 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:02 #12 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:02 #13 [Debug] sendJson / port: 13805 / json:                          │

│ {"FileOpen":{"spiText":"inl app () =\n    console.write_line                 │

│ \u0022text\u0022\n    1i32\n\ninl main () =\n    app\n    |\u003E dyn\n      │

│ |\u003E                                                                      │

│ ignore\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/2024 │

│ 0404-1241-0849-4926-4a96b299898d/main.spi"}} / result.Length:                │

│ 00:00:02 #14 [Debug] sendJson / port: 13805 / json:                          │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-0849-4926-4a96b299898d/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:03 #15 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:03 #16 [Verbose] > Building                                            │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-0849-4926-4a96b │

│ 299898d\main.spi                                                             │

│ 00:00:04 #17 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:05 #18 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec    │

│ closure0 () () : int32 =                                                     │

│     let v0 : string = "text"                                                 │

│     System.Console.WriteLine v0                                              │

│     1                                                                        │

│ let v0 : (unit -> int32) = closure0()                                        │

│ ()                                                                           │

│  / errors: [] / typeErrorCount: 0                                            │

│ 00:00:07 #19 [Debug] runWithTimeoutChildAsync / timeout: 2000                │

│ 00:00:07 #20 [Debug] watchWithFilter / Disposing watch stream / filter:      │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - FSharpOption<String>                                    │

│           Value: let rec closure0 () () : int32 =                            │

│     let v0 : string = "text"                                                 │

│     System.Console.WriteLine v0                                              │

│     1                                                                        │

│ let v0 : (unit -> int32) = closure0()                                        │

│ ()                                                                           │

│                                                                              │

│       - [  ]                                                                 │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> _assertEqual None



╭─[ 12.17s - stdout ]──────────────────────────────────────────────────────────╮

│ 00:00:07 #21 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

│ 00:00:07 #22 [Debug] executeAsync / options: { Command =                     │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:07 #23 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral               │

│ 00:00:07 #24 [Verbose] > dll_path:                                           │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:08 #25 [Verbose] > Starting the Spiral Server. It is bound to:         │

│ http://localhost:13805                                                       │

│ 00:00:08 #26 [Debug] runWithTimeoutChildAsync / timeout: 500                 │

│ 00:00:08 #27 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:08 #28 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │

│ result.Length:                                                               │

│ 00:00:08 #29 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │

│ 13805 / retry: 0                                                             │

│ 00:00:08 #30 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:08 #31 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:08 #32 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:08 #33 [Debug] sendJson / port: 13805 / json:                          │

│ {"FileOpen":{"spiText":"","uri":"file:///c:/Users/i574n/AppData/Local/Temp/! │

│ dotnet-repl/20240404-1241-1613-1351-16efbf34c6c9/main.spi"}} /               │

│ result.Length:                                                               │

│ 00:00:08 #34 [Debug] sendJson / port: 13805 / json:                          │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-1613-1351-16efbf34c6c9/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:08 #35 [Verbose] > Building                                            │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-1613-1351-16efb │

│ f34c6c9\main.spi                                                             │

│ 00:00:09 #36 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:10 #37 [Verbose] > Cannot find `main` in file main.                    │

│ 00:00:10 #38 [Verbose] > Build skipped for                                   │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-1613-1351-16efb │

│ f34c6c9\main.spi                                                             │

│ 00:00:10 #39 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:11 #40 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:12 #41 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:13 #42 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:14 #43 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:15 #44 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:16 #45 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:17 #46 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:19 #47 [Debug] runWithTimeoutChildAsync / timeout: 2000                │

│ 00:00:19 #48 [Debug] watchWithFilter / Disposing watch stream / filter:      │

│ FileName, LastWrite                                                          │

│ 00:00:19 #49 [Debug] runWithTimeoutChildAsync / timeout: 10000               │

│ <null>                                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"inl app () =

    0i32



inl a = 1



inl main () =

    app

    |> dyn

    |> ignore

"

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[ "main.spi:

Global inl/let statements should all return functions known at parse time." ]]

    )

)



╭─[ 3.66s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:19 #50 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

│ 00:00:19 #51 [Debug] executeAsync / options: { Command =                     │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:20 #52 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral               │

│ 00:00:20 #53 [Verbose] > dll_path:                                           │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:20 #54 [Verbose] > Starting the Spiral Server. It is bound to:         │

│ http://localhost:13805                                                       │

│ 00:00:20 #55 [Debug] runWithTimeoutChildAsync / timeout: 500                 │

│ 00:00:20 #56 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:20 #57 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │

│ result.Length:                                                               │

│ 00:00:20 #58 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │

│ 13805 / retry: 0                                                             │

│ 00:00:20 #59 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:20 #60 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:20 #61 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:20 #62 [Debug] sendJson / port: 13805 / json:                          │

│ {"FileOpen":{"spiText":"inl app () =\n    0i32\n\ninl a = 1\n\ninl main ()   │

│ =\n    app\n    |\u003E dyn\n    |\u003E                                     │

│ ignore\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/2024 │

│ 0404-1241-2838-3816-3dec9ff88189/main.spi"}} / result.Length:                │

│ 00:00:20 #63 [Debug] sendJson / port: 13805 / json:                          │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-2838-3816-3dec9ff88189/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:21 #64 [Verbose] > Building                                            │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-2838-3816-3dec9 │

│ ff88189\main.spi                                                             │

│ 00:00:21 #65 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [                                                                            │

│   [                                                                          │

│     "main.spi:                                                               │

│ Global inl/let statements should all return functions known at parse time.", │

│     {                                                                        │

│       "ParserErrors": {                                                      │

│         "errors": [                                                          │

│           [                                                                  │

│             [                                                                │

│               {                                                              │

│                 "character": 0,                                              │

│                 "line": 3                                                    │

│               },                                                             │

│               {                                                              │

│                 "character": 9,                                              │

│                 "line": 3                                                    │

│               }                                                              │

│             ],                                                               │

│             "Global inl/let statements should all return functions known at  │

│ parse time."                                                                 │

│           ]                                                                  │

│         ],                                                                   │

│         "uri":                                                               │

│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-2838-3 │

│ 816-3dec9ff88189\main.spi"                                                   │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 0                                                        │

│ 00:00:21 #66 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:23 #67 [Debug] runWithTimeoutChildAsync / timeout: 2000                │

│ 00:00:23 #68 [Debug] watchWithFilter / Disposing watch stream / filter:      │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ main.spi:                                                          │

│ Global inl/let statements should all return functions known at parse time. ] │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""inl main () =

    1i32 / 0i32

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[ "An attempt to divide by zero has been detected at compile time." ]]

    )

)



╭─[ 5.04s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:23 #69 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

│ 00:00:23 #70 [Debug] executeAsync / options: { Command =                     │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:23 #71 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral               │

│ 00:00:23 #72 [Verbose] > dll_path:                                           │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:24 #73 [Verbose] > Starting the Spiral Server. It is bound to:         │

│ http://localhost:13805                                                       │

│ 00:00:24 #74 [Debug] runWithTimeoutChildAsync / timeout: 500                 │

│ 00:00:24 #75 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:24 #76 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │

│ result.Length:                                                               │

│ 00:00:24 #77 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │

│ 13805 / retry: 0                                                             │

│ 00:00:24 #78 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:24 #79 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:24 #80 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:24 #81 [Debug] sendJson / port: 13805 / json:                          │

│ {"FileOpen":{"spiText":"inl main () =\n    1i32 /                            │

│ 0i32\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/202404 │

│ 04-1241-3212-1222-1ca431de31d1/main.spi"}} / result.Length:                  │

│ 00:00:24 #82 [Debug] sendJson / port: 13805 / json:                          │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-3212-1222-1ca431de31d1/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:24 #83 [Verbose] > Building                                            │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3212-1222-1ca43 │

│ 1de31d1\main.spi                                                             │

│ 00:00:25 #84 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:26 #85 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [                                                                            │

│   [                                                                          │

│     "An attempt to divide by zero has been detected at compile time.",       │

│     {                                                                        │

│       "TracedError": {                                                       │

│         "message": "An attempt to divide by zero has been detected at        │

│ compile time.",                                                              │

│         "trace": [                                                           │

│           "Error trace on line: 1, column: 10 in module:                     │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3212-1222-1ca43 │

│ 1de31d1\main.spi.                                                            │

│ inl main () =                                                                │

│          ^                                                                   │

│ ",                                                                           │

│           "Error trace on line: 2, column: 5 in module:                      │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3212-1222-1ca43 │

│ 1de31d1\main.spi.                                                            │

│     1i32 / 0i32                                                              │

│     ^                                                                        │

│ "                                                                            │

│         ]                                                                    │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 0                                                        │

│ 00:00:26 #86 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:28 #87 [Debug] runWithTimeoutChildAsync / timeout: 2000                │

│ 00:00:28 #88 [Debug] watchWithFilter / Disposing watch stream / filter:      │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ An attempt to divide by zero has been detected at compile time. ]  │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""inl main () =

    1 + ""

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[

            "main.spi:

Constraint satisfaction error.

Got: string

Fails to satisfy: number"

        ]]

    )

)



╭─[ 4.67s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:28 #89 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

│ 00:00:28 #90 [Debug] executeAsync / options: { Command =                     │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:28 #91 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral               │

│ 00:00:28 #92 [Verbose] > dll_path:                                           │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:29 #93 [Verbose] > Starting the Spiral Server. It is bound to:         │

│ http://localhost:13805                                                       │

│ 00:00:29 #94 [Debug] runWithTimeoutChildAsync / timeout: 500                 │

│ 00:00:29 #95 [Verbose] waitForPortAccess / port: 13805 / retry: 0            │

│ 00:00:29 #96 [Debug] sendJson / port: 13805 / json: {"Ping":true} /          │

│ result.Length:                                                               │

│ 00:00:29 #97 [Verbose] awaitCompiler / Ping / result: Some(null) / port:     │

│ 13805 / retry: 0                                                             │

│ 00:00:29 #98 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:29 #99 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:29 #100 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:29 #101 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"inl main () =\n    1 \u002B                          │

│ \u0022\u0022\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-rep │

│ l/20240404-1241-3721-2134-2c933b0a2122/main.spi"}} / result.Length:          │

│ 00:00:29 #102 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-3721-2134-2c933b0a2122/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:29 #103 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3721-2134-2c933 │

│ b0a2122\main.spi                                                             │

│ 00:00:30 #104 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:31 #105 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 1                                               │

│ 00:00:31 #106 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [                                                                    │

│   [                                                                          │

│     "main.spi:                                                               │

│ Constraint satisfaction error.                                               │

│ Got: string                                                                  │

│ Fails to satisfy: number",                                                   │

│     {                                                                        │

│       "TypeErrors": {                                                        │

│         "errors": [                                                          │

│           [                                                                  │

│             [                                                                │

│               {                                                              │

│                 "character": 8,                                              │

│                 "line": 1                                                    │

│               },                                                             │

│               {                                                              │

│                 "character": 10,                                             │

│                 "line": 1                                                    │

│               }                                                              │

│             ],                                                               │

│             "Constraint satisfaction error.                                  │

│ Got: string                                                                  │

│ Fails to satisfy: number"                                                    │

│           ]                                                                  │

│         ],                                                                   │

│         "uri":                                                               │

│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-3721-2 │

│ 134-2c933b0a2122\main.spi"                                                   │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 1                                                        │

│ 00:00:31 #107 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:33 #108 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:00:33 #109 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ main.spi:                                                          │

│ Constraint satisfaction error.                                               │

│ Got: string                                                                  │

│ Fails to satisfy: number ]                                                   │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""inl main () =

    x + y

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[

            "main.spi:

Unbound variable: x.

Unbound variable: y."

        ]]

    )

)



╭─[ 4.74s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:33 #110 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:00:33 #111 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:33 #112 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:00:33 #113 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:33 #114 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:00:34 #115 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:00:34 #116 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:34 #117 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:00:34 #118 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:00:34 #119 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:00:34 #120 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:34 #121 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:34 #122 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"inl main () =\n    x \u002B                          │

│ y\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │

│ 1241-4194-9445-9475e6227c17/main.spi"}} / result.Length:                     │

│ 00:00:34 #123 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-4194-9445-9475e6227c17/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:34 #124 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4194-9445-9475e │

│ 6227c17\main.spi                                                             │

│ 00:00:35 #125 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:35 #126 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 1                                               │

│ 00:00:35 #127 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [                                                                    │

│   [                                                                          │

│     "main.spi:                                                               │

│ Unbound variable: x.                                                         │

│ Unbound variable: y.",                                                       │

│     {                                                                        │

│       "TypeErrors": {                                                        │

│         "errors": [                                                          │

│           [                                                                  │

│             [                                                                │

│               {                                                              │

│                 "character": 4,                                              │

│                 "line": 1                                                    │

│               },                                                             │

│               {                                                              │

│                 "character": 5,                                              │

│                 "line": 1                                                    │

│               }                                                              │

│             ],                                                               │

│             "Unbound variable: x."                                           │

│           ],                                                                 │

│           [                                                                  │

│             [                                                                │

│               {                                                              │

│                 "character": 8,                                              │

│                 "line": 1                                                    │

│               },                                                             │

│               {                                                              │

│                 "character": 9,                                              │

│                 "line": 1                                                    │

│               }                                                              │

│             ],                                                               │

│             "Unbound variable: y."                                           │

│           ]                                                                  │

│         ],                                                                   │

│         "uri":                                                               │

│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4194-9 │

│ 445-9475e6227c17\main.spi"                                                   │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 1                                                        │

│ 00:00:35 #128 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:37 #129 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:00:37 #130 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ main.spi:                                                          │

│ Unbound variable: x.                                                         │

│ Unbound variable: y. ]                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""union a =

    | B

    | c



inl main () =

    ()

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[ "main.spi:

Expected: uppercase variable" ]]

    )

)



╭─[ 3.67s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:38 #131 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:00:38 #132 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:38 #133 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:00:38 #134 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:38 #135 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:00:38 #136 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:00:38 #137 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:39 #138 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:00:39 #139 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:00:39 #140 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:00:39 #141 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:39 #142 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:39 #143 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"union a =\n    | B\n    | c\n\ninl main () =\n       │

│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │

│ -1241-4674-7432-7536ec0609cb/main.spi"}} / result.Length:                    │

│ 00:00:39 #144 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-4674-7432-7536ec0609cb/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:39 #145 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4674-7432-7536e │

│ c0609cb\main.spi                                                             │

│ 00:00:39 #146 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [                                                                    │

│   [                                                                          │

│     "main.spi:                                                               │

│ Expected: uppercase variable",                                               │

│     {                                                                        │

│       "ParserErrors": {                                                      │

│         "errors": [                                                          │

│           [                                                                  │

│             [                                                                │

│               {                                                              │

│                 "character": 6,                                              │

│                 "line": 2                                                    │

│               },                                                             │

│               {                                                              │

│                 "character": 7,                                              │

│                 "line": 2                                                    │

│               }                                                              │

│             ],                                                               │

│             "Expected: uppercase variable"                                   │

│           ]                                                                  │

│         ],                                                                   │

│         "uri":                                                               │

│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-4674-7 │

│ 432-7536ec0609cb\main.spi"                                                   │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 0                                                        │

│ 00:00:39 #147 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:41 #148 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:00:41 #149 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ main.spi:                                                          │

│ Expected: uppercase variable ]                                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""

/// abc

inl main () =

    ()

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[ "main.spi:

Expected: whitespace" ]]

    )

)



╭─[ 3.50s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:41 #150 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:00:41 #151 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:42 #152 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:00:42 #153 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:42 #154 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:00:42 #155 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:00:42 #156 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:42 #157 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:00:42 #158 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:00:42 #159 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:00:42 #160 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:42 #161 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:42 #162 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"\n/// abc\ninl main () =\n                           │

│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │

│ -1241-5046-4619-49323e169b62/main.spi"}} / result.Length:                    │

│ 00:00:42 #163 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-5046-4619-49323e169b62/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:43 #164 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [                                                                    │

│   [                                                                          │

│     "main.spi:                                                               │

│ Expected: whitespace",                                                       │

│     {                                                                        │

│       "TokenizerErrors": {                                                   │

│         "errors": [                                                          │

│           [                                                                  │

│             [                                                                │

│               {                                                              │

│                 "character": 2,                                              │

│                 "line": 1                                                    │

│               },                                                             │

│               {                                                              │

│                 "character": 3,                                              │

│                 "line": 1                                                    │

│               }                                                              │

│             ],                                                               │

│             "Expected: whitespace"                                           │

│           ]                                                                  │

│         ],                                                                   │

│         "uri":                                                               │

│ "file:///c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5046-4 │

│ 619-49323e169b62\main.spi"                                                   │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 0                                                        │

│ 00:00:43 #165 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:45 #166 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:00:45 #167 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ main.spi:                                                          │

│ Expected: whitespace ]                                                       │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""

inl main () =

    real

        inl real_unbox forall a. (obj : a) : a =

            typecase obj with

            | _ => obj

        real_unbox ()

    ()

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[ "Cannot apply a forall with a term." ]]

    )

)



╭─[ 4.98s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:45 #168 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:00:45 #169 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:45 #170 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:00:45 #171 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:46 #172 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:00:46 #173 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:00:46 #174 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:46 #175 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:00:46 #176 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:00:46 #177 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:00:46 #178 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:46 #179 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:46 #180 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"\ninl main () =\n    real\n        inl real_unbox    │

│ forall a. (obj : a) : a =\n            typecase obj with\n            | _    │

│ =\u003E obj\n        real_unbox ()\n                                         │

│ ()\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │

│ -1241-5402-0291-001a2cfb580d/main.spi"}} / result.Length:                    │

│ 00:00:46 #181 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-5402-0291-001a2cfb580d/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:46 #182 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │

│ cfb580d\main.spi                                                             │

│ 00:00:47 #183 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:48 #184 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [                                                                    │

│   [                                                                          │

│     "Cannot apply a forall with a term.",                                    │

│     {                                                                        │

│       "TracedError": {                                                       │

│         "message": "Cannot apply a forall with a term.",                     │

│         "trace": [                                                           │

│           "Error trace on line: 2, column: 10 in module:                     │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │

│ cfb580d\main.spi.                                                            │

│ inl main () =                                                                │

│          ^                                                                   │

│ ",                                                                           │

│           "Error trace on line: 4, column: 9 in module:                      │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │

│ cfb580d\main.spi.                                                            │

│         inl real_unbox forall a. (obj : a) : a =                             │

│         ^                                                                    │

│ ",                                                                           │

│           "Error trace on line: 7, column: 9 in module:                      │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5402-0291-001a2 │

│ cfb580d\main.spi.                                                            │

│         real_unbox ()                                                        │

│         ^                                                                    │

│ "                                                                            │

│         ]                                                                    │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 0                                                        │

│ 00:00:48 #185 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:50 #186 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:00:50 #187 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ Cannot apply a forall with a term. ]                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""

inl main () =

    real

        inl real_unbox forall a. (obj : a) : a =

            typecase obj with

            | _ => obj

        real_unbox `i32 1

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        None,

        [[ "The main function should not have a forall." ]]

    )

)



╭─[ 4.72s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:50 #188 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:00:50 #189 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:50 #190 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:00:50 #191 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:51 #192 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:00:51 #193 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:00:51 #194 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:51 #195 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:00:51 #196 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:00:51 #197 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:00:51 #198 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:51 #199 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:51 #200 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"\ninl main () =\n    real\n        inl real_unbox    │

│ forall a. (obj : a) : a =\n            typecase obj with\n            | _    │

│ =\u003E obj\n        real_unbox \u0060i32                                    │

│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │

│ 1241-5908-0829-04040aaf91ef/main.spi"}} / result.Length:                     │

│ 00:00:51 #201 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1241-5908-0829-04040aaf91ef/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:51 #202 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1241-5908-0829-04040 │

│ aaf91ef\main.spi                                                             │

│ 00:00:52 #203 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:52 #204 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [                                                                    │

│   [                                                                          │

│     "The main function should not have a forall.",                           │

│     {                                                                        │

│       "TracedError": {                                                       │

│         "message": "The main function should not have a forall.",            │

│         "trace": []                                                          │

│       }                                                                      │

│     }                                                                        │

│   ]                                                                          │

│ ] / typeErrorCount: 0                                                        │

│ 00:00:52 #205 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:55 #206 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:00:55 #207 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - <null>                                                  │

│       - [ The main function should not have a forall. ]                      │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""

inl init_series start end inc =

    inl total : f64 = conv ((end - start) / inc) + 1

    listm.init total (conv >> (*) inc >> (+) start) : list f64



type integration = (f64 -> f64) -> f64 -> f64 -> f64



inl integral dt : integration =

    fun f a b =>

        init_series (a + dt / 2) (b - dt / 2) dt

        |> listm.map (f >> (*) dt)

        |> listm.fold (+) 0



inl main () =

    integral 0.1 (fun x => x ** 2) 0 1

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        Some "0.3325000000000001\n",

        [[]]

    )

)



╭─[ 5.10s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:55 #208 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:00:55 #209 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:00:55 #210 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:00:55 #211 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:55 #212 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:00:56 #213 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:00:56 #214 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:00:56 #215 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:00:56 #216 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:00:56 #217 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:00:56 #218 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:56 #219 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:56 #220 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :   │

│ f64 = conv ((end - start) / inc) \u002B 1\n    listm.init total (conv        │

│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype         │

│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl   │

│ integral dt : integration =\n    fun f a b =\u003E\n        init_series (a   │

│ \u002B dt / 2) (b - dt / 2) dt\n        |\u003E listm.map (f \u003E\u003E    │

│ (*) dt)\n        |\u003E listm.fold (\u002B) 0\n\ninl main () =\n            │

│ integral 0.1 (fun x =\u003E x ** 2) 0                                        │

│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │

│ 1242-0384-8460-8b2856dbe6b9/main.spi"}} / result.Length:                     │

│ 00:00:56 #221 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1242-0384-8460-8b2856dbe6b9/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:00:56 #222 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1242-0384-8460-8b285 │

│ 6dbe6b9\main.spi                                                             │

│ 00:00:57 #223 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:00:58 #224 [Debug] buildFile / takeWhileInclusive / fsxContent:           │

│ 0.3325000000000001                                                           │

│  / errors: [] / typeErrorCount: 0                                            │

│ 00:00:58 #225 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:01:00 #226 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:01:00 #227 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - FSharpOption<String>                                    │

│           Value: 0.3325000000000001                                          │

│                                                                              │

│       - [  ]                                                                 │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""

inl init_series start end inc =

    inl total : f64 = conv ((end - start) / inc) + 1

    listm.init total (conv >> (*) inc >> (+) start) : list f64



type integration = (f64 -> f64) -> f64 -> f64 -> f64



inl integral dt : integration =

    fun f a b =>

        init_series (a + dt / 2) (b - dt / 2) dt

        |> listm.map (f >> (*) dt)

        |> listm.fold (+) 0



inl main () =

    integral 0.01 (fun x => x ** 2) 0 1

"""

|> buildCode 10000 None

|> Async.runWithTimeout 10000

|> Option.map (fun (fsxContent, errors) -> fsxContent, errors |> List.map fst)

|> _assertEqual (

    Some (

        Some "0.33332500000000004\n",

        [[]]

    )

)

// |> _assertEqual None

// |> fun x -> printfn $"{x.ToDisplayString ()}"



╭─[ 5.02s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:01:00 #228 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:01:00 #229 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:buildCode@3-910> }                                      │

│ 00:01:00 #230 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:01:00 #231 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:01:00 #232 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:01:01 #233 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:01:01 #234 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:01:01 #235 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:01:01 #236 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:01:01 #237 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:01:01 #238 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:01:01 #239 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:01:01 #240 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"\ninl init_series start end inc =\n    inl total :   │

│ f64 = conv ((end - start) / inc) \u002B 1\n    listm.init total (conv        │

│ \u003E\u003E (*) inc \u003E\u003E (\u002B) start) : list f64\n\ntype         │

│ integration = (f64 -\u003E f64) -\u003E f64 -\u003E f64 -\u003E f64\n\ninl   │

│ integral dt : integration =\n    fun f a b =\u003E\n        init_series (a   │

│ \u002B dt / 2) (b - dt / 2) dt\n        |\u003E listm.map (f \u003E\u003E    │

│ (*) dt)\n        |\u003E listm.fold (\u002B) 0\n\ninl main () =\n            │

│ integral 0.01 (fun x =\u003E x ** 2) 0                                       │

│ 1\n","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404- │

│ 1242-0899-9998-982c42c5def4/main.spi"}} / result.Length:                     │

│ 00:01:01 #241 [Debug] sendJson / port: 13805 / json:                         │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/Users/i574n/AppData/Local │

│ /Temp/!dotnet-repl/20240404-1242-0899-9998-982c42c5def4/main.spi"}} /        │

│ result.Length:                                                               │

│ 00:01:01 #242 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1242-0899-9998-982c4 │

│ 2c5def4\main.spi                                                             │

│ 00:01:02 #243 [Debug] buildFile / takeWhileInclusive / fsxContent:  /        │

│ errors: [] / typeErrorCount: 0                                               │

│ 00:01:03 #244 [Debug] buildFile / takeWhileInclusive / fsxContent:           │

│ 0.33332500000000004                                                          │

│  / errors: [] / typeErrorCount: 0                                            │

│ 00:01:03 #245 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:01:05 #246 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ 00:01:05 #247 [Debug] watchWithFilter / Disposing watch stream / filter:     │

│ FileName, LastWrite                                                          │

│ FSharpOption<Tuple<FSharpOption<String>,FSharpList<String>>>                 │

│       Value:       - FSharpOption<String>                                    │

│           Value: 0.33332500000000004                                         │

│                                                                              │

│       - [  ]                                                                 │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## getFileTokenRange                                                         │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline getFileTokenRange port cancellationToken path = async {

    let fullPath = path |> System.IO.Path.GetFullPath

    let! code = fullPath |> FileSystem.readAllTextAsync

    let lines = code |> SpiralSm.split "\n"



    let token, disposable = Threading.newDisposableToken cancellationToken

    use _ = disposable



    let! serverPort, _errors, ct, disposable = awaitCompiler port (Some token)

    use _ = disposable



    let fileOpenObj = {| FileOpen = {| uri = fullPath |> getFileUri; spiText = 

code |} |}

    let! _fileOpenResult = fileOpenObj |> sendObj serverPort



    let fileTokenRangeObj =

        {|

            FileTokenRange =

                {|

                    uri = fullPath |> getFileUri

                    range =

                        [[|

                            {| line = 0; character = 0 |}

                            {| line = lines.Length - 1; character = 

lines.[[lines.Length - 1]].Length |}

                        |]]

                |}

        |}

    let! fileTokenRangeResult =

        fileTokenRangeObj

        |> sendObj serverPort

        |> Async.withCancellationToken ct



    return fileTokenRangeResult |> Option.map FSharp.Json.Json.deserialize<int 

array>

}



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## getCodeTokenRange                                                         │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let inline getCodeTokenRange cancellationToken code = async {

    let! mainPath, disposable = persistCode code

    use _ = disposable

    let port = getCompilerPort ()

    return! mainPath |> getFileTokenRange port cancellationToken

}



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""inl main () = ()"""

|> getCodeTokenRange None

|> Async.runWithTimeout 10000

|> Option.flatten

|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 

8; 0; 0; 2; 1; 4; 0; 0;

2; 1; 8; 0; 0; 1; 1; 8; 0 |]])



╭─[ 6.91s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:01:14 #248 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:01:14 #249 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:it@4-239> }                                             │

│ 00:01:15 #250 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:01:15 #251 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:01:15 #252 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:01:15 #253 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:01:15 #254 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:01:15 #255 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:01:15 #256 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:01:15 #257 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:01:15 #258 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"inl main () =                                        │

│ ()","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404-1 │

│ 242-2343-4356-4eb707a19d95/main.spi"}} / result.Length:                      │

│ 00:01:16 #259 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileTokenRange":{"range":[                                                 │

│ {"character":0,"line":0},{"character":16,"line":0}],"uri":"file:///c:/Users/ │

│ i574n/AppData/Local/Temp/!dotnet-repl/20240404-1242-2343-4356-4eb707a19d95/m │

│ ain.spi"}} / result.Length: Some(213)                                        │

│ 00:01:18 #260 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ FSharpOption<Int32[]>                                                        │

│       Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0,   │

│ 0, 2, 1, 4, 0, 0, 2, 1, 8, 0, 0, 1, 1, 8, 0 ]                                │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



"""inl main () = 1i32"""

|> getCodeTokenRange None

|> Async.runWithTimeout 10000

|> Option.flatten

|> _assertEqual (Some [[| 0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; 

8; 0; 0; 2; 1; 4; 0; 0;

2; 1; 3; 0; 0; 1; 3; 12; 0 |]])



╭─[ 7.06s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:01:22 #261 [Debug] runWithTimeoutChildAsync / timeout: 60                 │

│ 00:01:22 #262 [Debug] executeAsync / options: { Command =                    │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:it@4-610> }                                             │

│ 00:01:22 #263 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral              │

│ 00:01:22 #264 [Verbose] > dll_path:                                          │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:01:22 #265 [Verbose] > Starting the Spiral Server. It is bound to:        │

│ http://localhost:13805                                                       │

│ 00:01:22 #266 [Debug] runWithTimeoutChildAsync / timeout: 500                │

│ 00:01:22 #267 [Verbose] waitForPortAccess / port: 13805 / retry: 0           │

│ 00:01:23 #268 [Debug] sendJson / port: 13805 / json: {"Ping":true} /         │

│ result.Length:                                                               │

│ 00:01:23 #269 [Verbose] awaitCompiler / Ping / result: Some(null) / port:    │

│ 13805 / retry: 0                                                             │

│ 00:01:23 #270 [Verbose] > Server bound to: http://localhost:13805            │

│ 00:01:23 #271 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileOpen":{"spiText":"inl main () =                                        │

│ 1i32","uri":"file:///c:/Users/i574n/AppData/Local/Temp/!dotnet-repl/20240404 │

│ -1242-3060-6006-65d5ec4e7126/main.spi"}} / result.Length:                    │

│ 00:01:23 #272 [Debug] sendJson / port: 13805 / json:                         │

│ {"FileTokenRange":{"range":[                                                 │

│ {"character":0,"line":0},{"character":18,"line":0}],"uri":"file:///c:/Users/ │

│ i574n/AppData/Local/Temp/!dotnet-repl/20240404-1242-3060-6006-65d5ec4e7126/m │

│ ain.spi"}} / result.Length: Some(214)                                        │

│ 00:01:25 #273 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│ FSharpOption<Int32[]>                                                        │

│       Value: [ 0, 0, 3, 7, 0, 0, 4, 4, 0, 0, 0, 5, 1, 8, 0, 0, 1, 1, 8, 0,   │

│ 0, 2, 1, 4, 0, 0, 2, 1, 3, 0, 0, 1, 3, 12, 0 ]                               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Arguments                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

[[<RequireQualifiedAccess>]]

type Arguments =

    | Build_File of string * string

    | File_Token_Range of string * string

    | Execute_Command of string

    | [[<Argu.ArguAttributes.Unique>]] Timeout of int

    | [[<Argu.ArguAttributes.Unique>]] Port of int

    | [[<Argu.ArguAttributes.Unique>]] Parallel



    interface Argu.IArgParserTemplate with

        member s.Usage =

            match s with

            | Build_File _ -> nameof Build_File

            | File_Token_Range _ -> nameof File_Token_Range

            | Execute_Command _ -> nameof Execute_Command

            | Timeout _ -> nameof Timeout

            | Port _ -> nameof Port

            | Parallel -> nameof Parallel



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



Argu.ArgumentParser.Create<Arguments>().PrintUsage ()



╭─[ 127.50ms - return value ]──────────────────────────────────────────────────╮

│ USAGE: dotnet-repl [--help] [--build-file <string> <string>]                 │

│                    [--file-token-range <string> <string>]                    │

│                    [--execute-command <string>] [--timeout <int>] [--port    │

│ <int>]                                                                       │

│                    [--parallel]                                              │

│                                                                              │

│ OPTIONS:                                                                     │

│                                                                              │

│     --build-file <string> <string>                                           │

│                           Build_File                                         │

│     --file-token-range <string> <string>                                     │

│                           File_Token_Range                                   │

│     --execute-command <string>                                               │

│                           Execute_Command                                    │

│     --timeout <int>       Timeout                                            │

│     --port <int>          Port                                               │

│     --parallel            Parallel                                           │

│     --help                display this list of options.                      │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## main                                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let main args =

    let argsMap = args |> Runtime.parseArgsMap<Arguments>



    let buildFileActions =

        argsMap

        |> Map.tryFind (nameof Arguments.Build_File)

        |> Option.defaultValue [[]]

        |> List.choose (function

            | Arguments.Build_File (inputPath, outputPath) -> Some (inputPath, 

outputPath)

            | _ -> None

        )



    let fileTokenRangeActions =

        argsMap

        |> Map.tryFind (nameof Arguments.File_Token_Range)

        |> Option.defaultValue [[]]

        |> List.choose (function

            | Arguments.File_Token_Range (inputPath, outputPath) -> Some 

(inputPath, outputPath)

            | _ -> None

        )



    let executeCommandActions =

        argsMap

        |> Map.tryFind (nameof Arguments.Execute_Command)

        |> Option.defaultValue [[]]

        |> List.choose (function

            | Arguments.Execute_Command command -> Some command

            | _ -> None

        )



    let timeout =

        match argsMap |> Map.tryFind (nameof Arguments.Timeout) with

        | Some [[ Arguments.Timeout timeout ]] -> timeout

        | _ -> 60000 * 60



    let port =

        match argsMap |> Map.tryFind (nameof Arguments.Port) with

        | Some [[ Arguments.Port port ]] -> Some port

        | _ -> None



    let isParallel = argsMap |> Map.containsKey (nameof Arguments.Parallel)



    async {

        let port = port |> Option.defaultWith getCompilerPort

        let localToken, disposable = Threading.newDisposableToken None

        let! serverPort, _errors, compilerToken, disposable = awaitCompiler port

(Some localToken)

        use _ = disposable



        let buildFileAsync =

            buildFileActions

            |> List.map (fun (inputPath, outputPath) -> async {

                let! outputCode, errors = inputPath |> buildFile timeout 

serverPort None



                errors

                |> List.map snd

                |> List.iter (fun error ->

                    trace Critical (fun () -> $"main / error: {error |> 

serializeObj}") getLocals

                )



                match outputCode with

                | Some outputCode ->

                    do! outputCode |> FileSystem.writeAllTextAsync outputPath

                    return 0

                | None ->

                    return 1

            })



        let fileTokenRangeAsync =

            fileTokenRangeActions

            |> List.map (fun (inputPath, outputPath) -> async {

                let! tokenRange = inputPath |> getFileTokenRange serverPort None

                match tokenRange with

                | Some tokenRange ->

                    do! tokenRange |> FSharp.Json.Json.serialize |> 

FileSystem.writeAllTextAsync outputPath

                    return 0

                | None ->

                    return 1

            })



        let executeCommandAsync =

            executeCommandActions

            |> List.map (fun command -> async {

                let! exitCode, result =

                    Runtime.executeWithOptionsAsync

                        {

                            Command = command

                            CancellationToken = Some compilerToken

                            WorkingDirectory = None

                            OnLine = None

                        }



                trace Debug (fun () -> $"main / executeCommand / exitCode: 

{exitCode}") getLocals



                return exitCode

            })



        return!

            [[| buildFileAsync; fileTokenRangeAsync; executeCommandAsync |]]

            |> Seq.collect id

            |> fun x ->

                if isParallel

                then Async.Parallel (x, float System.Environment.ProcessorCount 

* 0.75 |> ceil |> int)

                else Async.Sequential x

            |> Async.map Array.sum

    }

    |> Async.runWithTimeout timeout

    |> Option.defaultValue 1



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let args =

    System.Environment.GetEnvironmentVariable "ARGS"

    |> Runtime.splitArgs

    |> Seq.toArray



match args with

| [[||]] -> 0

| args -> if main args = 0 then 0 else failwith "main failed"



╭─[ 67.72ms - return value ]───────────────────────────────────────────────────╮

│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │

│ .dni-code-hint {                                                             │

│     font-style: italic;                                                      │

│     overflow: hidden;                                                        │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview {                                                              │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview td {                                                           │

│     vertical-align: top;                                                     │

│     text-align: start;                                                       │

│ }                                                                            │

│ details.dni-treeview {                                                       │

│     padding-left: 1em;                                                       │

│ }                                                                            │

│ table td {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ table tr {                                                                   │

│     vertical-align: top;                                                     │

│     margin: 0em 0px;                                                         │

│ }                                                                            │

│ table tr td pre                                                              │

│ {                                                                            │

│     vertical-align: top !important;                                          │

│     margin: 0em 0px !important;                                              │

│ }                                                                            │

│ table th {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ </style>                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook Supervisor.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 453426 bytes to Supervisor.dib.html

00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Supervisor.dib

00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Supervisor.dib

00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: Supervisor / code.Length: 19825

00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj

00:00:00 #3 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64"

  WorkingDirectory =

   Some "C:\home\git\polyglot\target\polyglot\builder\Supervisor"

  CancellationToken = None

  OnLine = None }

00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:00 #5 [Verbose] >   Determining projects to restore...

00:00:01 #6 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj (in 429 ms).

00:00:01 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj]

00:00:15 #8 [Verbose] >   Supervisor -> C:\home\git\polyglot\target\polyglot\builder\Supervisor\bin\Release\net9.0\linux-x64\Supervisor.dll

00:00:17 #9 [Verbose] >   Supervisor -> C:\home\git\polyglot\apps\spiral\dist\

00:00:17 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 715

00:00:17 #11 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64"

  WorkingDirectory =

   Some "C:\home\git\polyglot\target\polyglot\builder\Supervisor"

  CancellationToken = None

  OnLine = None }

00:00:17 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:18 #13 [Verbose] >   Determining projects to restore...

00:00:19 #14 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj (in 544 ms).

00:00:19 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\Supervisor\Supervisor.fsproj]

00:00:36 #16 [Verbose] >   Supervisor -> C:\home\git\polyglot\target\polyglot\builder\Supervisor\bin\Release\net9.0\win-x64\Supervisor.dll

00:00:46 #17 [Verbose] >   Supervisor -> C:\home\git\polyglot\apps\spiral\dist\

00:00:46 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 713



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # Eval (Polyglot)                                                            │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── fsharp ──────────────────────────────────────────────────────────────────────

#r 

@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

dard2.1/FSharp.Control.AsyncSeq.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

0/System.Reactive.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/

netstandard2.0/System.Reactive.Linq.dll"

#r 

@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

#r 

@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

b/net6.0/System.CommandLine.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.com

mon/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Common.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.http.connections.cli

ent/7.0.0/lib/net7.0/Microsoft.AspNetCore.Http.Connections.Client.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.common/7.0.0

/lib/net7.0/Microsoft.AspNetCore.SignalR.Common.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client/7.0.0

/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.dll"

#r 

@"../../../../../../../.nuget/packages/microsoft.aspnetcore.signalr.client.core/

7.0.0/lib/net7.0/Microsoft.AspNetCore.SignalR.Client.Core.dll"

#r 

@"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha

rp.Json.dll"



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import ../../lib/fsharp/CommonFSharp.fs

#!import ../../lib/fsharp/Threading.fs

#!import ../../lib/fsharp/Async.fs

#!import ../../lib/fsharp/AsyncSeq.fs

#!import ../../lib/fsharp/Networking.fs

#!import ../../lib/fsharp/Runtime.fs

#!import ../../lib/fsharp/FileSystem.fs



#!import ../../apps/builder/Builder.fs

#!import ../../apps/spiral/Supervisor.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module CommonFSharp =



    open Common



    /// ## getUnionCaseName



    let inline getUnionCaseName<'T> (x: 'T) =

        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

        | case, _ -> case.Name





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Threading =



    open Common



    /// ## newDisposableToken



    let inline newDisposableToken (mergeToken: 

System.Threading.CancellationToken option) =

        let cts = new System.Threading.CancellationTokenSource ()

        let cts =

            match mergeToken with

            | None -> cts

            | Some mergeToken ->

                System.Threading.CancellationTokenSource.CreateLinkedTokenSource

[[| cts.Token; mergeToken |]]

        let disposable = new_disposable cts.Cancel

        cts.Token, disposable





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Async =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## choice



    let inline choice asyncs = async {

        let e = Event<_> ()

        use cts = new System.Threading.CancellationTokenSource ()

        let fn =

            asyncs

            |> Seq.map (fun a -> async {

                let! x = a

                e.Trigger x

            })

            |> Async.Parallel

            |> Async.Ignore

        Async.Start (fn, cts.Token)

        let! result = Async.AwaitEvent e.Publish

        cts.Cancel ()

        return result

    }



    /// ## map



    let inline map fn a = async {

        let! x = a

        return fn x

    }



    /// ## catch



    let inline catch a =

   ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module AsyncSeq =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## subscribeEvent



    let inline subscribeEvent (event: IEvent<'H, 'A>) map =

        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 

'A>(event.AddHandler, event.RemoveHandler)

        System.Reactive.Linq.Observable.Select (observable, fun event -> map 

event.EventArgs)

        |> FSharp.Control.AsyncSeq.ofObservableBuffered



    let subscribeToken (token : System.Threading.CancellationToken) =

        let tcs = new System.Threading.Tasks.TaskCompletionSource ()

        System.Action tcs.SetResult |> token.Register |> ignore

        let start = System.DateTime.Now.Ticks

        FSharp.Control.A...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Networking =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## testPortOpen



    let inline testPortOpen port = async {

        let! ct = Async.CancellationToken

        use client = new System.Net.Sockets.TcpClient ()

        try

            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 

Async.awaitValueTaskUnit

            return true

        with ex ->

            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 

SpiralSm.format_exception}") getLocals

            return false

    }



    let inline testPortOpenTimeout timeout port = async {

        let! result =

            testPortOpen port

            |> Async.runWithTimeoutAsync timeout

        return

          ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Runtime =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## isWindows



    let isWindows =

        fun () ->

            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

                System.Runtime.InteropServices.OSPlatform.Windows

        |> memoize



    /// ## getExecutableSuffix



    let inline getExecutableSuffix () =

        if isWindows ()

        then ".exe"

        else ""



    /// ## splitCommand



    type private CommandParseStep =

        | Start

        | Path of quoted: bool

        | Arguments



    let splitCommand (command: string) =

        let rec loop (path, args) chars step =

            match chars, step with

            | ('"' | '\'') ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module FileSystem =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## readAllTextAsync



    let inline readAllTextAsync path =

        path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask



    /// ## fileExistsContent



    let inline fileExistsContent path content = async {

        if path |> System.IO.File.Exists |> not

        then return false

        else

            let! existingContent = path |> readAllTextAsync

            return content = existingContent

    }



    /// ## writeAllTextAsync



    let inline writeAllTextAsync path contents =

        System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask



    /// ## write...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Builder =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## buildProject



    let inline buildProject runtime outputDir path = async {

        let fullPath = path |> System.IO.Path.GetFullPath

        let fileDir = fullPath |> System.IO.Path.GetDirectoryName

        let extension = fullPath |> System.IO.Path.GetExtension



        let getLocals () = $"fullPath: {fullPath} / {getLocals ()}"

        trace Debug (fun () -> "buildProject") getLocals



        match extension with

        | ".fsproj" -> ()

        | _ -> failwith "Invalid project file"



        let runtimes =

            runtime

            |> Option.map List.singleton

         ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Supervisor =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators

    open Microsoft.AspNetCore.SignalR.Client



    /// ## sendJson



    let inline sendJson (port : int) (json : string) = async {

        let! portOpen = Networking.testPortOpen port

        if portOpen then

            try

                let connection = 

HubConnectionBuilder().WithUrl($"http://127.0.0.1:{port}").Build()

                do! connection.StartAsync () |> Async.AwaitTask

                let! result = 

connection.InvokeAsync<string>("ClientToServerMsg", json) |> Async.AwaitTask

                do! connection.StopAsync () |> Async.AwaitTask

                trace Debug (fun () -...



── fsharp ──────────────────────────────────────────────────────────────────────

#if !INTERACTIVE

open Lib

#endif



── fsharp ──────────────────────────────────────────────────────────────────────

open Common

open SpiralFileSystem.Operators



── fsharp ──────────────────────────────────────────────────────────────────────

open System

open System.Collections.Generic

open System.IO

open System.Text

open System.Threading



── fsharp ──────────────────────────────────────────────────────────────────────

let inline mapErrors (severity, errors, lastTopLevelIndex) allCode =

    let allCodeLineLength =

        allCode |> SpiralSm.split "\n" |> Array.length



    errors

    |> List.map (fun (_, error) ->

        match error with

        | Supervisor.FatalError message ->

            (

                severity, message, 0, ("", (0, 0), (0, 0))

            )

            |> List.singleton

        | Supervisor.TracedError data ->

            data.trace

            |> List.truncate 5

            |> List.append [[ data.message ]]

            |> List.map (fun message ->

                (

                    severity, message, 0, ("", (0, 0), (0, 0))

                )

            )

        | Supervisor.PackageErrors data

        | Supervisor.TokenizerErrors data

        | Supervisor.ParserErrors data

        | Supervisor.TypeErrors data ->

            data.errors

            |> List.filter (fun ((rangeStart, _), _) ->

                trace Debug (fun () -> $"Eval.mapErrors / rangeStart.line: 

{rangeStart.line} / lastTopLevelIndex: {lastTopLevelIndex} / allCodeLineLength: 

{allCodeLineLength} / filtered: {rangeStart.line > allCodeLineLength}") 

getLocals

                rangeStart.line > allCodeLineLength

            )

            |> List.map (fun ((rangeStart, rangeEnd), message) ->

                (

                    severity,

                    message,

                    0,

                    (

                        (data.uri |> System.IO.Path.GetFileName),

                        (

                            (match lastTopLevelIndex with

                            | Some i when rangeStart.line >= i + 

allCodeLineLength + 3 ->

                                rangeStart.line - allCodeLineLength - 2

                            | _ -> rangeStart.line - allCodeLineLength),

                            (match lastTopLevelIndex with

                            | Some i when rangeStart.line >= i + 

allCodeLineLength + 3 ->

                                rangeStart.character - 4

                            | _ -> rangeStart.character)

                        ),

                        (

                            (match lastTopLevelIndex with

                            | Some i when rangeStart.line >= i + 

allCodeLineLength + 3 ->

                                rangeEnd.line - allCodeLineLength - 2

                            | _ -> rangeEnd.line - allCodeLineLength),

                            (match lastTopLevelIndex with

                            | Some i when rangeStart.line >= i + 

allCodeLineLength + 3 ->

                                rangeEnd.character - 4

                            | _ -> rangeEnd.character)

                        )

                    )

                )

            )

    )

    |> List.collect id

    |> List.toArray



── fsharp ──────────────────────────────────────────────────────────────────────

let repositoryRoot = SpiralFileSystem.get_source_directory () |> 

SpiralFileSystem.find_parent ".paket" false

let targetDir = repositoryRoot </> "target/polyglot/spiral_eval"

let maxTermCountPath = targetDir </> "max_term_count.txt"



let mutable allCode = ""



── fsharp ──────────────────────────────────────────────────────────────────────

let logFile filePath (text : string) =

    if traceLevel = TraceLevel.Verbose then

        let logDir = targetDir </> "log_kernel"

        Directory.CreateDirectory logDir |> ignore

        let dateTimeStr = DateTime.Now |> SpiralDateTime.format_iso8601

        let logFile = logDir </> filePath

        File.AppendAllText (logFile, $"{dateTimeStr} Eval / 

{text}{Environment.NewLine}") |> ignore



── fsharp ──────────────────────────────────────────────────────────────────────

let log (text : string) =

    try

        text |> logFile "log.txt"

    with ex ->

        trace Debug (fun () -> $"SpiralScriptHelpers.log / ex: {ex |> 

SpiralSm.format_exception}") getLocals

        let dateTimeStr = DateTime.Now |> SpiralDateTime.format_iso8601

        text |> logFile $"log_{dateTimeStr}_{Random().Next()}.txt"



── fsharp ──────────────────────────────────────────────────────────────────────

let assemblyName = Reflection.Assembly.GetEntryAssembly().GetName().Name



let inline startTokenRangeWatcher () =

    if [[ "dotnet-repl" ]] |> List.contains assemblyName |> not then

        let tmpSpiralDir = repositoryRoot </> "target/polyglot/spiral_eval"

        let tmpCodeDir = tmpSpiralDir </> "code"

        let tmpTokensDir = tmpSpiralDir </> "tokens"



        [[ tmpSpiralDir; tmpCodeDir; tmpTokensDir ]]

        |> List.iter (fun dir -> if Directory.Exists dir |> not then 

Directory.CreateDirectory dir |> ignore)



        let stream, disposable = FileSystem.watchDirectory (fun _ -> false) 

tmpCodeDir



        try

            let port = Supervisor.getCompilerPort () + 2

            let existingFilesChild =

                tmpCodeDir

                |> System.IO.Directory.GetFiles

                |> Array.map (fun codePath -> async {

                    try

                        let tokensPath = tmpTokensDir </> (codePath |> 

System.IO.Path.GetFileName)

                        if File.Exists tokensPath |> not then

                            let! tokens = codePath |> 

Supervisor.getFileTokenRange port None

                            match tokens with

                            | Some tokens ->

                                do!

                                    tokens

                                    |> FSharp.Json.Json.serialize

                                    |> FileSystem.writeAllTextAsync tokensPath

                            | None ->

                                log $"Eval.watchDirectory / GetFiles / tokens: 

None / {getLocals ()}"

                    with ex ->

                        log $"Eval.watchDirectory / GetFiles / ex: {ex |> 

SpiralSm.format_exception} / {getLocals ()}"

                })

                |> Async.Sequential

                |> Async.Ignore



            let streamAsyncChild =

                stream

                |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun (ticks, event)

-> async {

                    try

                        let getLocals () = $"ticks: {ticks} / event: {event} / 

{getLocals ()}"

                        match event with

                        | FileSystem.FileSystemChange.Changed (path, _) ->

                            let codePath = tmpCodeDir </> path

                            do!

                                codePath

                                |> FileSystem.waitForFileAccess (Some (

                                    System.IO.FileAccess.Read,

                                    System.IO.FileShare.Read

                                ))

                                |> Async.runWithTimeoutAsync 1000

                                |> Async.Ignore

                            let! tokens = codePath |> 

Supervisor.getFileTokenRange port None

                            match tokens with

                            | Some tokens ->

                                do!

                                    tokens

                                    |> FSharp.Json.Json.serialize

                                    |> FileSystem.writeAllTextAsync 

(tmpTokensDir </> path)

                            | None ->

                                log $"Eval.watchDirectory / iterAsyncParallel / 

tokens: None / {getLocals ()}"

                        | _ -> ()

                    with ex ->

                        log $"Eval.watchDirectory / iterAsyncParallel / ex: {ex 

|> SpiralSm.format_exception} / {getLocals ()}"

                })



            async {

                do! Async.Sleep 3000

                existingFilesChild |> Async.StartImmediate

                streamAsyncChild |> Async.Start

            }

            |> Async.Start

        with ex ->

            log $"Eval / ex: {ex |> SpiralSm.format_exception}"



        disposable

    else new_disposable (fun () -> ())



── fsharp ──────────────────────────────────────────────────────────────────────

let inline eval

    (fsi_eval:

        string

        -> System.Threading.CancellationToken

        -> Choice<'a,Exception> * (TraceLevel * string * int * (string * (int * 

int) * (int * int))) array)

    (cancellationToken: Option<System.Threading.CancellationToken>)

    (code: string)

    =

    log $"Eval / code: %A{code}"



    let rawCellCode =

        if code |> SpiralSm.trim <> "// // trace"

        then code |> SpiralSm.replace "\r\n" "\n"

        else

            if traceLevel = Info

            then traceLevel <- Verbose

            else traceLevel <- Info

            traceDump <- traceLevel = Verbose

            "inl main () = ()"



    let lines = rawCellCode |> SpiralSm.split "\n"



    if lines |> Array.exists (fun line -> line |> SpiralSm.starts_with "#r " && 

line |> SpiralSm.ends_with "\"") then

        let cancellationToken = defaultArg cancellationToken 

System.Threading.CancellationToken.None

        let ch, errors = fsi_eval code cancellationToken

        match ch with

        | Choice1Of2 v -> Ok(v), errors

        | Choice2Of2 ex -> Error(ex), errors

    else

        try

            let lastBlock =

                lines

                |> Array.tryFindBack (fun line ->

                    line |> String.length > 0

                    && line.[[0]] <> ' '

                )



            let hasMain =

                lastBlock

                |> Option.exists (fun line ->

                    line |> SpiralSm.starts_with "inl main "

                    || line |> SpiralSm.starts_with "let main "

                )



            let cellCode, lastTopLevelIndex =

                if hasMain

                then rawCellCode, None

                else

                    let lastTopLevelIndex, _ =

                        (lines |> Array.indexed, (None, false))

                        ||> Array.foldBack (fun (i, line) (lastTopLevelIndex, 

finished) ->

                            trace Debug (fun () -> $"i: {i} / line: '{line}' / 

lastTopLevelIndex: {lastTopLevelIndex} / finished: {finished}") getLocals

                            match line with

                            | _ when finished -> lastTopLevelIndex, true

                            | "" -> lastTopLevelIndex, false

                            | line when

                                line |> SpiralSm.starts_with " "

                                || line |> SpiralSm.starts_with "// " -> 

lastTopLevelIndex, false

                            | line when

                                line |> SpiralSm.starts_with "open "

                                || line |> SpiralSm.starts_with "prototype "

                                || line |> SpiralSm.starts_with "instance "

                                || line |> SpiralSm.starts_with "type "

                                || line |> SpiralSm.starts_with "union "

                                || line |> SpiralSm.starts_with "nominal " -> 

lastTopLevelIndex, true

                            | line when

                                line |> SpiralSm.starts_with "inl "

                                || line |> SpiralSm.starts_with "let " ->

                                let m =

                                    System.Text.RegularExpressions.Regex.Match (

                                        line,

                                        @"^(inl|let) +([[~\(\w]][[\w\d']]*(?:| 

*[[~\w]][[\w\d']]*\)|, *[[~\w]][[\w\d']]*)) +[[:=]]"

                                    )

                                trace Debug (fun () -> $"m: '{m}' / 

m.Groups.Count: {m.Groups.Count}") getLocals

                                if m.Groups.Count = 3

                                then Some i, false

                                else lastTopLevelIndex, true

                            | _ -> Some i, false

                        )

                    let code =

                        match lastTopLevelIndex with

                        | Some lastTopLevelIndex ->

                            lines

                            |> Array.mapi (fun i line ->

                                match i with

                                | i when i < lastTopLevelIndex -> line

                                | i when i = lastTopLevelIndex -> $"\nlet main 

() =\n    {line}"

                                | _ when line |> SpiralSm.trim = "" -> ""

                                | _ -> $"    {line}"

                            )

                            |> SpiralSm.concat "\n"

                        | None -> $"{rawCellCode}\n\ninl main () = ()\n"

                    code, lastTopLevelIndex



            let newAllCode = $"{allCode}\n\n{cellCode}"



            let rustArgs =

                lines

                |> Array.tryPick (fun line ->

                    if line |> SpiralSm.starts_with "// // rust="

                    then line |> SpiralSm.split "=" |> Array.tryItem 1

                    else None

                )



            let timeout =

                lines

                |> Array.tryPick (fun line ->

                    if line |> SpiralSm.starts_with "// // timeout="

                    then line |> SpiralSm.split "=" |> Array.tryItem 1 |> 

Option.map int

                    else None

                )

                |> Option.defaultValue (60000 * 60)



            let printCode =

                lines

                |> Array.tryPick (fun line ->

                    if line |> SpiralSm.starts_with "// // print_code="

                    then line |> SpiralSm.split "=" |> Array.tryItem 1 |> 

Option.map ((=) "true")

                    else None

                )

                |> Option.defaultValue true



            let maxTermCount =

                lines

                |> Array.tryPick (fun line ->

                    if line |> SpiralSm.starts_with "// // max_term_count="

                    then line |> SpiralSm.split "=" |> Array.tryItem 1 |> 

Option.map int

                    else None

                )



            async {

                try

                    let! mainPath, disposable = newAllCode |> 

Supervisor.persistCode

                    use _ = disposable



                    match maxTermCount with

                    | Some maxTermCount ->

                        do! maxTermCount |> string |> 

FileSystem.writeAllTextAsync maxTermCountPath

                    | None -> ()



                    let port = Supervisor.getCompilerPort ()



                    let! codeChoice =

                        mainPath

                        |> Supervisor.buildFile timeout port cancellationToken

                        |> Async.catch

                        |> Async.runWithTimeoutAsync timeout



                    match maxTermCount with

                    | Some _ -> do! FileSystem.deleteFileAsync maxTermCountPath 

|> Async.Ignore

                    | None -> ()



                    let code =

                        match codeChoice with

                        | Some (Ok code) -> Some code

                        | Some (Error ex) ->

                            log $"Eval / errors: {ex |> 

SpiralSm.format_exception}"

                            None

                        | _ -> None



                    match code with

                    | Some (Some code, spiralErrors) ->

                        let spiralErrors =

                            mapErrors (Warning, spiralErrors, lastTopLevelIndex)

allCode

                        let inline _trace (fn : unit -> string) =

                            if traceLevel = Info

                            then fn () |> System.Console.WriteLine

                            else trace Info (fun () -> 

$"SpiralScriptHelpers.Eval / {fn ()}") getLocals



                        if printCode

                        then _trace (fun () -> if rustArgs |> Option.isSome then

$"\n.fsx:\n{code}" else code)



                        let! rustResult =

                            if rustArgs |> Option.isNone || lastTopLevelIndex = 

None

                            then None |> Async.init

                            else

                                async {

                                    // let hash = $"repl_{code |> 

Crypto.hashText}"

                                    let hash = $"spiral_eval"



                                    let! fsprojPath = code |> 

Builder.persistCodeProject [["Fable.Core"]] [[]] hash



                                    let projectDir = fsprojPath |> 

Path.GetDirectoryName



                                    let outDir = projectDir </> $"target/{hash}"



                                    let libLinkTargetPath = projectDir </> 

"target/fable-library-rust"

                                    let libLinkPath = outDir </> 

$"fable_modules/fable-library-rust"



                                    if Directory.Exists libLinkTargetPath |> not

                                    then libLinkTargetPath |> 

Directory.CreateDirectory |> ignore



                                    libLinkPath |> Path.GetDirectoryName |> 

Directory.CreateDirectory |> ignore



                                    let libLinkPathInfo = DirectoryInfo 

libLinkPath

                                    if libLinkPathInfo.Exists && 

libLinkPathInfo.LinkTarget = null then

                                        Directory.Delete (libLinkPath, true)



                                    if libLinkPath |> Directory.Exists |> not 

then

                                        Directory.CreateSymbolicLink 

(libLinkPath, libLinkTargetPath)

                                        |> ignore





                                    let! exitCode, result =

                                        Runtime.executeWithOptionsAsync

                                            {

                                                Command = $@"dotnet fable 

{fsprojPath} --optimize --lang rs --extension .rs --outDir {outDir}"

                                                CancellationToken = 

cancellationToken

                                                WorkingDirectory = None

                                                OnLine = None

                                            }



                                    if exitCode <> 0

                                    then return Some (Error result)

                                    else

                                        let rsPath = outDir </> $"{hash}.rs"

                                        let! rsCode = rsPath |> 

FileSystem.readAllTextAsync



                                        let mainCode = "pub fn main() -> 

Result<(), String> { Ok(()) }"



                                        let cached = rsCode |> SpiralSm.contains

mainCode



                                        let rsCode =

                                            if cached

                                            then rsCode

                                            else rsCode |> SpiralSm.replace 

"),);" "));"



                                        if printCode

                                        then _trace (fun () -> 

$"\n.rs:\n{rsCode}")



                                        if not cached

                                        then do!

                                            $"{rsCode}\n\n{mainCode}\n"

                                            |> FileSystem.writeAllTextAsync 

rsPath





                                        let cargoTomlPath = outDir </> 

$"Cargo.toml"

                                        let cargoTomlContent = $"""[[package]]

name = "{hash}"

version = "0.0.1"

edition = "2021"



[[workspace]]



[[dependencies]]

fable_library_rust = {{ path = "fable_modules/fable-library-rust", optional = 

true, default-features = false }}

clap = {{}}

num-complex = {{}}

pyo3 = "~0.21.0-beta.0"



[[features]]

default = [["fable_library_rust/default", 

"fable_library_rust/static_do_bindings"]]



[[[[bin]]]]

name = "{hash}"

path = "{hash}.rs"

"""

                                        do! cargoTomlContent |> 

FileSystem.writeAllTextExists cargoTomlPath



                                        let! exitCode, result =

                                            Runtime.executeWithOptionsAsync

                                                {

                                                    Command = $@"cargo run 

--release --manifest-path {cargoTomlPath}"

                                                    CancellationToken = 

cancellationToken

                                                    WorkingDirectory = None

                                                    OnLine = None

                                                }



                                        if exitCode = 0 then

                                            try

                                                let result =

                                                    result

                                                    |> SpiralSm.split "\n"

                                                    |> Array.skipWhile (fun line

->

                                                        line |> 

SpiralSm.contains @"[[optimized]] target" |> not

                                                    )

                                                    |> Array.skip 2

                                                    |> SpiralSm.concat "\n"

                                                return Some (Ok result)

                                            with ex ->

                                                return $"ex: 

{ex}\nresult:\n{result}" |> Error |> Some

                                        else

                                            return Some (Error result)

                                }



                        let cancellationToken = defaultArg cancellationToken 

System.Threading.CancellationToken.None



                        let fsxResult =

                            if rustArgs |> Option.isSome

                            then None

                            else

                                try

                                    let ch, errors = fsi_eval code 

cancellationToken

                                    let errors =

                                        errors

                                        |> Array.map (fun (e1, e2, e3, _) ->

                                            (e1, e2, e3, ("", (0, 0), (0, 0)))

                                        )

                                    Some (ch, errors)

                                with ex ->

                                    trace Critical (fun () -> 

$"SpiralScriptHelpers.Eval / ex: {ex |> SpiralSm.format_exception}") getLocals

                                    None



                        match fsxResult, rustResult with

                        | Some (ch, errors), None ->

                            let errors = errors |> Array.append spiralErrors

                            match ch with

                            | Choice1Of2 v ->

                                allCode <- newAllCode

                                return Ok(v), errors

                            | Choice2Of2 ex -> return Error ex, errors

                        | _, Some result ->

                            let result, errors =

                                match result with

                                | Ok result -> result, [[||]]

                                | Error error ->

                                    "",

                                    [[|

                                        (

                                            TraceLevel.Critical, error, 0, ("", 

(0, 0), (0, 0))

                                        )

                                    |]]



                            let header = if printCode then ".rs output:\n" else 

""

                            let ch, errors2 = fsi_eval 

$"\"\"\"{header}{result}\n\"\"\"" cancellationToken

                            let errors =

                                errors

                                |> Array.append spiralErrors

                                |> Array.append errors2

                            match ch with

                            | Choice1Of2 v ->

                                allCode <- newAllCode

                                return Ok(v), errors

                            | Choice2Of2 ex ->

                                return Error ex, errors

                        | _ ->

                            let ch, errors = fsi_eval "()" cancellationToken

                            match ch with

                            | Choice1Of2 v ->

                                allCode <- newAllCode

                                return Ok(v), errors

                            | Choice2Of2 ex ->

                                return Error ex, errors

                    | Some (None, errors) when errors |> List.isEmpty |> not ->

                        return errors.[[0]] |> fst |> Exception |> Error,

                        mapErrors (TraceLevel.Critical, errors, 

lastTopLevelIndex) allCode

                    | _ ->

                        return Error (Exception "Spiral error or timeout"),

                        [[|

                            (

                                TraceLevel.Critical, "Diag: Spiral error or 

timeout", 0, ("", (0, 0), (0, 0))

                            )

                        |]]

                with ex ->

                    log $"Eval / ex: {ex |> SpiralSm.format_exception}"

                    return Error (Exception $"Spiral error or timeout (4_) / ex:

{ex |> SpiralSm.format_exception}"),

                    [[|

                        (

                            TraceLevel.Critical, $"Diag: Spiral error or timeout

(4) / ex: {ex |> SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0))

                        )

                    |]]

            }

            |> Async.runWithTimeoutStrict timeout

            |> Option.defaultValue (

                Error (Exception "Spiral error or timeout (2)"),

                [[|

                    (

                        TraceLevel.Critical, "Diag: Spiral error or timeout 

(2)", 0, ("", (0, 0), (0, 0))

                    )

                |]]

            )

        with ex ->

            log $"Eval / ex: {ex |> SpiralSm.format_exception}"

            Error (Exception $"Spiral error or timeout (3) / ex: {ex |> 

SpiralSm.format_exception}"),

            [[|

                (

                    TraceLevel.Critical, $"Diag: Spiral error or timeout (3) / 

ex: {ex |> SpiralSm.format_exception}", 0, ("", (0, 0), (0, 0))

                )

            |]]

[NbConvertApp] Converting notebook Eval.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 370069 bytes to Eval.dib.html

00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Eval.dib

00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Eval.dib

In [ ]:
{ . "$ScriptDir/../lib/fsharp/build.ps1" -sequential 1 } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\fsharp

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:00 #6 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805

00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Async.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:03 #12 [Verbose] >

00:00:03 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:03 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:03 #15 [Verbose] > │ # Async (Polyglot)                                                           │

00:00:03 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:03 #17 [Verbose] >

00:00:03 #18 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:03 #19 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:00:03 #20 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:00:03 #21 [Verbose] >

00:00:03 #22 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:03 #23 [Verbose] > #r

00:00:03 #24 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:00:03 #25 [Verbose] > spNetCore.Html.Abstractions.dll"

00:00:03 #26 [Verbose] > #r

00:00:03 #27 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:03 #28 [Verbose] > otNet.Interactive.dll"

00:00:03 #29 [Verbose] > #r

00:00:03 #30 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:03 #31 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:03 #32 [Verbose] > #r

00:00:03 #33 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:03 #34 [Verbose] > otNet.Interactive.Formatting.dll"

00:00:03 #35 [Verbose] > open System

00:00:03 #36 [Verbose] > open System.IO

00:00:03 #37 [Verbose] > open System.Text

00:00:03 #38 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:00:07 #39 [Verbose] >

00:00:07 #40 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:07 #41 [Verbose] > #r

00:00:07 #42 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:07 #43 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:07 #44 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:00:07 #45 [Verbose] > #r

00:00:07 #46 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:07 #47 [Verbose] > otNet.Interactive.dll"

00:00:07 #48 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:00:07 #49 [Verbose] >

00:00:07 #50 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:07 #51 [Verbose] > //// test

00:00:07 #52 [Verbose] >

00:00:07 #53 [Verbose] > Formatter.ListExpansionLimit <- 100

00:00:07 #54 [Verbose] >

00:00:07 #55 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:07 #56 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:00:07 #57 [Verbose] >

00:00:07 #58 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:07 #59 [Verbose] > //// test

00:00:07 #60 [Verbose] >

00:00:07 #61 [Verbose] > type AssertExceptionFormatter (ex) =

00:00:07 #62 [Verbose] >     member _.Text =

00:00:07 #63 [Verbose] >         ex.ToString()

00:00:07 #64 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:00:07 #65 [Verbose] >             .Replace("36m", "</span>")

00:00:07 #66 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:00:07 #67 [Verbose] >             .Replace("\n", "<br/>\n")

00:00:07 #68 [Verbose] >

00:00:07 #69 [Verbose] >

00:00:07 #70 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:00:07 #71 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:00:08 #72 [Verbose] >

00:00:08 #73 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:08 #74 [Verbose] > //// test

00:00:08 #75 [Verbose] >

00:00:08 #76 [Verbose] > let inline __expect fn log expected actual =

00:00:08 #77 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:00:08 #78 [Verbose] >     try

00:00:08 #79 [Verbose] >         "Testing.__expect" |> fn actual expected

00:00:08 #80 [Verbose] >     with :? Expecto.AssertException as ex ->

00:00:08 #81 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:00:08 #82 [Verbose] >         failwith (ex.GetType().FullName)

00:00:08 #83 [Verbose] >

00:00:08 #84 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:00:08 #85 [Verbose] > expected actual

00:00:08 #86 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:00:08 #87 [Verbose] >

00:00:08 #88 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:00:08 #89 [Verbose] > expected actual

00:00:08 #90 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:00:08 #91 [Verbose] >

00:00:08 #92 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:00:08 #93 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:00:09 #94 [Verbose] >

00:00:09 #95 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:09 #96 [Verbose] > //// test

00:00:09 #97 [Verbose] >

00:00:09 #98 [Verbose] > let inline __isBetween log a b actual =

00:00:09 #99 [Verbose] >     let inline isBetween actual (a, b) _ =

00:00:09 #100 [Verbose] >         __isGreaterThanOrEqual log a actual

00:00:09 #101 [Verbose] >         __isLessThanOrEqual log b actual

00:00:09 #102 [Verbose] >     __expect isBetween log (a, b) actual

00:00:09 #103 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:00:09 #104 [Verbose] >

00:00:09 #105 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:09 #106 [Verbose] > #!import ../../lib/spiral/common.fsx

00:00:09 #107 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:00:09 #108 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:00:09 #109 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:00:09 #110 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:00:09 #111 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:00:09 #112 [Verbose] >

00:00:09 #113 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:09 #114 [Verbose] > type [[<Struct>]] US0 =

00:00:09 #115 [Verbose] >     | US0_0

00:00:09 #116 [Verbose] >     | US0_1

00:00:09 #117 [Verbose] >     | US0_2

00:00:09 #118 [Verbose] >     | US0_3

00:00:09 #119 [Verbose] > and [[<Struct>]] US1 =

00:00:09 #120 [Verbose] >     | US1_0 of f0_0 : US0

00:00:09 #121 [Verbose] >     | US1_1 of f1_0 : US0

00:00:09 #122 [Verbose] > and [[<Struct>]] US2 =

00:00:09 #123 [Verbose] >     | US2_0

00:00:09 #124 [Verbose] >     | US2_1

00:00:09 #125 [Verbose] > and [[<Struct>]] US3 =

00:00:09 #126 [Verbose] >     | US3_0 of f0_0 : US2

00:00:09 #127 [Verbose] >     | US3_1

00:00:09 #128 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:00:09 #129 [Verbose] >     let v1 : System.IDisposable option = None

00:00:09 #130 [Verbose] >     let mutable _v1 = v1

00:00:09 #131 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:00:09 #132 [Verbose] >     let v2 : US0 = US0_0

00:00:09 #133 [Verbose] >     let v3 : US1 = US1_0(v2)

00:00:09 #134 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:00:09 #135 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:00:09 #136 [Verbose] >     v5

00:00:09 #137 [Verbose] >     #endif

00:00:09 #138 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:00:09 #139 [Verbose] >     let v6 : US0 = US0_2

00:00:09 #140 [Verbose] >     let v7 : US1 = US1_0(v6)

00:00:09 #141 [Verbose] >     let v8 : string = $"new_dispos...

00:00:09 #142 [Verbose] >

00:00:09 #143 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:09 #144 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:00:09 #145 [Verbose] > and Mut1 = {mutable l0 : int32}

00:00:09 #146 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:00:09 #147 [Verbose] >     let v2 : bool = v1.Contains v0

00:00:09 #148 [Verbose] >     v2

00:00:09 #149 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:00:09 #150 [Verbose] >     closure1(v0)

00:00:09 #151 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:00:09 #152 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:00:09 #153 [Verbose] >     v2

00:00:09 #154 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:00:09 #155 [Verbose] >     closure3(v0)

00:00:09 #156 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:00:09 #157 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:00:09 #158 [Verbose] >     v3

00:00:09 #159 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:00:09 #160 [Verbose] >     closure6(v0, v1)

00:00:09 #161 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:00:09 #162 [Verbose] >     closure5(v0)

00:00:09 #163 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:00:09 #164 [Verbose] >     let v2 : stri...

00:00:10 #165 [Verbose] >

00:00:10 #166 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:10 #167 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:00:10 #168 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:00:10 #169 [Verbose] >     let v3 : string = v2 v0

00:00:10 #170 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:00:10 #171 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:00:10 #172 [Verbose] >     v5

00:00:10 #173 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:00:10 #174 [Verbose] >     closure1(v0)

00:00:10 #175 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:00:10 #176 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:00:10 #177 [Verbose] >     v3

00:00:10 #178 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:00:10 #179 [Verbose] >     closure5(v0, v1)

00:00:10 #180 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:00:10 #181 [Verbose] >     closure4(v0)

00:00:10 #182 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:00:10 #183 [Verbose] >     closure3()

00:00:10 #184 [Verbose] > and closure2 (...

00:00:10 #185 [Verbose] >

00:00:10 #186 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:10 #187 [Verbose] > #if FABLE_COMPILER // file_system.types

00:00:10 #188 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:00:10 #189 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:00:10 #190 [Verbose] > base64_DecodeError = class end

00:00:10 #191 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:00:10 #192 [Verbose] > = class end

00:00:10 #193 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:00:10 #194 [Verbose] > = class end

00:00:10 #195 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:00:10 #196 [Verbose] > serde_json_Error = class end

00:00:10 #197 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:00:10 #198 [Verbose] > serde_json_Value = class end

00:00:10 #199 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:00:10 #200 [Verbose] > serde_wasm_bindgen_Error = class end

00:00:10 #201 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:00:10 #202 [Verbose] >

00:00:10 #203 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:10 #204 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:00:10 #205 [Verbose] > module SpiralDateTime =

00:00:10 #206 [Verbose] >     let format x =

00:00:10 #207 [Verbose] > #if !INTERACTIVE

00:00:10 #208 [Verbose] >         Date_time.format x

00:00:10 #209 [Verbose] > #else

00:00:10 #210 [Verbose] >         format x

00:00:10 #211 [Verbose] > #endif

00:00:10 #212 [Verbose] >

00:00:10 #213 [Verbose] >     let format_iso8601 x =

00:00:10 #214 [Verbose] > #if !INTERACTIVE

00:00:10 #215 [Verbose] >         Date_time.format_iso8601 x

00:00:10 #216 [Verbose] > #else

00:00:10 #217 [Verbose] >         format_iso8601 x

00:00:10 #218 [Verbose] > #endif

00:00:10 #219 [Verbose] >

00:00:10 #220 [Verbose] >     let new_guid_from_date_time x =

00:00:10 #221 [Verbose] > #if !INTERACTIVE

00:00:10 #222 [Verbose] >         Date_time.new_guid_from_date_time x

00:00:10 #223 [Verbose] > #else

00:00:10 #224 [Verbose] >         new_guid_from_date_time x

00:00:10 #225 [Verbose] > #endif

00:00:10 #226 [Verbose] >

00:00:10 #227 [Verbose] > #endif

00:00:10 #228 [Verbose] >

00:00:10 #229 [Verbose] > module SpiralSm =

00:00:10 #230 [Verbose] >     let concat x =

00:00:10 #231 [Verbose] > #if !INTERACTIVE

00:00:10 #232 [Verbose] >         Sm.concat x

00:00:10 #233 [Verbose] > #else

00:00:10 #234 [Verbose] >         concat x

00:00:10 #235 [Verbose] > #endif

00:00:10 #236 [Verbose] >

00:00:10 #237 [Verbose] >     let contains x =

00:00:10 #238 [Verbose] > #if !INTERACTIVE

00:00:10 #239 [Verbose] >         Sm.contains x

00:00:10 #240 [Verbose] > #else

00:00:10 #241 [Verbose] >         contains x

00:00:10 #242 [Verbose] > #endif

00:00:10 #243 [Verbose] >

00:00:10 #244 [Verbose] >     let ellipsis x =

00:00:10 #245 [Verbose] > #if !INTERACTIVE

00:00:10 #246 [Verbose] >         Sm.ellipsis x

00:00:10 #247 [Verbose] > #else

00:00:10 #248 [Verbose] >         ellipsis x

00:00:10 #249 [Verbose] > #endif

00:00:10 #250 [Verbose] >

00:00:10 #251 [Verbose] >     let ellipsis_end x =

00:00:10 #252 [Verbose] > #if...

00:00:10 #253 [Verbose] >

00:00:10 #254 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:10 #255 [Verbose] > #if !INTERACTIVE

00:00:10 #256 [Verbose] > namespace Polyglot

00:00:10 #257 [Verbose] > #endif

00:00:10 #258 [Verbose] >

00:00:10 #259 [Verbose] > module Common =

00:00:10 #260 [Verbose] >

00:00:10 #261 [Verbose] > #if !INTERACTIVE

00:00:10 #262 [Verbose] >     open Lib

00:00:10 #263 [Verbose] > #endif

00:00:10 #264 [Verbose] >

00:00:10 #265 [Verbose] >     let nl = System.Environment.NewLine

00:00:10 #266 [Verbose] >     let q = @""""

00:00:10 #267 [Verbose] >

00:00:10 #268 [Verbose] >     let inline cons head tail = head :: tail

00:00:10 #269 [Verbose] >

00:00:10 #270 [Verbose] >     /// ## memoize

00:00:10 #271 [Verbose] >

00:00:10 #272 [Verbose] >     let inline memoize fn =

00:00:10 #273 [Verbose] >         let result = lazy fn ()

00:00:10 #274 [Verbose] >         fun () -> result.Value

00:00:10 #275 [Verbose] >

00:00:10 #276 [Verbose] >     /// ## TraceLevel

00:00:10 #277 [Verbose] >

00:00:10 #278 [Verbose] >     type TraceLevel =

00:00:10 #279 [Verbose] >         | Verbose

00:00:10 #280 [Verbose] >         | Debug

00:00:10 #281 [Verbose] >         | Info

00:00:10 #282 [Verbose] >         | Warning

00:00:10 #283 [Verbose] >         | Critical

00:00:10 #284 [Verbose] >

00:00:10 #285 [Verbose] >     let inline getLocals () = ""

00:00:10 #286 [Verbose] >

00:00:10 #287 [Verbose] >     let mutable traceEnabled = true

00:00:10 #288 [Verbose] >     let mutable traceCount = 0

00:00:10 #289 [Verbose] >     let mutable traceLevel = Verbose

00:00:10 #290 [Verbose] >     let mutable traceDump = false

00:00:10 #291 [Verbose] >

00:00:10 #292 [Verbose] >     let testTraceLevel level =

00:00:10 #293 [Verbose] >         traceEnabled && level >= traceLevel

00:00:10 #294 [Verbose] >

00:00:10 #295 [Verbose] >     /// ## traceRaw

00:00:10 #296 [Verbose] >

00:00:10 #297 [Verbose] >     let rec traceRaw level fn =

00:00:10 #298 [Verbose] > ...

00:00:10 #299 [Verbose] >

00:00:10 #300 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #301 [Verbose] > #if !INTERACTIVE

00:00:10 #302 [Verbose] > open Lib

00:00:10 #303 [Verbose] > #endif

00:00:10 #304 [Verbose] >

00:00:10 #305 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #306 [Verbose] > open Common

00:00:10 #307 [Verbose] >

00:00:10 #308 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:10 #309 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:10 #310 [Verbose] > │ ## choice                                                                    │

00:00:10 #311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:10 #312 [Verbose] >

00:00:10 #313 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #314 [Verbose] > let inline choice asyncs = async {

00:00:10 #315 [Verbose] >     let e = Event<_> ()

00:00:10 #316 [Verbose] >     use cts = new System.Threading.CancellationTokenSource ()

00:00:10 #317 [Verbose] >     let fn =

00:00:10 #318 [Verbose] >         asyncs

00:00:10 #319 [Verbose] >         |> Seq.map (fun a -> async {

00:00:10 #320 [Verbose] >             let! x = a

00:00:10 #321 [Verbose] >             e.Trigger x

00:00:10 #322 [Verbose] >         })

00:00:10 #323 [Verbose] >         |> Async.Parallel

00:00:10 #324 [Verbose] >         |> Async.Ignore

00:00:10 #325 [Verbose] >     Async.Start (fn, cts.Token)

00:00:10 #326 [Verbose] >     let! result = Async.AwaitEvent e.Publish

00:00:10 #327 [Verbose] >     cts.Cancel ()

00:00:10 #328 [Verbose] >     return result

00:00:10 #329 [Verbose] > }

00:00:10 #330 [Verbose] >

00:00:10 #331 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:10 #332 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:10 #333 [Verbose] > │ ## map                                                                       │

00:00:10 #334 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:10 #335 [Verbose] >

00:00:10 #336 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #337 [Verbose] > let inline map fn a = async {

00:00:10 #338 [Verbose] >     let! x = a

00:00:10 #339 [Verbose] >     return fn x

00:00:10 #340 [Verbose] > }

00:00:10 #341 [Verbose] >

00:00:10 #342 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:10 #343 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:10 #344 [Verbose] > │ ## catch                                                                     │

00:00:10 #345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:10 #346 [Verbose] >

00:00:10 #347 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #348 [Verbose] > let inline catch a =

00:00:10 #349 [Verbose] >     a

00:00:10 #350 [Verbose] >     |> Async.Catch

00:00:10 #351 [Verbose] >     |> map (function

00:00:10 #352 [Verbose] >         | Choice1Of2 result -> Ok result

00:00:10 #353 [Verbose] >         | Choice2Of2 ex -> Error ex

00:00:10 #354 [Verbose] >     )

00:00:10 #355 [Verbose] >

00:00:10 #356 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:10 #357 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:10 #358 [Verbose] > │ ## runWithTimeoutAsync                                                       │

00:00:10 #359 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:10 #360 [Verbose] >

00:00:10 #361 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #362 [Verbose] > let inline runWithTimeoutAsync_ (timeout : int) fn =

00:00:10 #363 [Verbose] >     let getLocals () = $"timeout: {timeout} / {getLocals ()}"

00:00:10 #364 [Verbose] >

00:00:10 #365 [Verbose] >     let timeoutTask = async {

00:00:10 #366 [Verbose] >         do! Async.Sleep timeout

00:00:10 #367 [Verbose] >         trace Debug (fun () -> "runWithTimeoutAsync") getLocals

00:00:10 #368 [Verbose] >         return None

00:00:10 #369 [Verbose] >     }

00:00:10 #370 [Verbose] >

00:00:10 #371 [Verbose] >     let task = async {

00:00:10 #372 [Verbose] >         try

00:00:10 #373 [Verbose] >             let! result = fn

00:00:10 #374 [Verbose] >             return Some result

00:00:10 #375 [Verbose] >         with

00:00:10 #376 [Verbose] >         | :? System.AggregateException as ex when

00:00:10 #377 [Verbose] >             ex.InnerExceptions

00:00:10 #378 [Verbose] >             |> Seq.exists (function :?

00:00:10 #379 [Verbose] > System.Threading.Tasks.TaskCanceledException -> true | _ -> false)

00:00:10 #380 [Verbose] >             ->

00:00:10 #381 [Verbose] >             let getLocals () = $"ex: {ex |> SpiralSm.format_exception}

00:00:10 #382 [Verbose] > {getLocals ()}"

00:00:10 #383 [Verbose] >             trace Warning (fun () -> "runWithTimeoutAsync") getLocals

00:00:10 #384 [Verbose] >             return None

00:00:10 #385 [Verbose] >         | ex ->

00:00:10 #386 [Verbose] >             trace Critical (fun () -> $"runWithTimeoutAsync** / ex: {ex |>

00:00:10 #387 [Verbose] > SpiralSm.format_exception}") getLocals

00:00:10 #388 [Verbose] >             return None

00:00:10 #389 [Verbose] >     }

00:00:10 #390 [Verbose] >

00:00:10 #391 [Verbose] >     [[ timeoutTask; task ]]

00:00:10 #392 [Verbose] >     |> choice

00:00:10 #393 [Verbose] >

00:00:10 #394 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:10 #395 [Verbose] > let inline runWithTimeout_ timeout fn =

00:00:10 #396 [Verbose] >     fn

00:00:10 #397 [Verbose] >     |> runWithTimeoutAsync_ timeout

00:00:10 #398 [Verbose] >     |> Async.RunSynchronously

00:00:11 #399 [Verbose] >

00:00:11 #400 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #401 [Verbose] > //// test

00:00:11 #402 [Verbose] >

00:00:11 #403 [Verbose] > Async.Sleep 120

00:00:11 #404 [Verbose] > |> runWithTimeout_ 10

00:00:11 #405 [Verbose] > |> _assertEqual None

00:00:11 #406 [Verbose] >

00:00:11 #407 [Verbose] > ╭─[ 119.85ms - stdout ]────────────────────────────────────────────────────────╮

00:00:11 #408 [Verbose] > │ 00:00:00 #1 [Debug] runWithTimeoutAsync / timeout: 10                        │

00:00:11 #409 [Verbose] > │ <null>                                                                       │

00:00:11 #410 [Verbose] > │                                                                              │

00:00:11 #411 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #412 [Verbose] >

00:00:11 #413 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #414 [Verbose] > //// test

00:00:11 #415 [Verbose] >

00:00:11 #416 [Verbose] > Async.Sleep 10

00:00:11 #417 [Verbose] > |> runWithTimeout_ 60

00:00:11 #418 [Verbose] > |> _assertEqual (Some ())

00:00:11 #419 [Verbose] >

00:00:11 #420 [Verbose] > ╭─[ 110.19ms - stdout ]────────────────────────────────────────────────────────╮

00:00:11 #421 [Verbose] > │ FSharpOption<Unit>                                                           │

00:00:11 #422 [Verbose] > │       Value: <null>                                                          │

00:00:11 #423 [Verbose] > │                                                                              │

00:00:11 #424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #425 [Verbose] >

00:00:11 #426 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #427 [Verbose] > //// test

00:00:11 #428 [Verbose] >

00:00:11 #429 [Verbose] > async {

00:00:11 #430 [Verbose] >     raise (exn "error")

00:00:11 #431 [Verbose] > }

00:00:11 #432 [Verbose] > |> runWithTimeout_ 60

00:00:11 #433 [Verbose] > |> _assertEqual None

00:00:11 #434 [Verbose] >

00:00:11 #435 [Verbose] > ╭─[ 92.56ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:11 #436 [Verbose] > │ 00:00:00 #2 [Critical] runWithTimeoutAsync** / ex: System.Exception: error / │

00:00:11 #437 [Verbose] > │ timeout: 60                                                                  │

00:00:11 #438 [Verbose] > │ <null>                                                                       │

00:00:11 #439 [Verbose] > │                                                                              │

00:00:11 #440 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #441 [Verbose] >

00:00:11 #442 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:11 #443 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:11 #444 [Verbose] > │ ## runWithTimeoutChildAsync                                                  │

00:00:11 #445 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #446 [Verbose] >

00:00:11 #447 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #448 [Verbose] > let inline runWithTimeoutChildAsync (timeout : int) fn = async {

00:00:11 #449 [Verbose] >     let getLocals () = $"timeout: {timeout} / {getLocals ()}"

00:00:11 #450 [Verbose] >     let! child = Async.StartChild (fn, timeout)

00:00:11 #451 [Verbose] >     return!

00:00:11 #452 [Verbose] >         child

00:00:11 #453 [Verbose] >         |> catch

00:00:11 #454 [Verbose] >         |> map (function

00:00:11 #455 [Verbose] >             | Ok result -> Some result

00:00:11 #456 [Verbose] >             | Error (:? System.TimeoutException as ex) ->

00:00:11 #457 [Verbose] >                 trace Debug (fun () -> $"runWithTimeoutChildAsync") getLocals

00:00:11 #458 [Verbose] >                 None

00:00:11 #459 [Verbose] >             | Error ex ->

00:00:11 #460 [Verbose] >                 trace Critical (fun () -> $"runWithTimeoutChildAsync** / ex: {ex

00:00:11 #461 [Verbose] > |> SpiralSm.format_exception}") getLocals

00:00:11 #462 [Verbose] >                 None

00:00:11 #463 [Verbose] >         )

00:00:11 #464 [Verbose] > }

00:00:11 #465 [Verbose] >

00:00:11 #466 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #467 [Verbose] > let inline runWithTimeoutChild timeout fn =

00:00:11 #468 [Verbose] >     fn

00:00:11 #469 [Verbose] >     |> runWithTimeoutChildAsync timeout

00:00:11 #470 [Verbose] >     |> Async.RunSynchronously

00:00:11 #471 [Verbose] >

00:00:11 #472 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #473 [Verbose] > let inline runWithTimeoutAsync timeout fn =

00:00:11 #474 [Verbose] >     runWithTimeoutChildAsync timeout fn

00:00:11 #475 [Verbose] >

00:00:11 #476 [Verbose] > let inline runWithTimeout timeout fn =

00:00:11 #477 [Verbose] >     runWithTimeoutChild timeout fn

00:00:11 #478 [Verbose] >

00:00:11 #479 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #480 [Verbose] > //// test

00:00:11 #481 [Verbose] >

00:00:11 #482 [Verbose] > Async.Sleep 60

00:00:11 #483 [Verbose] > |> runWithTimeoutChild 10

00:00:11 #484 [Verbose] > |> _assertEqual None

00:00:11 #485 [Verbose] >

00:00:11 #486 [Verbose] > ╭─[ 100.33ms - stdout ]────────────────────────────────────────────────────────╮

00:00:11 #487 [Verbose] > │ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 10                   │

00:00:11 #488 [Verbose] > │ <null>                                                                       │

00:00:11 #489 [Verbose] > │                                                                              │

00:00:11 #490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #491 [Verbose] >

00:00:11 #492 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #493 [Verbose] > //// test

00:00:11 #494 [Verbose] >

00:00:11 #495 [Verbose] > Async.Sleep 10

00:00:11 #496 [Verbose] > |> runWithTimeoutChild 60

00:00:11 #497 [Verbose] > |> _assertEqual (Some ())

00:00:11 #498 [Verbose] >

00:00:11 #499 [Verbose] > ╭─[ 95.44ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:11 #500 [Verbose] > │ FSharpOption<Unit>                                                           │

00:00:11 #501 [Verbose] > │       Value: <null>                                                          │

00:00:11 #502 [Verbose] > │                                                                              │

00:00:11 #503 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #504 [Verbose] >

00:00:11 #505 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #506 [Verbose] > //// test

00:00:11 #507 [Verbose] >

00:00:11 #508 [Verbose] > async {

00:00:11 #509 [Verbose] >     raise (exn "error")

00:00:11 #510 [Verbose] > }

00:00:11 #511 [Verbose] > |> runWithTimeoutChild 60

00:00:11 #512 [Verbose] > |> _assertEqual None

00:00:11 #513 [Verbose] >

00:00:11 #514 [Verbose] > ╭─[ 88.46ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:11 #515 [Verbose] > │ 00:00:00 #4 [Critical] runWithTimeoutChildAsync** / ex: System.Exception:    │

00:00:11 #516 [Verbose] > │ error / timeout: 60                                                          │

00:00:11 #517 [Verbose] > │ <null>                                                                       │

00:00:11 #518 [Verbose] > │                                                                              │

00:00:11 #519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #520 [Verbose] >

00:00:11 #521 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:11 #522 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:11 #523 [Verbose] > │ ## runWithTimeoutStrict                                                      │

00:00:11 #524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:11 #525 [Verbose] >

00:00:11 #526 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:11 #527 [Verbose] > let inline runWithTimeoutStrict (timeout : int) fn =

00:00:11 #528 [Verbose] >     let getLocals () = $"timeout: {timeout} / {getLocals ()}"

00:00:11 #529 [Verbose] >

00:00:11 #530 [Verbose] >     let timeoutTask = async {

00:00:11 #531 [Verbose] >         do! Async.Sleep timeout

00:00:11 #532 [Verbose] >         return None, getLocals

00:00:11 #533 [Verbose] >     }

00:00:11 #534 [Verbose] >

00:00:11 #535 [Verbose] >     let task = async {

00:00:11 #536 [Verbose] >         try

00:00:11 #537 [Verbose] >             return Async.RunSynchronously (fn, timeout) |> Some, getLocals

00:00:11 #538 [Verbose] >         with

00:00:11 #539 [Verbose] >         | :? System.TimeoutException as ex ->

00:00:11 #540 [Verbose] >             let getLocals () = $"ex: {ex |> SpiralSm.format_exception}

00:00:11 #541 [Verbose] > {getLocals ()}"

00:00:11 #542 [Verbose] >             return None, getLocals

00:00:11 #543 [Verbose] >         | ex ->

00:00:11 #544 [Verbose] >             trace Critical (fun () -> $"runWithTimeoutStrict / ex: {ex |>

00:00:11 #545 [Verbose] > SpiralSm.format_exception}") getLocals

00:00:11 #546 [Verbose] >             return raise ex

00:00:11 #547 [Verbose] >     }

00:00:11 #548 [Verbose] >

00:00:11 #549 [Verbose] >     try

00:00:11 #550 [Verbose] >         [[| timeoutTask; task |]]

00:00:11 #551 [Verbose] >         |> Array.map Async.StartAsTask

00:00:11 #552 [Verbose] >         |> System.Threading.Tasks.Task.WhenAny

00:00:11 #553 [Verbose] >         |> fun task ->

00:00:11 #554 [Verbose] >             match task.Result.Result with

00:00:11 #555 [Verbose] >             | None, getLocals ->

00:00:11 #556 [Verbose] >                 trace Debug (fun () -> "runWithTimeoutStrict") getLocals

00:00:11 #557 [Verbose] >                 None

00:00:11 #558 [Verbose] >             | result, _ -> result

00:00:11 #559 [Verbose] >     with

00:00:11 #560 [Verbose] >     | :? System.AggregateException as ex when

00:00:11 #561 [Verbose] >         ex.InnerExceptions

00:00:11 #562 [Verbose] >         |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException

00:00:11 #563 [Verbose] > -> true | _ -> false)

00:00:11 #564 [Verbose] >         ->

00:00:11 #565 [Verbose] >         let getLocals () = $"ex: {ex |> SpiralSm.format_exception} / {getLocals

00:00:11 #566 [Verbose] > ()}"

00:00:11 #567 [Verbose] >         trace Warning (fun () -> "runWithTimeoutStrict") getLocals

00:00:11 #568 [Verbose] >         None

00:00:11 #569 [Verbose] >     | ex ->

00:00:11 #570 [Verbose] >         let getLocals () = $"ex: {ex |> SpiralSm.format_exception} / {getLocals

00:00:11 #571 [Verbose] > ()}"

00:00:11 #572 [Verbose] >         trace Critical (fun () -> "runWithTimeoutStrict**") getLocals

00:00:11 #573 [Verbose] >         None

00:00:12 #574 [Verbose] >

00:00:12 #575 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #576 [Verbose] > //// test

00:00:12 #577 [Verbose] >

00:00:12 #578 [Verbose] > Async.Sleep 60

00:00:12 #579 [Verbose] > |> runWithTimeoutStrict 10

00:00:12 #580 [Verbose] > |> _assertEqual None

00:00:12 #581 [Verbose] >

00:00:12 #582 [Verbose] > ╭─[ 96.25ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:12 #583 [Verbose] > │ 00:00:01 #5 [Debug] runWithTimeoutStrict / timeout: 10                       │

00:00:12 #584 [Verbose] > │ <null>                                                                       │

00:00:12 #585 [Verbose] > │                                                                              │

00:00:12 #586 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #587 [Verbose] >

00:00:12 #588 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #589 [Verbose] > //// test

00:00:12 #590 [Verbose] >

00:00:12 #591 [Verbose] > Async.Sleep 10

00:00:12 #592 [Verbose] > |> runWithTimeoutStrict 60

00:00:12 #593 [Verbose] > |> _assertEqual (Some ())

00:00:12 #594 [Verbose] >

00:00:12 #595 [Verbose] > ╭─[ 89.99ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:12 #596 [Verbose] > │ FSharpOption<Unit>                                                           │

00:00:12 #597 [Verbose] > │       Value: <null>                                                          │

00:00:12 #598 [Verbose] > │                                                                              │

00:00:12 #599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #600 [Verbose] >

00:00:12 #601 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #602 [Verbose] > //// test

00:00:12 #603 [Verbose] >

00:00:12 #604 [Verbose] > async {

00:00:12 #605 [Verbose] >     raise (exn "error")

00:00:12 #606 [Verbose] > }

00:00:12 #607 [Verbose] > |> runWithTimeoutStrict 60

00:00:12 #608 [Verbose] > |> _assertEqual None

00:00:12 #609 [Verbose] >

00:00:12 #610 [Verbose] > ╭─[ 89.72ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:12 #611 [Verbose] > │ 00:00:01 #6 [Critical] runWithTimeoutStrict / ex: System.Exception: error /  │

00:00:12 #612 [Verbose] > │ timeout: 60                                                                  │

00:00:12 #613 [Verbose] > │ 00:00:01 #7 [Critical] runWithTimeoutStrict** / ex:                          │

00:00:12 #614 [Verbose] > │ System.AggregateException: One or more errors occurred. (error) / timeout:   │

00:00:12 #615 [Verbose] > │ 60                                                                           │

00:00:12 #616 [Verbose] > │ <null>                                                                       │

00:00:12 #617 [Verbose] > │                                                                              │

00:00:12 #618 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #619 [Verbose] >

00:00:12 #620 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:12 #621 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:12 #622 [Verbose] > │ ## awaitValueTask                                                            │

00:00:12 #623 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #624 [Verbose] >

00:00:12 #625 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #626 [Verbose] > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =

00:00:12 #627 [Verbose] >     task.AsTask () |> Async.AwaitTask

00:00:12 #628 [Verbose] >

00:00:12 #629 [Verbose] > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =

00:00:12 #630 [Verbose] >     task.AsTask () |> Async.AwaitTask

00:00:12 #631 [Verbose] >

00:00:12 #632 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:12 #633 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:12 #634 [Verbose] > │ ## init                                                                      │

00:00:12 #635 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #636 [Verbose] >

00:00:12 #637 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #638 [Verbose] > let inline init x = async {

00:00:12 #639 [Verbose] >     return x

00:00:12 #640 [Verbose] > }

00:00:12 #641 [Verbose] >

00:00:12 #642 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #643 [Verbose] > //// test

00:00:12 #644 [Verbose] >

00:00:12 #645 [Verbose] > init 1

00:00:12 #646 [Verbose] > |> Async.RunSynchronously

00:00:12 #647 [Verbose] > |> _assertEqual 1

00:00:12 #648 [Verbose] >

00:00:12 #649 [Verbose] > ╭─[ 40.26ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:12 #650 [Verbose] > │ 1                                                                            │

00:00:12 #651 [Verbose] > │                                                                              │

00:00:12 #652 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #653 [Verbose] >

00:00:12 #654 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:12 #655 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:12 #656 [Verbose] > │ ## mergeCancellationTokenWithDefaultAsync                                    │

00:00:12 #657 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #658 [Verbose] >

00:00:12 #659 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #660 [Verbose] > let inline mergeCancellationTokenWithDefaultAsync (token :

00:00:12 #661 [Verbose] > System.Threading.CancellationToken) = async {

00:00:12 #662 [Verbose] >     let! ct = Async.CancellationToken

00:00:12 #663 [Verbose] >     let dct = Async.DefaultCancellationToken

00:00:12 #664 [Verbose] >     let cts = System.Threading.CancellationTokenSource.CreateLinkedTokenSource

00:00:12 #665 [Verbose] > [[| ct; dct; token |]]

00:00:12 #666 [Verbose] >     return cts.Token

00:00:12 #667 [Verbose] > }

00:00:12 #668 [Verbose] >

00:00:12 #669 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:12 #670 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:12 #671 [Verbose] > │ ## withCancellationToken                                                     │

00:00:12 #672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #673 [Verbose] >

00:00:12 #674 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #675 [Verbose] > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =

00:00:12 #676 [Verbose] >     Async.StartImmediateAsTask (fn, ct)

00:00:12 #677 [Verbose] >     |> Async.AwaitTask

00:00:12 #678 [Verbose] >

00:00:12 #679 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #680 [Verbose] > //// test

00:00:12 #681 [Verbose] >

00:00:12 #682 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()

00:00:12 #683 [Verbose] >

00:00:12 #684 [Verbose] > async {

00:00:12 #685 [Verbose] >     let run = async {

00:00:12 #686 [Verbose] >         do! Async.Sleep 100

00:00:12 #687 [Verbose] >         return 1

00:00:12 #688 [Verbose] >     }

00:00:12 #689 [Verbose] >

00:00:12 #690 [Verbose] >     let! child =

00:00:12 #691 [Verbose] >         run

00:00:12 #692 [Verbose] >         |> withCancellationToken cts.Token

00:00:12 #693 [Verbose] >         |> catch

00:00:12 #694 [Verbose] >         |> Async.StartChild

00:00:12 #695 [Verbose] >

00:00:12 #696 [Verbose] >     do! Async.Sleep 50

00:00:12 #697 [Verbose] >     cts.Cancel ()

00:00:12 #698 [Verbose] >     return! child

00:00:12 #699 [Verbose] > }

00:00:12 #700 [Verbose] > |> Async.RunSynchronously

00:00:12 #701 [Verbose] > |> Result.mapError _.Message

00:00:12 #702 [Verbose] > |> _assertEqual (Error ("A task was canceled."))

00:00:12 #703 [Verbose] >

00:00:12 #704 [Verbose] > ╭─[ 181.82ms - stdout ]────────────────────────────────────────────────────────╮

00:00:12 #705 [Verbose] > │ FSharpResult<Int32,String>                                                   │

00:00:12 #706 [Verbose] > │       ResultValue: 0                                                         │

00:00:12 #707 [Verbose] > │       ErrorValue: A task was canceled.                                       │

00:00:12 #708 [Verbose] > │                                                                              │

00:00:12 #709 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #710 [Verbose] >

00:00:12 #711 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:12 #712 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:12 #713 [Verbose] > │ ## withTraceLevel                                                            │

00:00:12 #714 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #715 [Verbose] >

00:00:12 #716 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #717 [Verbose] > let inline withTraceLevel level fn = async {

00:00:12 #718 [Verbose] >     let oldTraceLevel = traceLevel

00:00:12 #719 [Verbose] >     try

00:00:12 #720 [Verbose] >         traceLevel <- level

00:00:12 #721 [Verbose] >         return! fn

00:00:12 #722 [Verbose] >     finally

00:00:12 #723 [Verbose] >         traceLevel <- oldTraceLevel

00:00:12 #724 [Verbose] > }

00:00:14 #725 [Verbose] > [NbConvertApp] Converting notebook Async.dib.ipynb to html

00:00:14 #726 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:14 #727 [Verbose] >   validate(nb)

00:00:15 #728 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:15 #729 [Verbose] >   return _pygments_highlight(

00:00:15 #730 [Verbose] > [NbConvertApp] Writing 326877 bytes to Async.dib.html

00:00:16 #731 [Debug] executeAsync / exitCode: 0 / output.Length: 26692

00:00:16 #732 [Debug] main / executeCommand / exitCode: 0

00:00:16 #733 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 AsyncSeq.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:18 #734 [Verbose] >

00:00:18 #735 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:18 #736 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:18 #737 [Verbose] > │ # AsyncSeq (Polyglot)                                                        │

00:00:18 #738 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #739 [Verbose] >

00:00:18 #740 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:18 #741 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:00:18 #742 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:00:18 #743 [Verbose] >

00:00:18 #744 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:18 #745 [Verbose] > #r

00:00:18 #746 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:00:18 #747 [Verbose] > spNetCore.Html.Abstractions.dll"

00:00:18 #748 [Verbose] > #r

00:00:18 #749 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:18 #750 [Verbose] > otNet.Interactive.dll"

00:00:18 #751 [Verbose] > #r

00:00:18 #752 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:18 #753 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:18 #754 [Verbose] > #r

00:00:18 #755 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:18 #756 [Verbose] > otNet.Interactive.Formatting.dll"

00:00:18 #757 [Verbose] > open System

00:00:18 #758 [Verbose] > open System.IO

00:00:18 #759 [Verbose] > open System.Text

00:00:18 #760 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:00:22 #761 [Verbose] >

00:00:22 #762 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:22 #763 [Verbose] > #r

00:00:22 #764 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:22 #765 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:22 #766 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:00:22 #767 [Verbose] > #r

00:00:22 #768 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:22 #769 [Verbose] > otNet.Interactive.dll"

00:00:22 #770 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:00:22 #771 [Verbose] >

00:00:22 #772 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:22 #773 [Verbose] > //// test

00:00:22 #774 [Verbose] >

00:00:22 #775 [Verbose] > Formatter.ListExpansionLimit <- 100

00:00:22 #776 [Verbose] >

00:00:22 #777 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:22 #778 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:00:22 #779 [Verbose] >

00:00:22 #780 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:22 #781 [Verbose] > //// test

00:00:22 #782 [Verbose] >

00:00:22 #783 [Verbose] > type AssertExceptionFormatter (ex) =

00:00:22 #784 [Verbose] >     member _.Text =

00:00:22 #785 [Verbose] >         ex.ToString()

00:00:22 #786 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:00:22 #787 [Verbose] >             .Replace("36m", "</span>")

00:00:22 #788 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:00:22 #789 [Verbose] >             .Replace("\n", "<br/>\n")

00:00:22 #790 [Verbose] >

00:00:22 #791 [Verbose] >

00:00:22 #792 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:00:22 #793 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:00:23 #794 [Verbose] >

00:00:23 #795 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:23 #796 [Verbose] > //// test

00:00:23 #797 [Verbose] >

00:00:23 #798 [Verbose] > let inline __expect fn log expected actual =

00:00:23 #799 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:00:23 #800 [Verbose] >     try

00:00:23 #801 [Verbose] >         "Testing.__expect" |> fn actual expected

00:00:23 #802 [Verbose] >     with :? Expecto.AssertException as ex ->

00:00:23 #803 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:00:23 #804 [Verbose] >         failwith (ex.GetType().FullName)

00:00:23 #805 [Verbose] >

00:00:23 #806 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:00:23 #807 [Verbose] > expected actual

00:00:23 #808 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:00:23 #809 [Verbose] >

00:00:23 #810 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:00:23 #811 [Verbose] > expected actual

00:00:23 #812 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:00:23 #813 [Verbose] >

00:00:23 #814 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:00:23 #815 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:00:23 #816 [Verbose] >

00:00:23 #817 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:23 #818 [Verbose] > //// test

00:00:23 #819 [Verbose] >

00:00:23 #820 [Verbose] > let inline __isBetween log a b actual =

00:00:23 #821 [Verbose] >     let inline isBetween actual (a, b) _ =

00:00:23 #822 [Verbose] >         __isGreaterThanOrEqual log a actual

00:00:23 #823 [Verbose] >         __isLessThanOrEqual log b actual

00:00:23 #824 [Verbose] >     __expect isBetween log (a, b) actual

00:00:23 #825 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:00:23 #826 [Verbose] >

00:00:23 #827 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:23 #828 [Verbose] > #r

00:00:23 #829 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

00:00:23 #830 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"

00:00:23 #831 [Verbose] > #r

00:00:23 #832 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

00:00:23 #833 [Verbose] > 0/System.Reactive.dll"

00:00:23 #834 [Verbose] > #r

00:00:23 #835 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib

00:00:23 #836 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"

00:00:23 #837 [Verbose] >

00:00:23 #838 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:23 #839 [Verbose] > #!import ../../lib/spiral/common.fsx

00:00:23 #840 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:00:23 #841 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:00:23 #842 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:00:23 #843 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:00:23 #844 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:00:23 #845 [Verbose] > #!import ../../lib/fsharp/Async.fs

00:00:23 #846 [Verbose] >

00:00:23 #847 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:23 #848 [Verbose] > type [[<Struct>]] US0 =

00:00:23 #849 [Verbose] >     | US0_0

00:00:23 #850 [Verbose] >     | US0_1

00:00:23 #851 [Verbose] >     | US0_2

00:00:23 #852 [Verbose] >     | US0_3

00:00:23 #853 [Verbose] > and [[<Struct>]] US1 =

00:00:23 #854 [Verbose] >     | US1_0 of f0_0 : US0

00:00:23 #855 [Verbose] >     | US1_1 of f1_0 : US0

00:00:23 #856 [Verbose] > and [[<Struct>]] US2 =

00:00:23 #857 [Verbose] >     | US2_0

00:00:23 #858 [Verbose] >     | US2_1

00:00:23 #859 [Verbose] > and [[<Struct>]] US3 =

00:00:23 #860 [Verbose] >     | US3_0 of f0_0 : US2

00:00:23 #861 [Verbose] >     | US3_1

00:00:23 #862 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:00:23 #863 [Verbose] >     let v1 : System.IDisposable option = None

00:00:23 #864 [Verbose] >     let mutable _v1 = v1

00:00:23 #865 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:00:23 #866 [Verbose] >     let v2 : US0 = US0_0

00:00:23 #867 [Verbose] >     let v3 : US1 = US1_0(v2)

00:00:23 #868 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:00:23 #869 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:00:23 #870 [Verbose] >     v5

00:00:23 #871 [Verbose] >     #endif

00:00:23 #872 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:00:23 #873 [Verbose] >     let v6 : US0 = US0_2

00:00:23 #874 [Verbose] >     let v7 : US1 = US1_0(v6)

00:00:23 #875 [Verbose] >     let v8 : string = $"new_dispos...

00:00:24 #876 [Verbose] >

00:00:24 #877 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:24 #878 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:00:24 #879 [Verbose] > and Mut1 = {mutable l0 : int32}

00:00:24 #880 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:00:24 #881 [Verbose] >     let v2 : bool = v1.Contains v0

00:00:24 #882 [Verbose] >     v2

00:00:24 #883 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:00:24 #884 [Verbose] >     closure1(v0)

00:00:24 #885 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:00:24 #886 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:00:24 #887 [Verbose] >     v2

00:00:24 #888 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:00:24 #889 [Verbose] >     closure3(v0)

00:00:24 #890 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:00:24 #891 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:00:24 #892 [Verbose] >     v3

00:00:24 #893 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:00:24 #894 [Verbose] >     closure6(v0, v1)

00:00:24 #895 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:00:24 #896 [Verbose] >     closure5(v0)

00:00:24 #897 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:00:24 #898 [Verbose] >     let v2 : stri...

00:00:25 #899 [Verbose] >

00:00:25 #900 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:25 #901 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:00:25 #902 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:00:25 #903 [Verbose] >     let v3 : string = v2 v0

00:00:25 #904 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:00:25 #905 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:00:25 #906 [Verbose] >     v5

00:00:25 #907 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:00:25 #908 [Verbose] >     closure1(v0)

00:00:25 #909 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:00:25 #910 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:00:25 #911 [Verbose] >     v3

00:00:25 #912 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:00:25 #913 [Verbose] >     closure5(v0, v1)

00:00:25 #914 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:00:25 #915 [Verbose] >     closure4(v0)

00:00:25 #916 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:00:25 #917 [Verbose] >     closure3()

00:00:25 #918 [Verbose] > and closure2 (...

00:00:25 #919 [Verbose] >

00:00:25 #920 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:25 #921 [Verbose] > #if FABLE_COMPILER // file_system.types

00:00:25 #922 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:00:25 #923 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:00:25 #924 [Verbose] > base64_DecodeError = class end

00:00:25 #925 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:00:25 #926 [Verbose] > = class end

00:00:25 #927 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:00:25 #928 [Verbose] > = class end

00:00:25 #929 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:00:25 #930 [Verbose] > serde_json_Error = class end

00:00:25 #931 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:00:25 #932 [Verbose] > serde_json_Value = class end

00:00:25 #933 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:00:25 #934 [Verbose] > serde_wasm_bindgen_Error = class end

00:00:25 #935 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:00:25 #936 [Verbose] >

00:00:25 #937 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:25 #938 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:00:25 #939 [Verbose] > module SpiralDateTime =

00:00:25 #940 [Verbose] >     let format x =

00:00:25 #941 [Verbose] > #if !INTERACTIVE

00:00:25 #942 [Verbose] >         Date_time.format x

00:00:25 #943 [Verbose] > #else

00:00:25 #944 [Verbose] >         format x

00:00:25 #945 [Verbose] > #endif

00:00:25 #946 [Verbose] >

00:00:25 #947 [Verbose] >     let format_iso8601 x =

00:00:25 #948 [Verbose] > #if !INTERACTIVE

00:00:25 #949 [Verbose] >         Date_time.format_iso8601 x

00:00:25 #950 [Verbose] > #else

00:00:25 #951 [Verbose] >         format_iso8601 x

00:00:25 #952 [Verbose] > #endif

00:00:25 #953 [Verbose] >

00:00:25 #954 [Verbose] >     let new_guid_from_date_time x =

00:00:25 #955 [Verbose] > #if !INTERACTIVE

00:00:25 #956 [Verbose] >         Date_time.new_guid_from_date_time x

00:00:25 #957 [Verbose] > #else

00:00:25 #958 [Verbose] >         new_guid_from_date_time x

00:00:25 #959 [Verbose] > #endif

00:00:25 #960 [Verbose] >

00:00:25 #961 [Verbose] > #endif

00:00:25 #962 [Verbose] >

00:00:25 #963 [Verbose] > module SpiralSm =

00:00:25 #964 [Verbose] >     let concat x =

00:00:25 #965 [Verbose] > #if !INTERACTIVE

00:00:25 #966 [Verbose] >         Sm.concat x

00:00:25 #967 [Verbose] > #else

00:00:25 #968 [Verbose] >         concat x

00:00:25 #969 [Verbose] > #endif

00:00:25 #970 [Verbose] >

00:00:25 #971 [Verbose] >     let contains x =

00:00:25 #972 [Verbose] > #if !INTERACTIVE

00:00:25 #973 [Verbose] >         Sm.contains x

00:00:25 #974 [Verbose] > #else

00:00:25 #975 [Verbose] >         contains x

00:00:25 #976 [Verbose] > #endif

00:00:25 #977 [Verbose] >

00:00:25 #978 [Verbose] >     let ellipsis x =

00:00:25 #979 [Verbose] > #if !INTERACTIVE

00:00:25 #980 [Verbose] >         Sm.ellipsis x

00:00:25 #981 [Verbose] > #else

00:00:25 #982 [Verbose] >         ellipsis x

00:00:25 #983 [Verbose] > #endif

00:00:25 #984 [Verbose] >

00:00:25 #985 [Verbose] >     let ellipsis_end x =

00:00:25 #986 [Verbose] > #if...

00:00:25 #987 [Verbose] >

00:00:25 #988 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:25 #989 [Verbose] > #if !INTERACTIVE

00:00:25 #990 [Verbose] > namespace Polyglot

00:00:25 #991 [Verbose] > #endif

00:00:25 #992 [Verbose] >

00:00:25 #993 [Verbose] > module Common =

00:00:25 #994 [Verbose] >

00:00:25 #995 [Verbose] > #if !INTERACTIVE

00:00:25 #996 [Verbose] >     open Lib

00:00:25 #997 [Verbose] > #endif

00:00:25 #998 [Verbose] >

00:00:25 #999 [Verbose] >     let nl = System.Environment.NewLine

00:00:25 #1000 [Verbose] >     let q = @""""

00:00:25 #1001 [Verbose] >

00:00:25 #1002 [Verbose] >     let inline cons head tail = head :: tail

00:00:25 #1003 [Verbose] >

00:00:25 #1004 [Verbose] >     /// ## memoize

00:00:25 #1005 [Verbose] >

00:00:25 #1006 [Verbose] >     let inline memoize fn =

00:00:25 #1007 [Verbose] >         let result = lazy fn ()

00:00:25 #1008 [Verbose] >         fun () -> result.Value

00:00:25 #1009 [Verbose] >

00:00:25 #1010 [Verbose] >     /// ## TraceLevel

00:00:25 #1011 [Verbose] >

00:00:25 #1012 [Verbose] >     type TraceLevel =

00:00:25 #1013 [Verbose] >         | Verbose

00:00:25 #1014 [Verbose] >         | Debug

00:00:25 #1015 [Verbose] >         | Info

00:00:25 #1016 [Verbose] >         | Warning

00:00:25 #1017 [Verbose] >         | Critical

00:00:25 #1018 [Verbose] >

00:00:25 #1019 [Verbose] >     let inline getLocals () = ""

00:00:25 #1020 [Verbose] >

00:00:25 #1021 [Verbose] >     let mutable traceEnabled = true

00:00:25 #1022 [Verbose] >     let mutable traceCount = 0

00:00:25 #1023 [Verbose] >     let mutable traceLevel = Verbose

00:00:25 #1024 [Verbose] >     let mutable traceDump = false

00:00:25 #1025 [Verbose] >

00:00:25 #1026 [Verbose] >     let testTraceLevel level =

00:00:25 #1027 [Verbose] >         traceEnabled && level >= traceLevel

00:00:25 #1028 [Verbose] >

00:00:25 #1029 [Verbose] >     /// ## traceRaw

00:00:25 #1030 [Verbose] >

00:00:25 #1031 [Verbose] >     let rec traceRaw level fn =

00:00:25 #1032 [Verbose] > ...

00:00:25 #1033 [Verbose] >

00:00:25 #1034 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:25 #1035 [Verbose] > #if !INTERACTIVE

00:00:25 #1036 [Verbose] > namespace Polyglot

00:00:25 #1037 [Verbose] > #endif

00:00:25 #1038 [Verbose] >

00:00:25 #1039 [Verbose] > module Async =

00:00:25 #1040 [Verbose] >

00:00:25 #1041 [Verbose] > #if !INTERACTIVE

00:00:25 #1042 [Verbose] >     open Lib

00:00:25 #1043 [Verbose] > #endif

00:00:25 #1044 [Verbose] >

00:00:25 #1045 [Verbose] >     open Common

00:00:25 #1046 [Verbose] >

00:00:25 #1047 [Verbose] >     /// ## choice

00:00:25 #1048 [Verbose] >

00:00:25 #1049 [Verbose] >     let inline choice asyncs = async {

00:00:25 #1050 [Verbose] >         let e = Event<_> ()

00:00:25 #1051 [Verbose] >         use cts = new System.Threading.CancellationTokenSource ()

00:00:25 #1052 [Verbose] >         let fn =

00:00:25 #1053 [Verbose] >             asyncs

00:00:25 #1054 [Verbose] >             |> Seq.map (fun a -> async {

00:00:25 #1055 [Verbose] >                 let! x = a

00:00:25 #1056 [Verbose] >                 e.Trigger x

00:00:25 #1057 [Verbose] >             })

00:00:25 #1058 [Verbose] >             |> Async.Parallel

00:00:25 #1059 [Verbose] >             |> Async.Ignore

00:00:25 #1060 [Verbose] >         Async.Start (fn, cts.Token)

00:00:25 #1061 [Verbose] >         let! result = Async.AwaitEvent e.Publish

00:00:25 #1062 [Verbose] >         cts.Cancel ()

00:00:25 #1063 [Verbose] >         return result

00:00:25 #1064 [Verbose] >     }

00:00:25 #1065 [Verbose] >

00:00:25 #1066 [Verbose] >     /// ## map

00:00:25 #1067 [Verbose] >

00:00:25 #1068 [Verbose] >     let inline map fn a = async {

00:00:25 #1069 [Verbose] >         let! x = a

00:00:25 #1070 [Verbose] >         return fn x

00:00:25 #1071 [Verbose] >     }

00:00:25 #1072 [Verbose] >

00:00:25 #1073 [Verbose] >     /// ## catch

00:00:25 #1074 [Verbose] >

00:00:25 #1075 [Verbose] >     let inline catch a =

00:00:25 #1076 [Verbose] >    ...

00:00:26 #1077 [Verbose] >

00:00:26 #1078 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:26 #1079 [Verbose] > #if !INTERACTIVE

00:00:26 #1080 [Verbose] > open Lib

00:00:26 #1081 [Verbose] > #endif

00:00:26 #1082 [Verbose] >

00:00:26 #1083 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:26 #1084 [Verbose] > open Common

00:00:26 #1085 [Verbose] >

00:00:26 #1086 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:26 #1087 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:26 #1088 [Verbose] > │ ## subscribeEvent                                                            │

00:00:26 #1089 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #1090 [Verbose] >

00:00:26 #1091 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:26 #1092 [Verbose] > let inline subscribeEvent (event: IEvent<'H, 'A>) map =

00:00:26 #1093 [Verbose] >     let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,

00:00:26 #1094 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)

00:00:26 #1095 [Verbose] >     System.Reactive.Linq.Observable.Select (observable, fun event -> map

00:00:26 #1096 [Verbose] > event.EventArgs)

00:00:26 #1097 [Verbose] >     |> FSharp.Control.AsyncSeq.ofObservableBuffered

00:00:26 #1098 [Verbose] >

00:00:26 #1099 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:26 #1100 [Verbose] > //// test

00:00:26 #1101 [Verbose] >

00:00:26 #1102 [Verbose] > type TestEvent () as self =

00:00:26 #1103 [Verbose] >     member val Calls = [[]] with get, set

00:00:26 #1104 [Verbose] >     member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get

00:00:26 #1105 [Verbose] >

00:00:26 #1106 [Verbose] >     member _.AddCall text =

00:00:26 #1107 [Verbose] >         self.Calls <- self.Calls @ [[ text ]]

00:00:26 #1108 [Verbose] >

00:00:26 #1109 [Verbose] >     member _.EventInterface =

00:00:26 #1110 [Verbose] >         { new IEvent<ErrorEventHandler, ErrorEventArgs> with

00:00:26 #1111 [Verbose] >             member _.AddHandler handler =

00:00:26 #1112 [Verbose] >                 self.AddCall "AddHandler"

00:00:26 #1113 [Verbose] >                 self.Event.Publish.AddHandler handler

00:00:26 #1114 [Verbose] >

00:00:26 #1115 [Verbose] >             member _.RemoveHandler handler =

00:00:26 #1116 [Verbose] >                 self.AddCall "RemoveHandler"

00:00:26 #1117 [Verbose] >                 self.Event.Publish.RemoveHandler handler

00:00:26 #1118 [Verbose] >

00:00:26 #1119 [Verbose] >             member _.Subscribe observer =

00:00:26 #1120 [Verbose] >                 self.AddCall "IObservable.Subscribe"

00:00:26 #1121 [Verbose] >                 let disposable = self.Event.Publish.Subscribe observer

00:00:26 #1122 [Verbose] >                 new_disposable (fun () ->

00:00:26 #1123 [Verbose] >                     self.AddCall "IObservable.Dispose"

00:00:26 #1124 [Verbose] >                     disposable.Dispose ()

00:00:26 #1125 [Verbose] >                 )

00:00:26 #1126 [Verbose] >         }

00:00:26 #1127 [Verbose] >

00:00:26 #1128 [Verbose] >     member _.Subscribe () =

00:00:26 #1129 [Verbose] >         subscribeEvent

00:00:26 #1130 [Verbose] >             self.EventInterface

00:00:26 #1131 [Verbose] >             (fun args ->

00:00:26 #1132 [Verbose] >                 let result = args.GetException () |> SpiralSm.format_exception

00:00:26 #1133 [Verbose] >                 self.AddCall $"TestEvent.Subscribe({result})"

00:00:26 #1134 [Verbose] >                 result

00:00:26 #1135 [Verbose] >             )

00:00:26 #1136 [Verbose] >

00:00:26 #1137 [Verbose] >     member _.Iter subscription =

00:00:26 #1138 [Verbose] >         subscription

00:00:26 #1139 [Verbose] >         |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {

00:00:26 #1140 [Verbose] >             self.AddCall $"TestEvent.Iter({i}: {error})"

00:00:26 #1141 [Verbose] >         })

00:00:26 #1142 [Verbose] >

00:00:26 #1143 [Verbose] >     member _.WaitCall text = async {

00:00:26 #1144 [Verbose] >         while self.Calls |> List.last <> text do

00:00:26 #1145 [Verbose] >             do! Async.SwitchToThreadPool ()

00:00:26 #1146 [Verbose] >     }

00:00:26 #1147 [Verbose] >

00:00:26 #1148 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:26 #1149 [Verbose] > //// test

00:00:26 #1150 [Verbose] >

00:00:26 #1151 [Verbose] > let testEvent = TestEvent ()

00:00:26 #1152 [Verbose] >

00:00:26 #1153 [Verbose] > async {

00:00:26 #1154 [Verbose] >     testEvent.AddCall "1"

00:00:26 #1155 [Verbose] >     let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild

00:00:26 #1156 [Verbose] >     do! testEvent.WaitCall "AddHandler"

00:00:26 #1157 [Verbose] >     testEvent.AddCall "2"

00:00:26 #1158 [Verbose] >     do! child

00:00:26 #1159 [Verbose] >     testEvent.AddCall "3"

00:00:26 #1160 [Verbose] > }

00:00:26 #1161 [Verbose] > |> Async.runWithTimeout 300

00:00:26 #1162 [Verbose] > |> _assertEqual None

00:00:26 #1163 [Verbose] >

00:00:26 #1164 [Verbose] > testEvent.Calls

00:00:26 #1165 [Verbose] > |> Seq.toList

00:00:26 #1166 [Verbose] > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]]

00:00:27 #1167 [Verbose] >

00:00:27 #1168 [Verbose] > ╭─[ 469.34ms - stdout ]────────────────────────────────────────────────────────╮

00:00:27 #1169 [Verbose] > │ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 300                  │

00:00:27 #1170 [Verbose] > │ <null>                                                                       │

00:00:27 #1171 [Verbose] > │ [ 1, AddHandler, 2, RemoveHandler ]                                          │

00:00:27 #1172 [Verbose] > │                                                                              │

00:00:27 #1173 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:27 #1174 [Verbose] >

00:00:27 #1175 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:27 #1176 [Verbose] > //// test

00:00:27 #1177 [Verbose] >

00:00:27 #1178 [Verbose] > let testEvent = TestEvent ()

00:00:27 #1179 [Verbose] >

00:00:27 #1180 [Verbose] > async {

00:00:27 #1181 [Verbose] >     testEvent.AddCall "1"

00:00:27 #1182 [Verbose] >     let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild

00:00:27 #1183 [Verbose] >     do! testEvent.WaitCall "AddHandler"

00:00:27 #1184 [Verbose] >     testEvent.AddCall "2"

00:00:27 #1185 [Verbose] >     use _ = testEvent.EventInterface.Subscribe (fun args ->

00:00:27 #1186 [Verbose] >         testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})"

00:00:27 #1187 [Verbose] >     )

00:00:27 #1188 [Verbose] >     testEvent.AddCall "3"

00:00:27 #1189 [Verbose] >     do! child

00:00:27 #1190 [Verbose] >     testEvent.AddCall "4"

00:00:27 #1191 [Verbose] > }

00:00:27 #1192 [Verbose] > |> Async.runWithTimeout 300

00:00:27 #1193 [Verbose] > |> _assertEqual None

00:00:27 #1194 [Verbose] >

00:00:27 #1195 [Verbose] > testEvent.Calls

00:00:27 #1196 [Verbose] > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3";

00:00:27 #1197 [Verbose] > "RemoveHandler"; "IObservable.Dispose" ]]

00:00:27 #1198 [Verbose] >

00:00:27 #1199 [Verbose] > ╭─[ 420.26ms - stdout ]────────────────────────────────────────────────────────╮

00:00:27 #1200 [Verbose] > │ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 300                  │

00:00:27 #1201 [Verbose] > │ <null>                                                                       │

00:00:27 #1202 [Verbose] > │ [ 1, AddHandler, 2, IObservable.Subscribe, 3, RemoveHandler,                 │

00:00:27 #1203 [Verbose] > │ IObservable.Dispose ]                                                        │

00:00:27 #1204 [Verbose] > │                                                                              │

00:00:27 #1205 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:27 #1206 [Verbose] >

00:00:27 #1207 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:27 #1208 [Verbose] > //// test

00:00:27 #1209 [Verbose] >

00:00:27 #1210 [Verbose] > let testEvent = TestEvent ()

00:00:27 #1211 [Verbose] >

00:00:27 #1212 [Verbose] > async {

00:00:27 #1213 [Verbose] >     testEvent.AddCall "1"

00:00:27 #1214 [Verbose] >     let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild

00:00:27 #1215 [Verbose] >     do! testEvent.WaitCall "AddHandler"

00:00:27 #1216 [Verbose] >     testEvent.AddCall "2"

00:00:27 #1217 [Verbose] >     use _ = testEvent.EventInterface.Subscribe (fun args ->

00:00:27 #1218 [Verbose] >         async {

00:00:27 #1219 [Verbose] >             do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)"

00:00:27 #1220 [Verbose] >             testEvent.AddCall

00:00:27 #1221 [Verbose] > $"testEvent.EventInterface.Subscribe({args.GetException () |>

00:00:27 #1222 [Verbose] > SpiralSm.format_exception})"

00:00:27 #1223 [Verbose] >         }

00:00:27 #1224 [Verbose] >         |> Async.RunSynchronously

00:00:27 #1225 [Verbose] >     )

00:00:27 #1226 [Verbose] >     testEvent.AddCall "3"

00:00:27 #1227 [Verbose] >     testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error"))

00:00:27 #1228 [Verbose] >     testEvent.AddCall "4"

00:00:27 #1229 [Verbose] >     do! child

00:00:27 #1230 [Verbose] >     testEvent.AddCall "5"

00:00:27 #1231 [Verbose] > }

00:00:27 #1232 [Verbose] > |> Async.runWithTimeout 300

00:00:27 #1233 [Verbose] > |> _assertEqual None

00:00:27 #1234 [Verbose] >

00:00:27 #1235 [Verbose] > testEvent.Calls

00:00:27 #1236 [Verbose] > |> _assertEqual [[

00:00:27 #1237 [Verbose] >     "1"

00:00:27 #1238 [Verbose] >     "AddHandler"

00:00:27 #1239 [Verbose] >     "2"

00:00:27 #1240 [Verbose] >     "IObservable.Subscribe"

00:00:27 #1241 [Verbose] >     "3"

00:00:27 #1242 [Verbose] >     "TestEvent.Subscribe(System.Exception: error)"

00:00:27 #1243 [Verbose] >     "TestEvent.Iter(0: System.Exception: error)"

00:00:27 #1244 [Verbose] >     "testEvent.EventInterface.Subscribe(System.Exception: error)"

00:00:27 #1245 [Verbose] >     "4"

00:00:27 #1246 [Verbose] >     "RemoveHandler"

00:00:27 #1247 [Verbose] >     "IObservable.Dispose"

00:00:27 #1248 [Verbose] > ]]

00:00:28 #1249 [Verbose] >

00:00:28 #1250 [Verbose] > ╭─[ 439.02ms - stdout ]────────────────────────────────────────────────────────╮

00:00:28 #1251 [Verbose] > │ 00:00:00 #3 [Debug] runWithTimeoutChildAsync / timeout: 300                  │

00:00:28 #1252 [Verbose] > │ <null>                                                                       │

00:00:28 #1253 [Verbose] > │ [ 1, AddHandler, 2, IObservable.Subscribe, 3,                                │

00:00:28 #1254 [Verbose] > │ TestEvent.Subscribe(System.Exception: error), TestEvent.Iter(0:              │

00:00:28 #1255 [Verbose] > │ System.Exception: error),                                                    │

00:00:28 #1256 [Verbose] > │ testEvent.EventInterface.Subscribe(System.Exception: error), 4,              │

00:00:28 #1257 [Verbose] > │ RemoveHandler, IObservable.Dispose ]                                         │

00:00:28 #1258 [Verbose] > │                                                                              │

00:00:28 #1259 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #1260 [Verbose] >

00:00:28 #1261 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:28 #1262 [Verbose] > let subscribeToken (token : System.Threading.CancellationToken) =

00:00:28 #1263 [Verbose] >     let tcs = new System.Threading.Tasks.TaskCompletionSource ()

00:00:28 #1264 [Verbose] >     System.Action tcs.SetResult |> token.Register |> ignore

00:00:28 #1265 [Verbose] >     let start = System.DateTime.Now.Ticks

00:00:28 #1266 [Verbose] >     FSharp.Control.AsyncSeq.unfoldAsync

00:00:28 #1267 [Verbose] >         (fun () -> async {

00:00:28 #1268 [Verbose] >             do! tcs.Task |> Async.AwaitTask

00:00:28 #1269 [Verbose] >             return Some (System.DateTime.Now.Ticks - start, ())

00:00:28 #1270 [Verbose] >         })

00:00:28 #1271 [Verbose] >         ()

00:00:28 #1272 [Verbose] >

00:00:28 #1273 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:28 #1274 [Verbose] > //// test

00:00:28 #1275 [Verbose] >

00:00:28 #1276 [Verbose] > let cts = new System.Threading.CancellationTokenSource ()

00:00:28 #1277 [Verbose] >

00:00:28 #1278 [Verbose] > async {

00:00:28 #1279 [Verbose] >     let! child =

00:00:28 #1280 [Verbose] >         cts.Token

00:00:28 #1281 [Verbose] >         |> subscribeToken

00:00:28 #1282 [Verbose] >         |> FSharp.Control.AsyncSeq.tryFirst

00:00:28 #1283 [Verbose] >         |> Async.StartChild

00:00:28 #1284 [Verbose] >

00:00:28 #1285 [Verbose] >     do! Async.Sleep 100

00:00:28 #1286 [Verbose] >     cts.Cancel ()

00:00:28 #1287 [Verbose] >     return! child

00:00:28 #1288 [Verbose] > }

00:00:28 #1289 [Verbose] > |> Async.RunSynchronously

00:00:28 #1290 [Verbose] > |> Option.get

00:00:28 #1291 [Verbose] > |> _isGreaterThan 900000

00:00:28 #1292 [Verbose] >

00:00:28 #1293 [Verbose] > ╭─[ 184.21ms - stdout ]────────────────────────────────────────────────────────╮

00:00:28 #1294 [Verbose] > │ 1166603                                                                      │

00:00:28 #1295 [Verbose] > │                                                                              │

00:00:28 #1296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:30 #1297 [Verbose] > [NbConvertApp] Converting notebook AsyncSeq.dib.ipynb to html

00:00:30 #1298 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:30 #1299 [Verbose] >   validate(nb)

00:00:30 #1300 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:30 #1301 [Verbose] >   return _pygments_highlight(

00:00:30 #1302 [Verbose] > [NbConvertApp] Writing 302557 bytes to AsyncSeq.dib.html

00:00:31 #1303 [Debug] executeAsync / exitCode: 0 / output.Length: 18963

00:00:31 #1304 [Debug] main / executeCommand / exitCode: 0

00:00:31 #1305 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Common.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:33 #1306 [Verbose] >

00:00:33 #1307 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:33 #1308 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:33 #1309 [Verbose] > │ # Common (Polyglot)                                                          │

00:00:33 #1310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:34 #1311 [Verbose] >

00:00:34 #1312 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:34 #1313 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:00:34 #1314 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:00:34 #1315 [Verbose] >

00:00:34 #1316 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:34 #1317 [Verbose] > #r

00:00:34 #1318 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:00:34 #1319 [Verbose] > spNetCore.Html.Abstractions.dll"

00:00:34 #1320 [Verbose] > #r

00:00:34 #1321 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:34 #1322 [Verbose] > otNet.Interactive.dll"

00:00:34 #1323 [Verbose] > #r

00:00:34 #1324 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:34 #1325 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:34 #1326 [Verbose] > #r

00:00:34 #1327 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:34 #1328 [Verbose] > otNet.Interactive.Formatting.dll"

00:00:34 #1329 [Verbose] > open System

00:00:34 #1330 [Verbose] > open System.IO

00:00:34 #1331 [Verbose] > open System.Text

00:00:34 #1332 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:00:37 #1333 [Verbose] >

00:00:37 #1334 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:37 #1335 [Verbose] > #r

00:00:37 #1336 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:37 #1337 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:37 #1338 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:00:37 #1339 [Verbose] > #r

00:00:37 #1340 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:37 #1341 [Verbose] > otNet.Interactive.dll"

00:00:37 #1342 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:00:37 #1343 [Verbose] >

00:00:37 #1344 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:37 #1345 [Verbose] > //// test

00:00:37 #1346 [Verbose] >

00:00:37 #1347 [Verbose] > Formatter.ListExpansionLimit <- 100

00:00:37 #1348 [Verbose] >

00:00:37 #1349 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:37 #1350 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:00:37 #1351 [Verbose] >

00:00:37 #1352 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:37 #1353 [Verbose] > //// test

00:00:37 #1354 [Verbose] >

00:00:37 #1355 [Verbose] > type AssertExceptionFormatter (ex) =

00:00:37 #1356 [Verbose] >     member _.Text =

00:00:37 #1357 [Verbose] >         ex.ToString()

00:00:37 #1358 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:00:37 #1359 [Verbose] >             .Replace("36m", "</span>")

00:00:37 #1360 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:00:37 #1361 [Verbose] >             .Replace("\n", "<br/>\n")

00:00:37 #1362 [Verbose] >

00:00:37 #1363 [Verbose] >

00:00:37 #1364 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:00:37 #1365 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:00:38 #1366 [Verbose] >

00:00:38 #1367 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:38 #1368 [Verbose] > //// test

00:00:38 #1369 [Verbose] >

00:00:38 #1370 [Verbose] > let inline __expect fn log expected actual =

00:00:38 #1371 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:00:38 #1372 [Verbose] >     try

00:00:38 #1373 [Verbose] >         "Testing.__expect" |> fn actual expected

00:00:38 #1374 [Verbose] >     with :? Expecto.AssertException as ex ->

00:00:38 #1375 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:00:38 #1376 [Verbose] >         failwith (ex.GetType().FullName)

00:00:38 #1377 [Verbose] >

00:00:38 #1378 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:00:38 #1379 [Verbose] > expected actual

00:00:38 #1380 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:00:38 #1381 [Verbose] >

00:00:38 #1382 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:00:38 #1383 [Verbose] > expected actual

00:00:38 #1384 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:00:38 #1385 [Verbose] >

00:00:38 #1386 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:00:38 #1387 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:00:38 #1388 [Verbose] >

00:00:38 #1389 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:38 #1390 [Verbose] > //// test

00:00:38 #1391 [Verbose] >

00:00:38 #1392 [Verbose] > let inline __isBetween log a b actual =

00:00:38 #1393 [Verbose] >     let inline isBetween actual (a, b) _ =

00:00:38 #1394 [Verbose] >         __isGreaterThanOrEqual log a actual

00:00:38 #1395 [Verbose] >         __isLessThanOrEqual log b actual

00:00:38 #1396 [Verbose] >     __expect isBetween log (a, b) actual

00:00:38 #1397 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:00:38 #1398 [Verbose] >

00:00:38 #1399 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:38 #1400 [Verbose] > #!import ../../lib/spiral/common.fsx

00:00:38 #1401 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:00:38 #1402 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:00:38 #1403 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:00:38 #1404 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:00:38 #1405 [Verbose] >

00:00:38 #1406 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:38 #1407 [Verbose] > type [[<Struct>]] US0 =

00:00:38 #1408 [Verbose] >     | US0_0

00:00:38 #1409 [Verbose] >     | US0_1

00:00:38 #1410 [Verbose] >     | US0_2

00:00:38 #1411 [Verbose] >     | US0_3

00:00:38 #1412 [Verbose] > and [[<Struct>]] US1 =

00:00:38 #1413 [Verbose] >     | US1_0 of f0_0 : US0

00:00:38 #1414 [Verbose] >     | US1_1 of f1_0 : US0

00:00:38 #1415 [Verbose] > and [[<Struct>]] US2 =

00:00:38 #1416 [Verbose] >     | US2_0

00:00:38 #1417 [Verbose] >     | US2_1

00:00:38 #1418 [Verbose] > and [[<Struct>]] US3 =

00:00:38 #1419 [Verbose] >     | US3_0 of f0_0 : US2

00:00:38 #1420 [Verbose] >     | US3_1

00:00:38 #1421 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:00:38 #1422 [Verbose] >     let v1 : System.IDisposable option = None

00:00:38 #1423 [Verbose] >     let mutable _v1 = v1

00:00:38 #1424 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:00:38 #1425 [Verbose] >     let v2 : US0 = US0_0

00:00:38 #1426 [Verbose] >     let v3 : US1 = US1_0(v2)

00:00:38 #1427 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:00:38 #1428 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:00:38 #1429 [Verbose] >     v5

00:00:38 #1430 [Verbose] >     #endif

00:00:38 #1431 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:00:38 #1432 [Verbose] >     let v6 : US0 = US0_2

00:00:38 #1433 [Verbose] >     let v7 : US1 = US1_0(v6)

00:00:38 #1434 [Verbose] >     let v8 : string = $"new_dispos...

00:00:39 #1435 [Verbose] >

00:00:39 #1436 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:39 #1437 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:00:39 #1438 [Verbose] > and Mut1 = {mutable l0 : int32}

00:00:39 #1439 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:00:39 #1440 [Verbose] >     let v2 : bool = v1.Contains v0

00:00:39 #1441 [Verbose] >     v2

00:00:39 #1442 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:00:39 #1443 [Verbose] >     closure1(v0)

00:00:39 #1444 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:00:39 #1445 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:00:39 #1446 [Verbose] >     v2

00:00:39 #1447 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:00:39 #1448 [Verbose] >     closure3(v0)

00:00:39 #1449 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:00:39 #1450 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:00:39 #1451 [Verbose] >     v3

00:00:39 #1452 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:00:39 #1453 [Verbose] >     closure6(v0, v1)

00:00:39 #1454 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:00:39 #1455 [Verbose] >     closure5(v0)

00:00:39 #1456 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:00:39 #1457 [Verbose] >     let v2 : stri...

00:00:40 #1458 [Verbose] >

00:00:40 #1459 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:40 #1460 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:00:40 #1461 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:00:40 #1462 [Verbose] >     let v3 : string = v2 v0

00:00:40 #1463 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:00:40 #1464 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:00:40 #1465 [Verbose] >     v5

00:00:40 #1466 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:00:40 #1467 [Verbose] >     closure1(v0)

00:00:40 #1468 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:00:40 #1469 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:00:40 #1470 [Verbose] >     v3

00:00:40 #1471 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:00:40 #1472 [Verbose] >     closure5(v0, v1)

00:00:40 #1473 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:00:40 #1474 [Verbose] >     closure4(v0)

00:00:40 #1475 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:00:40 #1476 [Verbose] >     closure3()

00:00:40 #1477 [Verbose] > and closure2 (...

00:00:40 #1478 [Verbose] >

00:00:40 #1479 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:40 #1480 [Verbose] > #if FABLE_COMPILER // file_system.types

00:00:40 #1481 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:00:40 #1482 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:00:40 #1483 [Verbose] > base64_DecodeError = class end

00:00:40 #1484 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:00:40 #1485 [Verbose] > = class end

00:00:40 #1486 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:00:40 #1487 [Verbose] > = class end

00:00:40 #1488 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:00:40 #1489 [Verbose] > serde_json_Error = class end

00:00:40 #1490 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:00:40 #1491 [Verbose] > serde_json_Value = class end

00:00:40 #1492 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:00:40 #1493 [Verbose] > serde_wasm_bindgen_Error = class end

00:00:40 #1494 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:00:40 #1495 [Verbose] >

00:00:40 #1496 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:40 #1497 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:00:40 #1498 [Verbose] > module SpiralDateTime =

00:00:40 #1499 [Verbose] >     let format x =

00:00:40 #1500 [Verbose] > #if !INTERACTIVE

00:00:40 #1501 [Verbose] >         Date_time.format x

00:00:40 #1502 [Verbose] > #else

00:00:40 #1503 [Verbose] >         format x

00:00:40 #1504 [Verbose] > #endif

00:00:40 #1505 [Verbose] >

00:00:40 #1506 [Verbose] >     let format_iso8601 x =

00:00:40 #1507 [Verbose] > #if !INTERACTIVE

00:00:40 #1508 [Verbose] >         Date_time.format_iso8601 x

00:00:40 #1509 [Verbose] > #else

00:00:40 #1510 [Verbose] >         format_iso8601 x

00:00:40 #1511 [Verbose] > #endif

00:00:40 #1512 [Verbose] >

00:00:40 #1513 [Verbose] >     let new_guid_from_date_time x =

00:00:40 #1514 [Verbose] > #if !INTERACTIVE

00:00:40 #1515 [Verbose] >         Date_time.new_guid_from_date_time x

00:00:40 #1516 [Verbose] > #else

00:00:40 #1517 [Verbose] >         new_guid_from_date_time x

00:00:40 #1518 [Verbose] > #endif

00:00:40 #1519 [Verbose] >

00:00:40 #1520 [Verbose] > #endif

00:00:40 #1521 [Verbose] >

00:00:40 #1522 [Verbose] > module SpiralSm =

00:00:40 #1523 [Verbose] >     let concat x =

00:00:40 #1524 [Verbose] > #if !INTERACTIVE

00:00:40 #1525 [Verbose] >         Sm.concat x

00:00:40 #1526 [Verbose] > #else

00:00:40 #1527 [Verbose] >         concat x

00:00:40 #1528 [Verbose] > #endif

00:00:40 #1529 [Verbose] >

00:00:40 #1530 [Verbose] >     let contains x =

00:00:40 #1531 [Verbose] > #if !INTERACTIVE

00:00:40 #1532 [Verbose] >         Sm.contains x

00:00:40 #1533 [Verbose] > #else

00:00:40 #1534 [Verbose] >         contains x

00:00:40 #1535 [Verbose] > #endif

00:00:40 #1536 [Verbose] >

00:00:40 #1537 [Verbose] >     let ellipsis x =

00:00:40 #1538 [Verbose] > #if !INTERACTIVE

00:00:40 #1539 [Verbose] >         Sm.ellipsis x

00:00:40 #1540 [Verbose] > #else

00:00:40 #1541 [Verbose] >         ellipsis x

00:00:40 #1542 [Verbose] > #endif

00:00:40 #1543 [Verbose] >

00:00:40 #1544 [Verbose] >     let ellipsis_end x =

00:00:40 #1545 [Verbose] > #if...

00:00:40 #1546 [Verbose] >

00:00:40 #1547 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1548 [Verbose] > #if !INTERACTIVE

00:00:40 #1549 [Verbose] > open Lib

00:00:40 #1550 [Verbose] > #endif

00:00:40 #1551 [Verbose] >

00:00:40 #1552 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1553 [Verbose] > let nl = System.Environment.NewLine

00:00:40 #1554 [Verbose] > let q = @""""

00:00:40 #1555 [Verbose] >

00:00:40 #1556 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1557 [Verbose] > let inline cons head tail = head :: tail

00:00:40 #1558 [Verbose] >

00:00:40 #1559 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:40 #1560 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:40 #1561 [Verbose] > │ ## memoize                                                                   │

00:00:40 #1562 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:40 #1563 [Verbose] >

00:00:40 #1564 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1565 [Verbose] > let inline memoize fn =

00:00:40 #1566 [Verbose] >     let result = lazy fn ()

00:00:40 #1567 [Verbose] >     fun () -> result.Value

00:00:40 #1568 [Verbose] >

00:00:40 #1569 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:40 #1570 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:40 #1571 [Verbose] > │ ## TraceLevel                                                                │

00:00:40 #1572 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:40 #1573 [Verbose] >

00:00:40 #1574 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1575 [Verbose] > type TraceLevel =

00:00:40 #1576 [Verbose] >     | Verbose

00:00:40 #1577 [Verbose] >     | Debug

00:00:40 #1578 [Verbose] >     | Info

00:00:40 #1579 [Verbose] >     | Warning

00:00:40 #1580 [Verbose] >     | Critical

00:00:40 #1581 [Verbose] >

00:00:40 #1582 [Verbose] > let inline getLocals () = ""

00:00:40 #1583 [Verbose] >

00:00:40 #1584 [Verbose] > let mutable traceEnabled = true

00:00:40 #1585 [Verbose] > let mutable traceCount = 0

00:00:40 #1586 [Verbose] > let mutable traceLevel = Verbose

00:00:40 #1587 [Verbose] > let mutable traceDump = false

00:00:40 #1588 [Verbose] >

00:00:40 #1589 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1590 [Verbose] > let testTraceLevel level =

00:00:40 #1591 [Verbose] >     traceEnabled && level >= traceLevel

00:00:40 #1592 [Verbose] >

00:00:40 #1593 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:40 #1594 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:40 #1595 [Verbose] > │ ## traceRaw                                                                  │

00:00:40 #1596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:40 #1597 [Verbose] >

00:00:40 #1598 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1599 [Verbose] > let rec traceRaw level fn =

00:00:40 #1600 [Verbose] >     if level |> testTraceLevel then

00:00:40 #1601 [Verbose] >         traceCount <- traceCount + 1

00:00:40 #1602 [Verbose] >

00:00:40 #1603 [Verbose] >         let text = $"%s{fn ()}"

00:00:40 #1604 [Verbose] > #if FABLE_COMPILER_RUST

00:00:40 #1605 [Verbose] >         Fable.Core.RustInterop.emitRustExpr () @"println!(""{}"", text)"

00:00:40 #1606 [Verbose] > #else

00:00:40 #1607 [Verbose] >         System.Console.WriteLine text

00:00:40 #1608 [Verbose] > #endif

00:00:40 #1609 [Verbose] >

00:00:40 #1610 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:00:40 #1611 [Verbose] >         if traceDump then

00:00:40 #1612 [Verbose] >             try

00:00:40 #1613 [Verbose] >                 let tmpPath = System.IO.Path.GetTempPath ()

00:00:40 #1614 [Verbose] >                 let logDir = System.IO.Path.Combine (tmpPath, "!polyglot")

00:00:40 #1615 [Verbose] >                 System.IO.Directory.CreateDirectory logDir |> ignore

00:00:40 #1616 [Verbose] >                 let logFile = System.IO.Path.Combine (logDir,

00:00:40 #1617 [Verbose] > $"{SpiralDateTime.new_guid_from_date_time System.DateTime.Now}.txt")

00:00:40 #1618 [Verbose] >                 System.IO.File.WriteAllTextAsync (logFile, text) |>

00:00:40 #1619 [Verbose] > Async.AwaitTask |> Async.RunSynchronously

00:00:40 #1620 [Verbose] >             with ex ->

00:00:40 #1621 [Verbose] >                 traceRaw Critical (fun () -> $"trace / ex: {ex |>

00:00:40 #1622 [Verbose] > SpiralSm.format_exception}")

00:00:40 #1623 [Verbose] > #endif

00:00:40 #1624 [Verbose] >

00:00:40 #1625 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1626 [Verbose] > //// test

00:00:40 #1627 [Verbose] >

00:00:40 #1628 [Verbose] > traceRaw Debug (fun () -> "test")

00:00:40 #1629 [Verbose] >

00:00:40 #1630 [Verbose] > ╭─[ 11.70ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:40 #1631 [Verbose] > │ test                                                                         │

00:00:40 #1632 [Verbose] > │                                                                              │

00:00:40 #1633 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:40 #1634 [Verbose] >

00:00:40 #1635 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:40 #1636 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:40 #1637 [Verbose] > │ ## trace                                                                     │

00:00:40 #1638 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:40 #1639 [Verbose] >

00:00:40 #1640 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1641 [Verbose] > let private replStart =

00:00:40 #1642 [Verbose] > #if INTERACTIVE || !FABLE_COMPILER

00:00:40 #1643 [Verbose] >     fun () ->

00:00:40 #1644 [Verbose] >         if System.Reflection.Assembly.GetEntryAssembly().GetName().Name <>

00:00:40 #1645 [Verbose] > "Microsoft.DotNet.Interactive.App"

00:00:40 #1646 [Verbose] >         then Some System.DateTime.Now.Ticks

00:00:40 #1647 [Verbose] >         else None

00:00:40 #1648 [Verbose] >     |> memoize

00:00:40 #1649 [Verbose] > #else

00:00:40 #1650 [Verbose] >     fun () -> None : int64 option

00:00:40 #1651 [Verbose] > #endif

00:00:40 #1652 [Verbose] >

00:00:40 #1653 [Verbose] > let trace level fn getLocals =

00:00:40 #1654 [Verbose] >     fun () ->

00:00:40 #1655 [Verbose] >         let time =

00:00:40 #1656 [Verbose] > #if WASM || CONTRACT

00:00:40 #1657 [Verbose] >             ""

00:00:40 #1658 [Verbose] > #else

00:00:40 #1659 [Verbose] >             match replStart () with

00:00:40 #1660 [Verbose] >             | Some replStart ->

00:00:40 #1661 [Verbose] >                 let t = System.DateTime.Now.Ticks - replStart |> System.TimeSpan

00:00:40 #1662 [Verbose] >                 System.DateTime (1, 1, 1, t.Hours, t.Minutes, t.Seconds,

00:00:40 #1663 [Verbose] > t.Milliseconds)

00:00:40 #1664 [Verbose] >             | None -> System.DateTime.Now

00:00:40 #1665 [Verbose] >             |> fun dateTime ->

00:00:40 #1666 [Verbose] > #if FABLE_COMPILER_RUST

00:00:40 #1667 [Verbose] >                 "hh:mm:ss"

00:00:40 #1668 [Verbose] > #else

00:00:40 #1669 [Verbose] >                 "HH:mm:ss"

00:00:40 #1670 [Verbose] > #endif

00:00:40 #1671 [Verbose] >                 |> dateTime.ToString

00:00:40 #1672 [Verbose] > #endif

00:00:40 #1673 [Verbose] >         $"{time} #{traceCount} [[%A{level}]] %s{fn ()} / %s{getLocals ()}"

00:00:40 #1674 [Verbose] >         |> SpiralSm.trim_start [[||]]

00:00:40 #1675 [Verbose] >         |> SpiralSm.trim_end [[| ' '; '/' |]]

00:00:40 #1676 [Verbose] >     |> traceRaw level

00:00:40 #1677 [Verbose] >

00:00:40 #1678 [Verbose] > let inline withTrace enabled fn =

00:00:40 #1679 [Verbose] >     let oldTraceEnabled = traceEnabled

00:00:40 #1680 [Verbose] >     try

00:00:40 #1681 [Verbose] >         traceEnabled <- enabled

00:00:40 #1682 [Verbose] >         fn ()

00:00:40 #1683 [Verbose] >     finally

00:00:40 #1684 [Verbose] >         traceEnabled <- oldTraceEnabled

00:00:40 #1685 [Verbose] >

00:00:40 #1686 [Verbose] > let inline withTraceEnabled fn =

00:00:40 #1687 [Verbose] >     withTrace true fn

00:00:40 #1688 [Verbose] >

00:00:40 #1689 [Verbose] > let inline withTraceDisabled fn =

00:00:40 #1690 [Verbose] >     withTrace false fn

00:00:40 #1691 [Verbose] >

00:00:40 #1692 [Verbose] > let inline withTraceLevel level fn =

00:00:40 #1693 [Verbose] >     let oldTraceLevel = traceLevel

00:00:40 #1694 [Verbose] >     try

00:00:40 #1695 [Verbose] >         traceLevel <- level

00:00:40 #1696 [Verbose] >         fn ()

00:00:40 #1697 [Verbose] >     finally

00:00:40 #1698 [Verbose] >         traceLevel <- oldTraceLevel

00:00:40 #1699 [Verbose] >

00:00:40 #1700 [Verbose] > let inline withTraceDump dump fn =

00:00:40 #1701 [Verbose] >     let oldTraceDump = traceDump

00:00:40 #1702 [Verbose] >     try

00:00:40 #1703 [Verbose] >         traceDump <- dump

00:00:40 #1704 [Verbose] >         fn ()

00:00:40 #1705 [Verbose] >     finally

00:00:40 #1706 [Verbose] >         traceDump <- oldTraceDump

00:00:40 #1707 [Verbose] >

00:00:40 #1708 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:40 #1709 [Verbose] > //// test

00:00:40 #1710 [Verbose] >

00:00:40 #1711 [Verbose] > trace Debug (fun () -> "test") getLocals

00:00:40 #1712 [Verbose] >

00:00:40 #1713 [Verbose] > ╭─[ 28.74ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:40 #1714 [Verbose] > │ 00:00:00 #2 [Debug] test                                                     │

00:00:40 #1715 [Verbose] > │                                                                              │

00:00:40 #1716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #1717 [Verbose] > [NbConvertApp] Converting notebook Common.dib.ipynb to html

00:00:42 #1718 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:42 #1719 [Verbose] >   validate(nb)

00:00:43 #1720 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:43 #1721 [Verbose] >   return _pygments_highlight(

00:00:43 #1722 [Verbose] > [NbConvertApp] Writing 294787 bytes to Common.dib.html

00:00:44 #1723 [Debug] executeAsync / exitCode: 0 / output.Length: 14717

00:00:44 #1724 [Debug] main / executeCommand / exitCode: 0

00:00:44 #1725 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 CommonFSharp.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:46 #1726 [Verbose] >

00:00:46 #1727 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:46 #1728 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:46 #1729 [Verbose] > │ # CommonFSharp (Polyglot)                                                    │

00:00:46 #1730 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:46 #1731 [Verbose] >

00:00:46 #1732 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:46 #1733 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:00:46 #1734 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:00:46 #1735 [Verbose] >

00:00:46 #1736 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:46 #1737 [Verbose] > #r

00:00:46 #1738 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:00:46 #1739 [Verbose] > spNetCore.Html.Abstractions.dll"

00:00:46 #1740 [Verbose] > #r

00:00:46 #1741 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:46 #1742 [Verbose] > otNet.Interactive.dll"

00:00:46 #1743 [Verbose] > #r

00:00:46 #1744 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:46 #1745 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:46 #1746 [Verbose] > #r

00:00:46 #1747 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:46 #1748 [Verbose] > otNet.Interactive.Formatting.dll"

00:00:46 #1749 [Verbose] > open System

00:00:46 #1750 [Verbose] > open System.IO

00:00:46 #1751 [Verbose] > open System.Text

00:00:46 #1752 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:00:49 #1753 [Verbose] >

00:00:49 #1754 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:49 #1755 [Verbose] > #r

00:00:49 #1756 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:49 #1757 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:49 #1758 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:00:49 #1759 [Verbose] > #r

00:00:49 #1760 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:49 #1761 [Verbose] > otNet.Interactive.dll"

00:00:49 #1762 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:00:49 #1763 [Verbose] >

00:00:49 #1764 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:49 #1765 [Verbose] > //// test

00:00:49 #1766 [Verbose] >

00:00:49 #1767 [Verbose] > Formatter.ListExpansionLimit <- 100

00:00:50 #1768 [Verbose] >

00:00:50 #1769 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:50 #1770 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:00:50 #1771 [Verbose] >

00:00:50 #1772 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:50 #1773 [Verbose] > //// test

00:00:50 #1774 [Verbose] >

00:00:50 #1775 [Verbose] > type AssertExceptionFormatter (ex) =

00:00:50 #1776 [Verbose] >     member _.Text =

00:00:50 #1777 [Verbose] >         ex.ToString()

00:00:50 #1778 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:00:50 #1779 [Verbose] >             .Replace("36m", "</span>")

00:00:50 #1780 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:00:50 #1781 [Verbose] >             .Replace("\n", "<br/>\n")

00:00:50 #1782 [Verbose] >

00:00:50 #1783 [Verbose] >

00:00:50 #1784 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:00:50 #1785 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:00:51 #1786 [Verbose] >

00:00:51 #1787 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:51 #1788 [Verbose] > //// test

00:00:51 #1789 [Verbose] >

00:00:51 #1790 [Verbose] > let inline __expect fn log expected actual =

00:00:51 #1791 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:00:51 #1792 [Verbose] >     try

00:00:51 #1793 [Verbose] >         "Testing.__expect" |> fn actual expected

00:00:51 #1794 [Verbose] >     with :? Expecto.AssertException as ex ->

00:00:51 #1795 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:00:51 #1796 [Verbose] >         failwith (ex.GetType().FullName)

00:00:51 #1797 [Verbose] >

00:00:51 #1798 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:00:51 #1799 [Verbose] > expected actual

00:00:51 #1800 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:00:51 #1801 [Verbose] >

00:00:51 #1802 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:00:51 #1803 [Verbose] > expected actual

00:00:51 #1804 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:00:51 #1805 [Verbose] >

00:00:51 #1806 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:00:51 #1807 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:00:51 #1808 [Verbose] >

00:00:51 #1809 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:51 #1810 [Verbose] > //// test

00:00:51 #1811 [Verbose] >

00:00:51 #1812 [Verbose] > let inline __isBetween log a b actual =

00:00:51 #1813 [Verbose] >     let inline isBetween actual (a, b) _ =

00:00:51 #1814 [Verbose] >         __isGreaterThanOrEqual log a actual

00:00:51 #1815 [Verbose] >         __isLessThanOrEqual log b actual

00:00:51 #1816 [Verbose] >     __expect isBetween log (a, b) actual

00:00:51 #1817 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:00:51 #1818 [Verbose] >

00:00:51 #1819 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:51 #1820 [Verbose] > #!import ../../lib/spiral/common.fsx

00:00:51 #1821 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:00:51 #1822 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:00:51 #1823 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:00:51 #1824 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:00:51 #1825 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:00:51 #1826 [Verbose] >

00:00:51 #1827 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:51 #1828 [Verbose] > type [[<Struct>]] US0 =

00:00:51 #1829 [Verbose] >     | US0_0

00:00:51 #1830 [Verbose] >     | US0_1

00:00:51 #1831 [Verbose] >     | US0_2

00:00:51 #1832 [Verbose] >     | US0_3

00:00:51 #1833 [Verbose] > and [[<Struct>]] US1 =

00:00:51 #1834 [Verbose] >     | US1_0 of f0_0 : US0

00:00:51 #1835 [Verbose] >     | US1_1 of f1_0 : US0

00:00:51 #1836 [Verbose] > and [[<Struct>]] US2 =

00:00:51 #1837 [Verbose] >     | US2_0

00:00:51 #1838 [Verbose] >     | US2_1

00:00:51 #1839 [Verbose] > and [[<Struct>]] US3 =

00:00:51 #1840 [Verbose] >     | US3_0 of f0_0 : US2

00:00:51 #1841 [Verbose] >     | US3_1

00:00:51 #1842 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:00:51 #1843 [Verbose] >     let v1 : System.IDisposable option = None

00:00:51 #1844 [Verbose] >     let mutable _v1 = v1

00:00:51 #1845 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:00:51 #1846 [Verbose] >     let v2 : US0 = US0_0

00:00:51 #1847 [Verbose] >     let v3 : US1 = US1_0(v2)

00:00:51 #1848 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:00:51 #1849 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:00:51 #1850 [Verbose] >     v5

00:00:51 #1851 [Verbose] >     #endif

00:00:51 #1852 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:00:51 #1853 [Verbose] >     let v6 : US0 = US0_2

00:00:51 #1854 [Verbose] >     let v7 : US1 = US1_0(v6)

00:00:51 #1855 [Verbose] >     let v8 : string = $"new_dispos...

00:00:52 #1856 [Verbose] >

00:00:52 #1857 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:52 #1858 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:00:52 #1859 [Verbose] > and Mut1 = {mutable l0 : int32}

00:00:52 #1860 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:00:52 #1861 [Verbose] >     let v2 : bool = v1.Contains v0

00:00:52 #1862 [Verbose] >     v2

00:00:52 #1863 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:00:52 #1864 [Verbose] >     closure1(v0)

00:00:52 #1865 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:00:52 #1866 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:00:52 #1867 [Verbose] >     v2

00:00:52 #1868 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:00:52 #1869 [Verbose] >     closure3(v0)

00:00:52 #1870 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:00:52 #1871 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:00:52 #1872 [Verbose] >     v3

00:00:52 #1873 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:00:52 #1874 [Verbose] >     closure6(v0, v1)

00:00:52 #1875 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:00:52 #1876 [Verbose] >     closure5(v0)

00:00:52 #1877 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:00:52 #1878 [Verbose] >     let v2 : stri...

00:00:52 #1879 [Verbose] >

00:00:52 #1880 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:52 #1881 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:00:52 #1882 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:00:52 #1883 [Verbose] >     let v3 : string = v2 v0

00:00:52 #1884 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:00:52 #1885 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:00:52 #1886 [Verbose] >     v5

00:00:52 #1887 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:00:52 #1888 [Verbose] >     closure1(v0)

00:00:52 #1889 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:00:52 #1890 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:00:52 #1891 [Verbose] >     v3

00:00:52 #1892 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:00:52 #1893 [Verbose] >     closure5(v0, v1)

00:00:52 #1894 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:00:52 #1895 [Verbose] >     closure4(v0)

00:00:52 #1896 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:00:52 #1897 [Verbose] >     closure3()

00:00:52 #1898 [Verbose] > and closure2 (...

00:00:52 #1899 [Verbose] >

00:00:52 #1900 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:52 #1901 [Verbose] > #if FABLE_COMPILER // file_system.types

00:00:52 #1902 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:00:52 #1903 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:00:52 #1904 [Verbose] > base64_DecodeError = class end

00:00:52 #1905 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:00:52 #1906 [Verbose] > = class end

00:00:52 #1907 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:00:52 #1908 [Verbose] > = class end

00:00:52 #1909 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:00:52 #1910 [Verbose] > serde_json_Error = class end

00:00:52 #1911 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:00:52 #1912 [Verbose] > serde_json_Value = class end

00:00:52 #1913 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:00:52 #1914 [Verbose] > serde_wasm_bindgen_Error = class end

00:00:52 #1915 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:00:52 #1916 [Verbose] >

00:00:52 #1917 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:52 #1918 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:00:52 #1919 [Verbose] > module SpiralDateTime =

00:00:52 #1920 [Verbose] >     let format x =

00:00:52 #1921 [Verbose] > #if !INTERACTIVE

00:00:52 #1922 [Verbose] >         Date_time.format x

00:00:52 #1923 [Verbose] > #else

00:00:52 #1924 [Verbose] >         format x

00:00:52 #1925 [Verbose] > #endif

00:00:52 #1926 [Verbose] >

00:00:52 #1927 [Verbose] >     let format_iso8601 x =

00:00:52 #1928 [Verbose] > #if !INTERACTIVE

00:00:52 #1929 [Verbose] >         Date_time.format_iso8601 x

00:00:52 #1930 [Verbose] > #else

00:00:52 #1931 [Verbose] >         format_iso8601 x

00:00:52 #1932 [Verbose] > #endif

00:00:52 #1933 [Verbose] >

00:00:52 #1934 [Verbose] >     let new_guid_from_date_time x =

00:00:52 #1935 [Verbose] > #if !INTERACTIVE

00:00:52 #1936 [Verbose] >         Date_time.new_guid_from_date_time x

00:00:52 #1937 [Verbose] > #else

00:00:52 #1938 [Verbose] >         new_guid_from_date_time x

00:00:52 #1939 [Verbose] > #endif

00:00:52 #1940 [Verbose] >

00:00:52 #1941 [Verbose] > #endif

00:00:52 #1942 [Verbose] >

00:00:52 #1943 [Verbose] > module SpiralSm =

00:00:52 #1944 [Verbose] >     let concat x =

00:00:52 #1945 [Verbose] > #if !INTERACTIVE

00:00:52 #1946 [Verbose] >         Sm.concat x

00:00:52 #1947 [Verbose] > #else

00:00:52 #1948 [Verbose] >         concat x

00:00:52 #1949 [Verbose] > #endif

00:00:52 #1950 [Verbose] >

00:00:52 #1951 [Verbose] >     let contains x =

00:00:52 #1952 [Verbose] > #if !INTERACTIVE

00:00:52 #1953 [Verbose] >         Sm.contains x

00:00:52 #1954 [Verbose] > #else

00:00:52 #1955 [Verbose] >         contains x

00:00:52 #1956 [Verbose] > #endif

00:00:52 #1957 [Verbose] >

00:00:52 #1958 [Verbose] >     let ellipsis x =

00:00:52 #1959 [Verbose] > #if !INTERACTIVE

00:00:52 #1960 [Verbose] >         Sm.ellipsis x

00:00:52 #1961 [Verbose] > #else

00:00:52 #1962 [Verbose] >         ellipsis x

00:00:52 #1963 [Verbose] > #endif

00:00:52 #1964 [Verbose] >

00:00:52 #1965 [Verbose] >     let ellipsis_end x =

00:00:52 #1966 [Verbose] > #if...

00:00:53 #1967 [Verbose] >

00:00:53 #1968 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:53 #1969 [Verbose] > #if !INTERACTIVE

00:00:53 #1970 [Verbose] > namespace Polyglot

00:00:53 #1971 [Verbose] > #endif

00:00:53 #1972 [Verbose] >

00:00:53 #1973 [Verbose] > module Common =

00:00:53 #1974 [Verbose] >

00:00:53 #1975 [Verbose] > #if !INTERACTIVE

00:00:53 #1976 [Verbose] >     open Lib

00:00:53 #1977 [Verbose] > #endif

00:00:53 #1978 [Verbose] >

00:00:53 #1979 [Verbose] >     let nl = System.Environment.NewLine

00:00:53 #1980 [Verbose] >     let q = @""""

00:00:53 #1981 [Verbose] >

00:00:53 #1982 [Verbose] >     let inline cons head tail = head :: tail

00:00:53 #1983 [Verbose] >

00:00:53 #1984 [Verbose] >     /// ## memoize

00:00:53 #1985 [Verbose] >

00:00:53 #1986 [Verbose] >     let inline memoize fn =

00:00:53 #1987 [Verbose] >         let result = lazy fn ()

00:00:53 #1988 [Verbose] >         fun () -> result.Value

00:00:53 #1989 [Verbose] >

00:00:53 #1990 [Verbose] >     /// ## TraceLevel

00:00:53 #1991 [Verbose] >

00:00:53 #1992 [Verbose] >     type TraceLevel =

00:00:53 #1993 [Verbose] >         | Verbose

00:00:53 #1994 [Verbose] >         | Debug

00:00:53 #1995 [Verbose] >         | Info

00:00:53 #1996 [Verbose] >         | Warning

00:00:53 #1997 [Verbose] >         | Critical

00:00:53 #1998 [Verbose] >

00:00:53 #1999 [Verbose] >     let inline getLocals () = ""

00:00:53 #2000 [Verbose] >

00:00:53 #2001 [Verbose] >     let mutable traceEnabled = true

00:00:53 #2002 [Verbose] >     let mutable traceCount = 0

00:00:53 #2003 [Verbose] >     let mutable traceLevel = Verbose

00:00:53 #2004 [Verbose] >     let mutable traceDump = false

00:00:53 #2005 [Verbose] >

00:00:53 #2006 [Verbose] >     let testTraceLevel level =

00:00:53 #2007 [Verbose] >         traceEnabled && level >= traceLevel

00:00:53 #2008 [Verbose] >

00:00:53 #2009 [Verbose] >     /// ## traceRaw

00:00:53 #2010 [Verbose] >

00:00:53 #2011 [Verbose] >     let rec traceRaw level fn =

00:00:53 #2012 [Verbose] > ...

00:00:53 #2013 [Verbose] >

00:00:53 #2014 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:53 #2015 [Verbose] > open Common

00:00:53 #2016 [Verbose] >

00:00:53 #2017 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:53 #2018 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:53 #2019 [Verbose] > │ ## getUnionCaseName                                                          │

00:00:53 #2020 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #2021 [Verbose] >

00:00:53 #2022 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:53 #2023 [Verbose] > let inline getUnionCaseName<'T> (x: 'T) =

00:00:53 #2024 [Verbose] >     match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

00:00:53 #2025 [Verbose] >     | case, _ -> case.Name

00:00:53 #2026 [Verbose] >

00:00:53 #2027 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:53 #2028 [Verbose] > //// test

00:00:53 #2029 [Verbose] >

00:00:53 #2030 [Verbose] > TraceLevel.Critical

00:00:53 #2031 [Verbose] > |> getUnionCaseName

00:00:53 #2032 [Verbose] > |> _assertEqual (nameof TraceLevel.Critical)

00:00:53 #2033 [Verbose] >

00:00:53 #2034 [Verbose] > ╭─[ 52.73ms - stdout ]─────────────────────────────────────────────────────────╮

00:00:53 #2035 [Verbose] > │ Critical                                                                     │

00:00:53 #2036 [Verbose] > │                                                                              │

00:00:53 #2037 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:54 #2038 [Verbose] > [NbConvertApp] Converting notebook CommonFSharp.dib.ipynb to html

00:00:54 #2039 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:54 #2040 [Verbose] >   validate(nb)

00:00:55 #2041 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:55 #2042 [Verbose] >   return _pygments_highlight(

00:00:55 #2043 [Verbose] > [NbConvertApp] Writing 275894 bytes to CommonFSharp.dib.html

00:00:56 #2044 [Debug] executeAsync / exitCode: 0 / output.Length: 10757

00:00:56 #2045 [Debug] main / executeCommand / exitCode: 0

00:00:56 #2046 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Threading.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:58 #2047 [Verbose] >

00:00:58 #2048 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:58 #2049 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:58 #2050 [Verbose] > │ # Threading (Polyglot)                                                       │

00:00:58 #2051 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:58 #2052 [Verbose] >

00:00:58 #2053 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:58 #2054 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:00:58 #2055 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:00:58 #2056 [Verbose] >

00:00:58 #2057 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:58 #2058 [Verbose] > #r

00:00:58 #2059 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:00:58 #2060 [Verbose] > spNetCore.Html.Abstractions.dll"

00:00:58 #2061 [Verbose] > #r

00:00:58 #2062 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:58 #2063 [Verbose] > otNet.Interactive.dll"

00:00:58 #2064 [Verbose] > #r

00:00:58 #2065 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:58 #2066 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:58 #2067 [Verbose] > #r

00:00:58 #2068 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:58 #2069 [Verbose] > otNet.Interactive.Formatting.dll"

00:00:58 #2070 [Verbose] > open System

00:00:58 #2071 [Verbose] > open System.IO

00:00:58 #2072 [Verbose] > open System.Text

00:00:58 #2073 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:01:02 #2074 [Verbose] >

00:01:02 #2075 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:02 #2076 [Verbose] > #r

00:01:02 #2077 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:02 #2078 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:02 #2079 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:01:02 #2080 [Verbose] > #r

00:01:02 #2081 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:02 #2082 [Verbose] > otNet.Interactive.dll"

00:01:02 #2083 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:01:02 #2084 [Verbose] >

00:01:02 #2085 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:02 #2086 [Verbose] > //// test

00:01:02 #2087 [Verbose] >

00:01:02 #2088 [Verbose] > Formatter.ListExpansionLimit <- 100

00:01:02 #2089 [Verbose] >

00:01:02 #2090 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:02 #2091 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:01:02 #2092 [Verbose] >

00:01:02 #2093 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:02 #2094 [Verbose] > //// test

00:01:02 #2095 [Verbose] >

00:01:02 #2096 [Verbose] > type AssertExceptionFormatter (ex) =

00:01:02 #2097 [Verbose] >     member _.Text =

00:01:02 #2098 [Verbose] >         ex.ToString()

00:01:02 #2099 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:01:02 #2100 [Verbose] >             .Replace("36m", "</span>")

00:01:02 #2101 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:01:02 #2102 [Verbose] >             .Replace("\n", "<br/>\n")

00:01:02 #2103 [Verbose] >

00:01:02 #2104 [Verbose] >

00:01:02 #2105 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:01:02 #2106 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:01:03 #2107 [Verbose] >

00:01:03 #2108 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:03 #2109 [Verbose] > //// test

00:01:03 #2110 [Verbose] >

00:01:03 #2111 [Verbose] > let inline __expect fn log expected actual =

00:01:03 #2112 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:01:03 #2113 [Verbose] >     try

00:01:03 #2114 [Verbose] >         "Testing.__expect" |> fn actual expected

00:01:03 #2115 [Verbose] >     with :? Expecto.AssertException as ex ->

00:01:03 #2116 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:01:03 #2117 [Verbose] >         failwith (ex.GetType().FullName)

00:01:03 #2118 [Verbose] >

00:01:03 #2119 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:01:03 #2120 [Verbose] > expected actual

00:01:03 #2121 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:01:03 #2122 [Verbose] >

00:01:03 #2123 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:01:03 #2124 [Verbose] > expected actual

00:01:03 #2125 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:01:03 #2126 [Verbose] >

00:01:03 #2127 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:01:03 #2128 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:01:03 #2129 [Verbose] >

00:01:03 #2130 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:03 #2131 [Verbose] > //// test

00:01:03 #2132 [Verbose] >

00:01:03 #2133 [Verbose] > let inline __isBetween log a b actual =

00:01:03 #2134 [Verbose] >     let inline isBetween actual (a, b) _ =

00:01:03 #2135 [Verbose] >         __isGreaterThanOrEqual log a actual

00:01:03 #2136 [Verbose] >         __isLessThanOrEqual log b actual

00:01:03 #2137 [Verbose] >     __expect isBetween log (a, b) actual

00:01:03 #2138 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:01:03 #2139 [Verbose] >

00:01:03 #2140 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:03 #2141 [Verbose] > #!import ../../lib/spiral/common.fsx

00:01:03 #2142 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:01:03 #2143 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:01:03 #2144 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:01:03 #2145 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:01:03 #2146 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:01:03 #2147 [Verbose] >

00:01:03 #2148 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:03 #2149 [Verbose] > type [[<Struct>]] US0 =

00:01:03 #2150 [Verbose] >     | US0_0

00:01:03 #2151 [Verbose] >     | US0_1

00:01:03 #2152 [Verbose] >     | US0_2

00:01:03 #2153 [Verbose] >     | US0_3

00:01:03 #2154 [Verbose] > and [[<Struct>]] US1 =

00:01:03 #2155 [Verbose] >     | US1_0 of f0_0 : US0

00:01:03 #2156 [Verbose] >     | US1_1 of f1_0 : US0

00:01:03 #2157 [Verbose] > and [[<Struct>]] US2 =

00:01:03 #2158 [Verbose] >     | US2_0

00:01:03 #2159 [Verbose] >     | US2_1

00:01:03 #2160 [Verbose] > and [[<Struct>]] US3 =

00:01:03 #2161 [Verbose] >     | US3_0 of f0_0 : US2

00:01:03 #2162 [Verbose] >     | US3_1

00:01:03 #2163 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:01:03 #2164 [Verbose] >     let v1 : System.IDisposable option = None

00:01:03 #2165 [Verbose] >     let mutable _v1 = v1

00:01:03 #2166 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:01:03 #2167 [Verbose] >     let v2 : US0 = US0_0

00:01:03 #2168 [Verbose] >     let v3 : US1 = US1_0(v2)

00:01:03 #2169 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:01:03 #2170 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:01:03 #2171 [Verbose] >     v5

00:01:03 #2172 [Verbose] >     #endif

00:01:03 #2173 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:01:03 #2174 [Verbose] >     let v6 : US0 = US0_2

00:01:03 #2175 [Verbose] >     let v7 : US1 = US1_0(v6)

00:01:03 #2176 [Verbose] >     let v8 : string = $"new_dispos...

00:01:04 #2177 [Verbose] >

00:01:04 #2178 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:04 #2179 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:01:04 #2180 [Verbose] > and Mut1 = {mutable l0 : int32}

00:01:04 #2181 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:01:04 #2182 [Verbose] >     let v2 : bool = v1.Contains v0

00:01:04 #2183 [Verbose] >     v2

00:01:04 #2184 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:01:04 #2185 [Verbose] >     closure1(v0)

00:01:04 #2186 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:01:04 #2187 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:01:04 #2188 [Verbose] >     v2

00:01:04 #2189 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:01:04 #2190 [Verbose] >     closure3(v0)

00:01:04 #2191 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:01:04 #2192 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:01:04 #2193 [Verbose] >     v3

00:01:04 #2194 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:01:04 #2195 [Verbose] >     closure6(v0, v1)

00:01:04 #2196 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:01:04 #2197 [Verbose] >     closure5(v0)

00:01:04 #2198 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:01:04 #2199 [Verbose] >     let v2 : stri...

00:01:04 #2200 [Verbose] >

00:01:04 #2201 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:04 #2202 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:01:04 #2203 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:01:04 #2204 [Verbose] >     let v3 : string = v2 v0

00:01:04 #2205 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:01:04 #2206 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:01:04 #2207 [Verbose] >     v5

00:01:04 #2208 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:01:04 #2209 [Verbose] >     closure1(v0)

00:01:04 #2210 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:01:04 #2211 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:01:04 #2212 [Verbose] >     v3

00:01:04 #2213 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:01:04 #2214 [Verbose] >     closure5(v0, v1)

00:01:04 #2215 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:01:04 #2216 [Verbose] >     closure4(v0)

00:01:04 #2217 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:01:04 #2218 [Verbose] >     closure3()

00:01:04 #2219 [Verbose] > and closure2 (...

00:01:05 #2220 [Verbose] >

00:01:05 #2221 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:05 #2222 [Verbose] > #if FABLE_COMPILER // file_system.types

00:01:05 #2223 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:01:05 #2224 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:01:05 #2225 [Verbose] > base64_DecodeError = class end

00:01:05 #2226 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:01:05 #2227 [Verbose] > = class end

00:01:05 #2228 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:01:05 #2229 [Verbose] > = class end

00:01:05 #2230 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:01:05 #2231 [Verbose] > serde_json_Error = class end

00:01:05 #2232 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:01:05 #2233 [Verbose] > serde_json_Value = class end

00:01:05 #2234 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:01:05 #2235 [Verbose] > serde_wasm_bindgen_Error = class end

00:01:05 #2236 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:01:05 #2237 [Verbose] >

00:01:05 #2238 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:05 #2239 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:01:05 #2240 [Verbose] > module SpiralDateTime =

00:01:05 #2241 [Verbose] >     let format x =

00:01:05 #2242 [Verbose] > #if !INTERACTIVE

00:01:05 #2243 [Verbose] >         Date_time.format x

00:01:05 #2244 [Verbose] > #else

00:01:05 #2245 [Verbose] >         format x

00:01:05 #2246 [Verbose] > #endif

00:01:05 #2247 [Verbose] >

00:01:05 #2248 [Verbose] >     let format_iso8601 x =

00:01:05 #2249 [Verbose] > #if !INTERACTIVE

00:01:05 #2250 [Verbose] >         Date_time.format_iso8601 x

00:01:05 #2251 [Verbose] > #else

00:01:05 #2252 [Verbose] >         format_iso8601 x

00:01:05 #2253 [Verbose] > #endif

00:01:05 #2254 [Verbose] >

00:01:05 #2255 [Verbose] >     let new_guid_from_date_time x =

00:01:05 #2256 [Verbose] > #if !INTERACTIVE

00:01:05 #2257 [Verbose] >         Date_time.new_guid_from_date_time x

00:01:05 #2258 [Verbose] > #else

00:01:05 #2259 [Verbose] >         new_guid_from_date_time x

00:01:05 #2260 [Verbose] > #endif

00:01:05 #2261 [Verbose] >

00:01:05 #2262 [Verbose] > #endif

00:01:05 #2263 [Verbose] >

00:01:05 #2264 [Verbose] > module SpiralSm =

00:01:05 #2265 [Verbose] >     let concat x =

00:01:05 #2266 [Verbose] > #if !INTERACTIVE

00:01:05 #2267 [Verbose] >         Sm.concat x

00:01:05 #2268 [Verbose] > #else

00:01:05 #2269 [Verbose] >         concat x

00:01:05 #2270 [Verbose] > #endif

00:01:05 #2271 [Verbose] >

00:01:05 #2272 [Verbose] >     let contains x =

00:01:05 #2273 [Verbose] > #if !INTERACTIVE

00:01:05 #2274 [Verbose] >         Sm.contains x

00:01:05 #2275 [Verbose] > #else

00:01:05 #2276 [Verbose] >         contains x

00:01:05 #2277 [Verbose] > #endif

00:01:05 #2278 [Verbose] >

00:01:05 #2279 [Verbose] >     let ellipsis x =

00:01:05 #2280 [Verbose] > #if !INTERACTIVE

00:01:05 #2281 [Verbose] >         Sm.ellipsis x

00:01:05 #2282 [Verbose] > #else

00:01:05 #2283 [Verbose] >         ellipsis x

00:01:05 #2284 [Verbose] > #endif

00:01:05 #2285 [Verbose] >

00:01:05 #2286 [Verbose] >     let ellipsis_end x =

00:01:05 #2287 [Verbose] > #if...

00:01:05 #2288 [Verbose] >

00:01:05 #2289 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:05 #2290 [Verbose] > #if !INTERACTIVE

00:01:05 #2291 [Verbose] > namespace Polyglot

00:01:05 #2292 [Verbose] > #endif

00:01:05 #2293 [Verbose] >

00:01:05 #2294 [Verbose] > module Common =

00:01:05 #2295 [Verbose] >

00:01:05 #2296 [Verbose] > #if !INTERACTIVE

00:01:05 #2297 [Verbose] >     open Lib

00:01:05 #2298 [Verbose] > #endif

00:01:05 #2299 [Verbose] >

00:01:05 #2300 [Verbose] >     let nl = System.Environment.NewLine

00:01:05 #2301 [Verbose] >     let q = @""""

00:01:05 #2302 [Verbose] >

00:01:05 #2303 [Verbose] >     let inline cons head tail = head :: tail

00:01:05 #2304 [Verbose] >

00:01:05 #2305 [Verbose] >     /// ## memoize

00:01:05 #2306 [Verbose] >

00:01:05 #2307 [Verbose] >     let inline memoize fn =

00:01:05 #2308 [Verbose] >         let result = lazy fn ()

00:01:05 #2309 [Verbose] >         fun () -> result.Value

00:01:05 #2310 [Verbose] >

00:01:05 #2311 [Verbose] >     /// ## TraceLevel

00:01:05 #2312 [Verbose] >

00:01:05 #2313 [Verbose] >     type TraceLevel =

00:01:05 #2314 [Verbose] >         | Verbose

00:01:05 #2315 [Verbose] >         | Debug

00:01:05 #2316 [Verbose] >         | Info

00:01:05 #2317 [Verbose] >         | Warning

00:01:05 #2318 [Verbose] >         | Critical

00:01:05 #2319 [Verbose] >

00:01:05 #2320 [Verbose] >     let inline getLocals () = ""

00:01:05 #2321 [Verbose] >

00:01:05 #2322 [Verbose] >     let mutable traceEnabled = true

00:01:05 #2323 [Verbose] >     let mutable traceCount = 0

00:01:05 #2324 [Verbose] >     let mutable traceLevel = Verbose

00:01:05 #2325 [Verbose] >     let mutable traceDump = false

00:01:05 #2326 [Verbose] >

00:01:05 #2327 [Verbose] >     let testTraceLevel level =

00:01:05 #2328 [Verbose] >         traceEnabled && level >= traceLevel

00:01:05 #2329 [Verbose] >

00:01:05 #2330 [Verbose] >     /// ## traceRaw

00:01:05 #2331 [Verbose] >

00:01:05 #2332 [Verbose] >     let rec traceRaw level fn =

00:01:05 #2333 [Verbose] > ...

00:01:05 #2334 [Verbose] >

00:01:05 #2335 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:05 #2336 [Verbose] > open Common

00:01:05 #2337 [Verbose] >

00:01:05 #2338 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:05 #2339 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:05 #2340 [Verbose] > │ ## newDisposableToken                                                        │

00:01:05 #2341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:05 #2342 [Verbose] >

00:01:05 #2343 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:05 #2344 [Verbose] > let inline newDisposableToken (mergeToken: System.Threading.CancellationToken

00:01:05 #2345 [Verbose] > option) =

00:01:05 #2346 [Verbose] >     let cts = new System.Threading.CancellationTokenSource ()

00:01:05 #2347 [Verbose] >     let cts =

00:01:05 #2348 [Verbose] >         match mergeToken with

00:01:05 #2349 [Verbose] >         | None -> cts

00:01:05 #2350 [Verbose] >         | Some mergeToken ->

00:01:05 #2351 [Verbose] >             System.Threading.CancellationTokenSource.CreateLinkedTokenSource [[|

00:01:05 #2352 [Verbose] > cts.Token; mergeToken |]]

00:01:05 #2353 [Verbose] >     let disposable = new_disposable cts.Cancel

00:01:05 #2354 [Verbose] >     cts.Token, disposable

00:01:05 #2355 [Verbose] >

00:01:05 #2356 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:05 #2357 [Verbose] > //// test

00:01:05 #2358 [Verbose] >

00:01:05 #2359 [Verbose] > let mutable counter = 0

00:01:05 #2360 [Verbose] >

00:01:05 #2361 [Verbose] > let inline run fn =

00:01:05 #2362 [Verbose] >     let token, disposable = newDisposableToken None

00:01:05 #2363 [Verbose] >     use _ = disposable

00:01:05 #2364 [Verbose] >     fn token

00:01:05 #2365 [Verbose] >     async {

00:01:05 #2366 [Verbose] >         fn token

00:01:05 #2367 [Verbose] >     }

00:01:05 #2368 [Verbose] >     |> Async.Start

00:01:05 #2369 [Verbose] >

00:01:05 #2370 [Verbose] > let inline fn (token : System.Threading.CancellationToken) =

00:01:05 #2371 [Verbose] >     counter <- counter + (if token.IsCancellationRequested then 10 else 1)

00:01:05 #2372 [Verbose] >

00:01:05 #2373 [Verbose] > async {

00:01:05 #2374 [Verbose] >     run fn

00:01:05 #2375 [Verbose] >     do! Async.Sleep 10

00:01:05 #2376 [Verbose] >     return counter

00:01:05 #2377 [Verbose] > }

00:01:05 #2378 [Verbose] > |> Async.RunSynchronously

00:01:05 #2379 [Verbose] > |> _assertEqual 11

00:01:05 #2380 [Verbose] >

00:01:05 #2381 [Verbose] > ╭─[ 123.86ms - stdout ]────────────────────────────────────────────────────────╮

00:01:05 #2382 [Verbose] > │ 11                                                                           │

00:01:05 #2383 [Verbose] > │                                                                              │

00:01:05 #2384 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #2385 [Verbose] > [NbConvertApp] Converting notebook Threading.dib.ipynb to html

00:01:07 #2386 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:01:07 #2387 [Verbose] >   validate(nb)

00:01:08 #2388 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:01:08 #2389 [Verbose] >   return _pygments_highlight(

00:01:08 #2390 [Verbose] > [NbConvertApp] Writing 278912 bytes to Threading.dib.html

00:01:09 #2391 [Debug] executeAsync / exitCode: 0 / output.Length: 11388

00:01:09 #2392 [Debug] main / executeCommand / exitCode: 0

00:01:09 #2393 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Crypto.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:01:11 #2394 [Verbose] >

00:01:11 #2395 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:11 #2396 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:11 #2397 [Verbose] > │ # Crypto (Polyglot)                                                          │

00:01:11 #2398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #2399 [Verbose] >

00:01:11 #2400 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:11 #2401 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:01:11 #2402 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:01:11 #2403 [Verbose] >

00:01:11 #2404 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:11 #2405 [Verbose] > #r

00:01:11 #2406 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:01:11 #2407 [Verbose] > spNetCore.Html.Abstractions.dll"

00:01:11 #2408 [Verbose] > #r

00:01:11 #2409 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:11 #2410 [Verbose] > otNet.Interactive.dll"

00:01:11 #2411 [Verbose] > #r

00:01:11 #2412 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:11 #2413 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:11 #2414 [Verbose] > #r

00:01:11 #2415 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:11 #2416 [Verbose] > otNet.Interactive.Formatting.dll"

00:01:11 #2417 [Verbose] > open System

00:01:11 #2418 [Verbose] > open System.IO

00:01:11 #2419 [Verbose] > open System.Text

00:01:11 #2420 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:01:15 #2421 [Verbose] >

00:01:15 #2422 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:15 #2423 [Verbose] > #r

00:01:15 #2424 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:15 #2425 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:15 #2426 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:01:15 #2427 [Verbose] > #r

00:01:15 #2428 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:15 #2429 [Verbose] > otNet.Interactive.dll"

00:01:15 #2430 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:01:15 #2431 [Verbose] >

00:01:15 #2432 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:15 #2433 [Verbose] > //// test

00:01:15 #2434 [Verbose] >

00:01:15 #2435 [Verbose] > Formatter.ListExpansionLimit <- 100

00:01:15 #2436 [Verbose] >

00:01:15 #2437 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:15 #2438 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:01:15 #2439 [Verbose] >

00:01:15 #2440 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:15 #2441 [Verbose] > //// test

00:01:15 #2442 [Verbose] >

00:01:15 #2443 [Verbose] > type AssertExceptionFormatter (ex) =

00:01:15 #2444 [Verbose] >     member _.Text =

00:01:15 #2445 [Verbose] >         ex.ToString()

00:01:15 #2446 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:01:15 #2447 [Verbose] >             .Replace("36m", "</span>")

00:01:15 #2448 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:01:15 #2449 [Verbose] >             .Replace("\n", "<br/>\n")

00:01:15 #2450 [Verbose] >

00:01:15 #2451 [Verbose] >

00:01:15 #2452 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:01:15 #2453 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:01:16 #2454 [Verbose] >

00:01:16 #2455 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:16 #2456 [Verbose] > //// test

00:01:16 #2457 [Verbose] >

00:01:16 #2458 [Verbose] > let inline __expect fn log expected actual =

00:01:16 #2459 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:01:16 #2460 [Verbose] >     try

00:01:16 #2461 [Verbose] >         "Testing.__expect" |> fn actual expected

00:01:16 #2462 [Verbose] >     with :? Expecto.AssertException as ex ->

00:01:16 #2463 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:01:16 #2464 [Verbose] >         failwith (ex.GetType().FullName)

00:01:16 #2465 [Verbose] >

00:01:16 #2466 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:01:16 #2467 [Verbose] > expected actual

00:01:16 #2468 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:01:16 #2469 [Verbose] >

00:01:16 #2470 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:01:16 #2471 [Verbose] > expected actual

00:01:16 #2472 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:01:16 #2473 [Verbose] >

00:01:16 #2474 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:01:16 #2475 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:01:16 #2476 [Verbose] >

00:01:16 #2477 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:16 #2478 [Verbose] > //// test

00:01:16 #2479 [Verbose] >

00:01:16 #2480 [Verbose] > let inline __isBetween log a b actual =

00:01:16 #2481 [Verbose] >     let inline isBetween actual (a, b) _ =

00:01:16 #2482 [Verbose] >         __isGreaterThanOrEqual log a actual

00:01:16 #2483 [Verbose] >         __isLessThanOrEqual log b actual

00:01:16 #2484 [Verbose] >     __expect isBetween log (a, b) actual

00:01:16 #2485 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:01:16 #2486 [Verbose] >

00:01:16 #2487 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:16 #2488 [Verbose] > #!import ../../lib/spiral/common.fsx

00:01:16 #2489 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:01:16 #2490 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:01:16 #2491 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:01:16 #2492 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:01:16 #2493 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:01:16 #2494 [Verbose] >

00:01:16 #2495 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:16 #2496 [Verbose] > type [[<Struct>]] US0 =

00:01:16 #2497 [Verbose] >     | US0_0

00:01:16 #2498 [Verbose] >     | US0_1

00:01:16 #2499 [Verbose] >     | US0_2

00:01:16 #2500 [Verbose] >     | US0_3

00:01:16 #2501 [Verbose] > and [[<Struct>]] US1 =

00:01:16 #2502 [Verbose] >     | US1_0 of f0_0 : US0

00:01:16 #2503 [Verbose] >     | US1_1 of f1_0 : US0

00:01:16 #2504 [Verbose] > and [[<Struct>]] US2 =

00:01:16 #2505 [Verbose] >     | US2_0

00:01:16 #2506 [Verbose] >     | US2_1

00:01:16 #2507 [Verbose] > and [[<Struct>]] US3 =

00:01:16 #2508 [Verbose] >     | US3_0 of f0_0 : US2

00:01:16 #2509 [Verbose] >     | US3_1

00:01:16 #2510 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:01:16 #2511 [Verbose] >     let v1 : System.IDisposable option = None

00:01:16 #2512 [Verbose] >     let mutable _v1 = v1

00:01:16 #2513 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:01:16 #2514 [Verbose] >     let v2 : US0 = US0_0

00:01:16 #2515 [Verbose] >     let v3 : US1 = US1_0(v2)

00:01:16 #2516 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:01:16 #2517 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:01:16 #2518 [Verbose] >     v5

00:01:16 #2519 [Verbose] >     #endif

00:01:16 #2520 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:01:16 #2521 [Verbose] >     let v6 : US0 = US0_2

00:01:16 #2522 [Verbose] >     let v7 : US1 = US1_0(v6)

00:01:16 #2523 [Verbose] >     let v8 : string = $"new_dispos...

00:01:17 #2524 [Verbose] >

00:01:17 #2525 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:17 #2526 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:01:17 #2527 [Verbose] > and Mut1 = {mutable l0 : int32}

00:01:17 #2528 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:01:17 #2529 [Verbose] >     let v2 : bool = v1.Contains v0

00:01:17 #2530 [Verbose] >     v2

00:01:17 #2531 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:01:17 #2532 [Verbose] >     closure1(v0)

00:01:17 #2533 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:01:17 #2534 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:01:17 #2535 [Verbose] >     v2

00:01:17 #2536 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:01:17 #2537 [Verbose] >     closure3(v0)

00:01:17 #2538 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:01:17 #2539 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:01:17 #2540 [Verbose] >     v3

00:01:17 #2541 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:01:17 #2542 [Verbose] >     closure6(v0, v1)

00:01:17 #2543 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:01:17 #2544 [Verbose] >     closure5(v0)

00:01:17 #2545 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:01:17 #2546 [Verbose] >     let v2 : stri...

00:01:17 #2547 [Verbose] >

00:01:17 #2548 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:17 #2549 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:01:17 #2550 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:01:17 #2551 [Verbose] >     let v3 : string = v2 v0

00:01:17 #2552 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:01:17 #2553 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:01:17 #2554 [Verbose] >     v5

00:01:17 #2555 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:01:17 #2556 [Verbose] >     closure1(v0)

00:01:17 #2557 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:01:17 #2558 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:01:17 #2559 [Verbose] >     v3

00:01:17 #2560 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:01:17 #2561 [Verbose] >     closure5(v0, v1)

00:01:17 #2562 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:01:17 #2563 [Verbose] >     closure4(v0)

00:01:17 #2564 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:01:17 #2565 [Verbose] >     closure3()

00:01:17 #2566 [Verbose] > and closure2 (...

00:01:18 #2567 [Verbose] >

00:01:18 #2568 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:18 #2569 [Verbose] > #if FABLE_COMPILER // file_system.types

00:01:18 #2570 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:01:18 #2571 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:01:18 #2572 [Verbose] > base64_DecodeError = class end

00:01:18 #2573 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:01:18 #2574 [Verbose] > = class end

00:01:18 #2575 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:01:18 #2576 [Verbose] > = class end

00:01:18 #2577 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:01:18 #2578 [Verbose] > serde_json_Error = class end

00:01:18 #2579 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:01:18 #2580 [Verbose] > serde_json_Value = class end

00:01:18 #2581 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:01:18 #2582 [Verbose] > serde_wasm_bindgen_Error = class end

00:01:18 #2583 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:01:18 #2584 [Verbose] >

00:01:18 #2585 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:18 #2586 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:01:18 #2587 [Verbose] > module SpiralDateTime =

00:01:18 #2588 [Verbose] >     let format x =

00:01:18 #2589 [Verbose] > #if !INTERACTIVE

00:01:18 #2590 [Verbose] >         Date_time.format x

00:01:18 #2591 [Verbose] > #else

00:01:18 #2592 [Verbose] >         format x

00:01:18 #2593 [Verbose] > #endif

00:01:18 #2594 [Verbose] >

00:01:18 #2595 [Verbose] >     let format_iso8601 x =

00:01:18 #2596 [Verbose] > #if !INTERACTIVE

00:01:18 #2597 [Verbose] >         Date_time.format_iso8601 x

00:01:18 #2598 [Verbose] > #else

00:01:18 #2599 [Verbose] >         format_iso8601 x

00:01:18 #2600 [Verbose] > #endif

00:01:18 #2601 [Verbose] >

00:01:18 #2602 [Verbose] >     let new_guid_from_date_time x =

00:01:18 #2603 [Verbose] > #if !INTERACTIVE

00:01:18 #2604 [Verbose] >         Date_time.new_guid_from_date_time x

00:01:18 #2605 [Verbose] > #else

00:01:18 #2606 [Verbose] >         new_guid_from_date_time x

00:01:18 #2607 [Verbose] > #endif

00:01:18 #2608 [Verbose] >

00:01:18 #2609 [Verbose] > #endif

00:01:18 #2610 [Verbose] >

00:01:18 #2611 [Verbose] > module SpiralSm =

00:01:18 #2612 [Verbose] >     let concat x =

00:01:18 #2613 [Verbose] > #if !INTERACTIVE

00:01:18 #2614 [Verbose] >         Sm.concat x

00:01:18 #2615 [Verbose] > #else

00:01:18 #2616 [Verbose] >         concat x

00:01:18 #2617 [Verbose] > #endif

00:01:18 #2618 [Verbose] >

00:01:18 #2619 [Verbose] >     let contains x =

00:01:18 #2620 [Verbose] > #if !INTERACTIVE

00:01:18 #2621 [Verbose] >         Sm.contains x

00:01:18 #2622 [Verbose] > #else

00:01:18 #2623 [Verbose] >         contains x

00:01:18 #2624 [Verbose] > #endif

00:01:18 #2625 [Verbose] >

00:01:18 #2626 [Verbose] >     let ellipsis x =

00:01:18 #2627 [Verbose] > #if !INTERACTIVE

00:01:18 #2628 [Verbose] >         Sm.ellipsis x

00:01:18 #2629 [Verbose] > #else

00:01:18 #2630 [Verbose] >         ellipsis x

00:01:18 #2631 [Verbose] > #endif

00:01:18 #2632 [Verbose] >

00:01:18 #2633 [Verbose] >     let ellipsis_end x =

00:01:18 #2634 [Verbose] > #if...

00:01:18 #2635 [Verbose] >

00:01:18 #2636 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:18 #2637 [Verbose] > #if !INTERACTIVE

00:01:18 #2638 [Verbose] > namespace Polyglot

00:01:18 #2639 [Verbose] > #endif

00:01:18 #2640 [Verbose] >

00:01:18 #2641 [Verbose] > module Common =

00:01:18 #2642 [Verbose] >

00:01:18 #2643 [Verbose] > #if !INTERACTIVE

00:01:18 #2644 [Verbose] >     open Lib

00:01:18 #2645 [Verbose] > #endif

00:01:18 #2646 [Verbose] >

00:01:18 #2647 [Verbose] >     let nl = System.Environment.NewLine

00:01:18 #2648 [Verbose] >     let q = @""""

00:01:18 #2649 [Verbose] >

00:01:18 #2650 [Verbose] >     let inline cons head tail = head :: tail

00:01:18 #2651 [Verbose] >

00:01:18 #2652 [Verbose] >     /// ## memoize

00:01:18 #2653 [Verbose] >

00:01:18 #2654 [Verbose] >     let inline memoize fn =

00:01:18 #2655 [Verbose] >         let result = lazy fn ()

00:01:18 #2656 [Verbose] >         fun () -> result.Value

00:01:18 #2657 [Verbose] >

00:01:18 #2658 [Verbose] >     /// ## TraceLevel

00:01:18 #2659 [Verbose] >

00:01:18 #2660 [Verbose] >     type TraceLevel =

00:01:18 #2661 [Verbose] >         | Verbose

00:01:18 #2662 [Verbose] >         | Debug

00:01:18 #2663 [Verbose] >         | Info

00:01:18 #2664 [Verbose] >         | Warning

00:01:18 #2665 [Verbose] >         | Critical

00:01:18 #2666 [Verbose] >

00:01:18 #2667 [Verbose] >     let inline getLocals () = ""

00:01:18 #2668 [Verbose] >

00:01:18 #2669 [Verbose] >     let mutable traceEnabled = true

00:01:18 #2670 [Verbose] >     let mutable traceCount = 0

00:01:18 #2671 [Verbose] >     let mutable traceLevel = Verbose

00:01:18 #2672 [Verbose] >     let mutable traceDump = false

00:01:18 #2673 [Verbose] >

00:01:18 #2674 [Verbose] >     let testTraceLevel level =

00:01:18 #2675 [Verbose] >         traceEnabled && level >= traceLevel

00:01:18 #2676 [Verbose] >

00:01:18 #2677 [Verbose] >     /// ## traceRaw

00:01:18 #2678 [Verbose] >

00:01:18 #2679 [Verbose] >     let rec traceRaw level fn =

00:01:18 #2680 [Verbose] > ...

00:01:18 #2681 [Verbose] >

00:01:18 #2682 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:18 #2683 [Verbose] > #if !INTERACTIVE

00:01:18 #2684 [Verbose] > open Lib

00:01:18 #2685 [Verbose] > #endif

00:01:18 #2686 [Verbose] >

00:01:18 #2687 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:18 #2688 [Verbose] > open Common

00:01:18 #2689 [Verbose] >

00:01:18 #2690 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:18 #2691 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:18 #2692 [Verbose] > │ ## hashText                                                                  │

00:01:18 #2693 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:18 #2694 [Verbose] >

00:01:18 #2695 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:18 #2696 [Verbose] > let hashText (input : string) =

00:01:18 #2697 [Verbose] >     use sha256 = System.Security.Cryptography.SHA256.Create ()

00:01:18 #2698 [Verbose] >     input

00:01:18 #2699 [Verbose] >     |> System.Text.Encoding.UTF8.GetBytes

00:01:18 #2700 [Verbose] >     |> sha256.ComputeHash

00:01:18 #2701 [Verbose] >     |> Array.map (fun b -> b.ToString "x2")

00:01:18 #2702 [Verbose] >     |> SpiralSm.concat ""

00:01:18 #2703 [Verbose] >

00:01:18 #2704 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:18 #2705 [Verbose] > //// test

00:01:18 #2706 [Verbose] >

00:01:18 #2707 [Verbose] > ""

00:01:18 #2708 [Verbose] > |> hashText

00:01:18 #2709 [Verbose] > |> _assertEqual

00:01:18 #2710 [Verbose] > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"

00:01:18 #2711 [Verbose] >

00:01:18 #2712 [Verbose] > ╭─[ 46.01ms - stdout ]─────────────────────────────────────────────────────────╮

00:01:18 #2713 [Verbose] > │ e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855             │

00:01:18 #2714 [Verbose] > │                                                                              │

00:01:18 #2715 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:18 #2716 [Verbose] >

00:01:18 #2717 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:18 #2718 [Verbose] > //// test

00:01:18 #2719 [Verbose] >

00:01:18 #2720 [Verbose] > " "

00:01:18 #2721 [Verbose] > |> hashText

00:01:18 #2722 [Verbose] > |> _assertEqual

00:01:18 #2723 [Verbose] > "36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068"

00:01:18 #2724 [Verbose] >

00:01:18 #2725 [Verbose] > ╭─[ 18.01ms - stdout ]─────────────────────────────────────────────────────────╮

00:01:18 #2726 [Verbose] > │ 36a9e7f1c95b82ffb99743e0c5c4ce95d83c9a430aac59f84ef3cbfab6145068             │

00:01:18 #2727 [Verbose] > │                                                                              │

00:01:18 #2728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:20 #2729 [Verbose] > [NbConvertApp] Converting notebook Crypto.dib.ipynb to html

00:01:20 #2730 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:01:20 #2731 [Verbose] >   validate(nb)

00:01:20 #2732 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:01:20 #2733 [Verbose] >   return _pygments_highlight(

00:01:21 #2734 [Verbose] > [NbConvertApp] Writing 278404 bytes to Crypto.dib.html

00:01:21 #2735 [Debug] executeAsync / exitCode: 0 / output.Length: 11498

00:01:21 #2736 [Debug] main / executeCommand / exitCode: 0

00:01:21 #2737 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 FileSystem.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:01:24 #2738 [Verbose] >

00:01:24 #2739 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:24 #2740 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:24 #2741 [Verbose] > │ # FileSystem (Polyglot)                                                      │

00:01:24 #2742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:24 #2743 [Verbose] >

00:01:24 #2744 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:24 #2745 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:01:24 #2746 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:01:24 #2747 [Verbose] >

00:01:24 #2748 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:24 #2749 [Verbose] > #r

00:01:24 #2750 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:01:24 #2751 [Verbose] > spNetCore.Html.Abstractions.dll"

00:01:24 #2752 [Verbose] > #r

00:01:24 #2753 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:24 #2754 [Verbose] > otNet.Interactive.dll"

00:01:24 #2755 [Verbose] > #r

00:01:24 #2756 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:24 #2757 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:24 #2758 [Verbose] > #r

00:01:24 #2759 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:24 #2760 [Verbose] > otNet.Interactive.Formatting.dll"

00:01:24 #2761 [Verbose] > open System

00:01:24 #2762 [Verbose] > open System.IO

00:01:24 #2763 [Verbose] > open System.Text

00:01:24 #2764 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:01:27 #2765 [Verbose] >

00:01:27 #2766 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:27 #2767 [Verbose] > #r

00:01:27 #2768 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:27 #2769 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:27 #2770 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:01:27 #2771 [Verbose] > #r

00:01:27 #2772 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:27 #2773 [Verbose] > otNet.Interactive.dll"

00:01:27 #2774 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:01:27 #2775 [Verbose] >

00:01:27 #2776 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:27 #2777 [Verbose] > //// test

00:01:27 #2778 [Verbose] >

00:01:27 #2779 [Verbose] > Formatter.ListExpansionLimit <- 100

00:01:28 #2780 [Verbose] >

00:01:28 #2781 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:28 #2782 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:01:28 #2783 [Verbose] >

00:01:28 #2784 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:28 #2785 [Verbose] > //// test

00:01:28 #2786 [Verbose] >

00:01:28 #2787 [Verbose] > type AssertExceptionFormatter (ex) =

00:01:28 #2788 [Verbose] >     member _.Text =

00:01:28 #2789 [Verbose] >         ex.ToString()

00:01:28 #2790 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:01:28 #2791 [Verbose] >             .Replace("36m", "</span>")

00:01:28 #2792 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:01:28 #2793 [Verbose] >             .Replace("\n", "<br/>\n")

00:01:28 #2794 [Verbose] >

00:01:28 #2795 [Verbose] >

00:01:28 #2796 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:01:28 #2797 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:01:28 #2798 [Verbose] >

00:01:28 #2799 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:28 #2800 [Verbose] > //// test

00:01:28 #2801 [Verbose] >

00:01:28 #2802 [Verbose] > let inline __expect fn log expected actual =

00:01:28 #2803 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:01:28 #2804 [Verbose] >     try

00:01:28 #2805 [Verbose] >         "Testing.__expect" |> fn actual expected

00:01:28 #2806 [Verbose] >     with :? Expecto.AssertException as ex ->

00:01:28 #2807 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:01:28 #2808 [Verbose] >         failwith (ex.GetType().FullName)

00:01:28 #2809 [Verbose] >

00:01:28 #2810 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:01:28 #2811 [Verbose] > expected actual

00:01:28 #2812 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:01:28 #2813 [Verbose] >

00:01:28 #2814 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:01:28 #2815 [Verbose] > expected actual

00:01:28 #2816 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:01:28 #2817 [Verbose] >

00:01:28 #2818 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:01:28 #2819 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:01:29 #2820 [Verbose] >

00:01:29 #2821 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:29 #2822 [Verbose] > //// test

00:01:29 #2823 [Verbose] >

00:01:29 #2824 [Verbose] > let inline __isBetween log a b actual =

00:01:29 #2825 [Verbose] >     let inline isBetween actual (a, b) _ =

00:01:29 #2826 [Verbose] >         __isGreaterThanOrEqual log a actual

00:01:29 #2827 [Verbose] >         __isLessThanOrEqual log b actual

00:01:29 #2828 [Verbose] >     __expect isBetween log (a, b) actual

00:01:29 #2829 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:01:29 #2830 [Verbose] >

00:01:29 #2831 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:29 #2832 [Verbose] > #r

00:01:29 #2833 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

00:01:29 #2834 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"

00:01:29 #2835 [Verbose] > #r

00:01:29 #2836 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

00:01:29 #2837 [Verbose] > 0/System.Reactive.dll"

00:01:29 #2838 [Verbose] > #r

00:01:29 #2839 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib

00:01:29 #2840 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"

00:01:29 #2841 [Verbose] > #r

00:01:29 #2842 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

00:01:29 #2843 [Verbose] > #r

00:01:29 #2844 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

00:01:29 #2845 [Verbose] > b/net6.0/System.CommandLine.dll"

00:01:29 #2846 [Verbose] >

00:01:29 #2847 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:29 #2848 [Verbose] > #!import ../../lib/spiral/common.fsx

00:01:29 #2849 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:01:29 #2850 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:01:29 #2851 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:01:29 #2852 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:01:29 #2853 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:01:29 #2854 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs

00:01:29 #2855 [Verbose] > #!import ../../lib/fsharp/Async.fs

00:01:29 #2856 [Verbose] > #!import ../../lib/fsharp/AsyncSeq.fs

00:01:29 #2857 [Verbose] > #!import ../../lib/fsharp/Runtime.fs

00:01:29 #2858 [Verbose] >

00:01:29 #2859 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:29 #2860 [Verbose] > type [[<Struct>]] US0 =

00:01:29 #2861 [Verbose] >     | US0_0

00:01:29 #2862 [Verbose] >     | US0_1

00:01:29 #2863 [Verbose] >     | US0_2

00:01:29 #2864 [Verbose] >     | US0_3

00:01:29 #2865 [Verbose] > and [[<Struct>]] US1 =

00:01:29 #2866 [Verbose] >     | US1_0 of f0_0 : US0

00:01:29 #2867 [Verbose] >     | US1_1 of f1_0 : US0

00:01:29 #2868 [Verbose] > and [[<Struct>]] US2 =

00:01:29 #2869 [Verbose] >     | US2_0

00:01:29 #2870 [Verbose] >     | US2_1

00:01:29 #2871 [Verbose] > and [[<Struct>]] US3 =

00:01:29 #2872 [Verbose] >     | US3_0 of f0_0 : US2

00:01:29 #2873 [Verbose] >     | US3_1

00:01:29 #2874 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:01:29 #2875 [Verbose] >     let v1 : System.IDisposable option = None

00:01:29 #2876 [Verbose] >     let mutable _v1 = v1

00:01:29 #2877 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:01:29 #2878 [Verbose] >     let v2 : US0 = US0_0

00:01:29 #2879 [Verbose] >     let v3 : US1 = US1_0(v2)

00:01:29 #2880 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:01:29 #2881 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:01:29 #2882 [Verbose] >     v5

00:01:29 #2883 [Verbose] >     #endif

00:01:29 #2884 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:01:29 #2885 [Verbose] >     let v6 : US0 = US0_2

00:01:29 #2886 [Verbose] >     let v7 : US1 = US1_0(v6)

00:01:29 #2887 [Verbose] >     let v8 : string = $"new_dispos...

00:01:29 #2888 [Verbose] >

00:01:29 #2889 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:29 #2890 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:01:29 #2891 [Verbose] > and Mut1 = {mutable l0 : int32}

00:01:29 #2892 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:01:29 #2893 [Verbose] >     let v2 : bool = v1.Contains v0

00:01:29 #2894 [Verbose] >     v2

00:01:29 #2895 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:01:29 #2896 [Verbose] >     closure1(v0)

00:01:29 #2897 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:01:29 #2898 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:01:29 #2899 [Verbose] >     v2

00:01:29 #2900 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:01:29 #2901 [Verbose] >     closure3(v0)

00:01:29 #2902 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:01:29 #2903 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:01:29 #2904 [Verbose] >     v3

00:01:29 #2905 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:01:29 #2906 [Verbose] >     closure6(v0, v1)

00:01:29 #2907 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:01:29 #2908 [Verbose] >     closure5(v0)

00:01:29 #2909 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:01:29 #2910 [Verbose] >     let v2 : stri...

00:01:30 #2911 [Verbose] >

00:01:30 #2912 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:30 #2913 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:01:30 #2914 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:01:30 #2915 [Verbose] >     let v3 : string = v2 v0

00:01:30 #2916 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:01:30 #2917 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:01:30 #2918 [Verbose] >     v5

00:01:30 #2919 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:01:30 #2920 [Verbose] >     closure1(v0)

00:01:30 #2921 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:01:30 #2922 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:01:30 #2923 [Verbose] >     v3

00:01:30 #2924 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:01:30 #2925 [Verbose] >     closure5(v0, v1)

00:01:30 #2926 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:01:30 #2927 [Verbose] >     closure4(v0)

00:01:30 #2928 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:01:30 #2929 [Verbose] >     closure3()

00:01:30 #2930 [Verbose] > and closure2 (...

00:01:30 #2931 [Verbose] >

00:01:30 #2932 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:30 #2933 [Verbose] > #if FABLE_COMPILER // file_system.types

00:01:30 #2934 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:01:30 #2935 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:01:30 #2936 [Verbose] > base64_DecodeError = class end

00:01:30 #2937 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:01:30 #2938 [Verbose] > = class end

00:01:30 #2939 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:01:30 #2940 [Verbose] > = class end

00:01:30 #2941 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:01:30 #2942 [Verbose] > serde_json_Error = class end

00:01:30 #2943 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:01:30 #2944 [Verbose] > serde_json_Value = class end

00:01:30 #2945 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:01:30 #2946 [Verbose] > serde_wasm_bindgen_Error = class end

00:01:30 #2947 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:01:31 #2948 [Verbose] >

00:01:31 #2949 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:31 #2950 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:01:31 #2951 [Verbose] > module SpiralDateTime =

00:01:31 #2952 [Verbose] >     let format x =

00:01:31 #2953 [Verbose] > #if !INTERACTIVE

00:01:31 #2954 [Verbose] >         Date_time.format x

00:01:31 #2955 [Verbose] > #else

00:01:31 #2956 [Verbose] >         format x

00:01:31 #2957 [Verbose] > #endif

00:01:31 #2958 [Verbose] >

00:01:31 #2959 [Verbose] >     let format_iso8601 x =

00:01:31 #2960 [Verbose] > #if !INTERACTIVE

00:01:31 #2961 [Verbose] >         Date_time.format_iso8601 x

00:01:31 #2962 [Verbose] > #else

00:01:31 #2963 [Verbose] >         format_iso8601 x

00:01:31 #2964 [Verbose] > #endif

00:01:31 #2965 [Verbose] >

00:01:31 #2966 [Verbose] >     let new_guid_from_date_time x =

00:01:31 #2967 [Verbose] > #if !INTERACTIVE

00:01:31 #2968 [Verbose] >         Date_time.new_guid_from_date_time x

00:01:31 #2969 [Verbose] > #else

00:01:31 #2970 [Verbose] >         new_guid_from_date_time x

00:01:31 #2971 [Verbose] > #endif

00:01:31 #2972 [Verbose] >

00:01:31 #2973 [Verbose] > #endif

00:01:31 #2974 [Verbose] >

00:01:31 #2975 [Verbose] > module SpiralSm =

00:01:31 #2976 [Verbose] >     let concat x =

00:01:31 #2977 [Verbose] > #if !INTERACTIVE

00:01:31 #2978 [Verbose] >         Sm.concat x

00:01:31 #2979 [Verbose] > #else

00:01:31 #2980 [Verbose] >         concat x

00:01:31 #2981 [Verbose] > #endif

00:01:31 #2982 [Verbose] >

00:01:31 #2983 [Verbose] >     let contains x =

00:01:31 #2984 [Verbose] > #if !INTERACTIVE

00:01:31 #2985 [Verbose] >         Sm.contains x

00:01:31 #2986 [Verbose] > #else

00:01:31 #2987 [Verbose] >         contains x

00:01:31 #2988 [Verbose] > #endif

00:01:31 #2989 [Verbose] >

00:01:31 #2990 [Verbose] >     let ellipsis x =

00:01:31 #2991 [Verbose] > #if !INTERACTIVE

00:01:31 #2992 [Verbose] >         Sm.ellipsis x

00:01:31 #2993 [Verbose] > #else

00:01:31 #2994 [Verbose] >         ellipsis x

00:01:31 #2995 [Verbose] > #endif

00:01:31 #2996 [Verbose] >

00:01:31 #2997 [Verbose] >     let ellipsis_end x =

00:01:31 #2998 [Verbose] > #if...

00:01:31 #2999 [Verbose] >

00:01:31 #3000 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:31 #3001 [Verbose] > #if !INTERACTIVE

00:01:31 #3002 [Verbose] > namespace Polyglot

00:01:31 #3003 [Verbose] > #endif

00:01:31 #3004 [Verbose] >

00:01:31 #3005 [Verbose] > module Common =

00:01:31 #3006 [Verbose] >

00:01:31 #3007 [Verbose] > #if !INTERACTIVE

00:01:31 #3008 [Verbose] >     open Lib

00:01:31 #3009 [Verbose] > #endif

00:01:31 #3010 [Verbose] >

00:01:31 #3011 [Verbose] >     let nl = System.Environment.NewLine

00:01:31 #3012 [Verbose] >     let q = @""""

00:01:31 #3013 [Verbose] >

00:01:31 #3014 [Verbose] >     let inline cons head tail = head :: tail

00:01:31 #3015 [Verbose] >

00:01:31 #3016 [Verbose] >     /// ## memoize

00:01:31 #3017 [Verbose] >

00:01:31 #3018 [Verbose] >     let inline memoize fn =

00:01:31 #3019 [Verbose] >         let result = lazy fn ()

00:01:31 #3020 [Verbose] >         fun () -> result.Value

00:01:31 #3021 [Verbose] >

00:01:31 #3022 [Verbose] >     /// ## TraceLevel

00:01:31 #3023 [Verbose] >

00:01:31 #3024 [Verbose] >     type TraceLevel =

00:01:31 #3025 [Verbose] >         | Verbose

00:01:31 #3026 [Verbose] >         | Debug

00:01:31 #3027 [Verbose] >         | Info

00:01:31 #3028 [Verbose] >         | Warning

00:01:31 #3029 [Verbose] >         | Critical

00:01:31 #3030 [Verbose] >

00:01:31 #3031 [Verbose] >     let inline getLocals () = ""

00:01:31 #3032 [Verbose] >

00:01:31 #3033 [Verbose] >     let mutable traceEnabled = true

00:01:31 #3034 [Verbose] >     let mutable traceCount = 0

00:01:31 #3035 [Verbose] >     let mutable traceLevel = Verbose

00:01:31 #3036 [Verbose] >     let mutable traceDump = false

00:01:31 #3037 [Verbose] >

00:01:31 #3038 [Verbose] >     let testTraceLevel level =

00:01:31 #3039 [Verbose] >         traceEnabled && level >= traceLevel

00:01:31 #3040 [Verbose] >

00:01:31 #3041 [Verbose] >     /// ## traceRaw

00:01:31 #3042 [Verbose] >

00:01:31 #3043 [Verbose] >     let rec traceRaw level fn =

00:01:31 #3044 [Verbose] > ...

00:01:31 #3045 [Verbose] >

00:01:31 #3046 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:31 #3047 [Verbose] > #if !INTERACTIVE

00:01:31 #3048 [Verbose] > namespace Polyglot

00:01:31 #3049 [Verbose] > #endif

00:01:31 #3050 [Verbose] >

00:01:31 #3051 [Verbose] > module CommonFSharp =

00:01:31 #3052 [Verbose] >

00:01:31 #3053 [Verbose] >     open Common

00:01:31 #3054 [Verbose] >

00:01:31 #3055 [Verbose] >     /// ## getUnionCaseName

00:01:31 #3056 [Verbose] >

00:01:31 #3057 [Verbose] >     let inline getUnionCaseName<'T> (x: 'T) =

00:01:31 #3058 [Verbose] >         match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

00:01:31 #3059 [Verbose] >         | case, _ -> case.Name

00:01:31 #3060 [Verbose] >

00:01:31 #3061 [Verbose] >

00:01:31 #3062 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:31 #3063 [Verbose] > #if !INTERACTIVE

00:01:31 #3064 [Verbose] > namespace Polyglot

00:01:31 #3065 [Verbose] > #endif

00:01:31 #3066 [Verbose] >

00:01:31 #3067 [Verbose] > module Async =

00:01:31 #3068 [Verbose] >

00:01:31 #3069 [Verbose] > #if !INTERACTIVE

00:01:31 #3070 [Verbose] >     open Lib

00:01:31 #3071 [Verbose] > #endif

00:01:31 #3072 [Verbose] >

00:01:31 #3073 [Verbose] >     open Common

00:01:31 #3074 [Verbose] >

00:01:31 #3075 [Verbose] >     /// ## choice

00:01:31 #3076 [Verbose] >

00:01:31 #3077 [Verbose] >     let inline choice asyncs = async {

00:01:31 #3078 [Verbose] >         let e = Event<_> ()

00:01:31 #3079 [Verbose] >         use cts = new System.Threading.CancellationTokenSource ()

00:01:31 #3080 [Verbose] >         let fn =

00:01:31 #3081 [Verbose] >             asyncs

00:01:31 #3082 [Verbose] >             |> Seq.map (fun a -> async {

00:01:31 #3083 [Verbose] >                 let! x = a

00:01:31 #3084 [Verbose] >                 e.Trigger x

00:01:31 #3085 [Verbose] >             })

00:01:31 #3086 [Verbose] >             |> Async.Parallel

00:01:31 #3087 [Verbose] >             |> Async.Ignore

00:01:31 #3088 [Verbose] >         Async.Start (fn, cts.Token)

00:01:31 #3089 [Verbose] >         let! result = Async.AwaitEvent e.Publish

00:01:31 #3090 [Verbose] >         cts.Cancel ()

00:01:31 #3091 [Verbose] >         return result

00:01:31 #3092 [Verbose] >     }

00:01:31 #3093 [Verbose] >

00:01:31 #3094 [Verbose] >     /// ## map

00:01:31 #3095 [Verbose] >

00:01:31 #3096 [Verbose] >     let inline map fn a = async {

00:01:31 #3097 [Verbose] >         let! x = a

00:01:31 #3098 [Verbose] >         return fn x

00:01:31 #3099 [Verbose] >     }

00:01:31 #3100 [Verbose] >

00:01:31 #3101 [Verbose] >     /// ## catch

00:01:31 #3102 [Verbose] >

00:01:31 #3103 [Verbose] >     let inline catch a =

00:01:31 #3104 [Verbose] >    ...

00:01:31 #3105 [Verbose] >

00:01:31 #3106 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:31 #3107 [Verbose] > #if !INTERACTIVE

00:01:31 #3108 [Verbose] > namespace Polyglot

00:01:31 #3109 [Verbose] > #endif

00:01:31 #3110 [Verbose] >

00:01:31 #3111 [Verbose] > module AsyncSeq =

00:01:31 #3112 [Verbose] >

00:01:31 #3113 [Verbose] > #if !INTERACTIVE

00:01:31 #3114 [Verbose] >     open Lib

00:01:31 #3115 [Verbose] > #endif

00:01:31 #3116 [Verbose] >

00:01:31 #3117 [Verbose] >     open Common

00:01:31 #3118 [Verbose] >

00:01:31 #3119 [Verbose] >     /// ## subscribeEvent

00:01:31 #3120 [Verbose] >

00:01:31 #3121 [Verbose] >     let inline subscribeEvent (event: IEvent<'H, 'A>) map =

00:01:31 #3122 [Verbose] >         let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,

00:01:31 #3123 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)

00:01:31 #3124 [Verbose] >         System.Reactive.Linq.Observable.Select (observable, fun event -> map

00:01:31 #3125 [Verbose] > event.EventArgs)

00:01:31 #3126 [Verbose] >         |> FSharp.Control.AsyncSeq.ofObservableBuffered

00:01:31 #3127 [Verbose] >

00:01:31 #3128 [Verbose] >     let subscribeToken (token : System.Threading.CancellationToken) =

00:01:31 #3129 [Verbose] >         let tcs = new System.Threading.Tasks.TaskCompletionSource ()

00:01:31 #3130 [Verbose] >         System.Action tcs.SetResult |> token.Register |> ignore

00:01:31 #3131 [Verbose] >         let start = System.DateTime.Now.Ticks

00:01:31 #3132 [Verbose] >         FSharp.Control.A...

00:01:31 #3133 [Verbose] >

00:01:31 #3134 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:31 #3135 [Verbose] > #if !INTERACTIVE

00:01:31 #3136 [Verbose] > namespace Polyglot

00:01:31 #3137 [Verbose] > #endif

00:01:31 #3138 [Verbose] >

00:01:31 #3139 [Verbose] > module Runtime =

00:01:31 #3140 [Verbose] >

00:01:31 #3141 [Verbose] > #if !INTERACTIVE

00:01:31 #3142 [Verbose] >     open Lib

00:01:31 #3143 [Verbose] > #endif

00:01:31 #3144 [Verbose] >

00:01:31 #3145 [Verbose] >     open Common

00:01:31 #3146 [Verbose] >

00:01:31 #3147 [Verbose] >     /// ## isWindows

00:01:31 #3148 [Verbose] >

00:01:31 #3149 [Verbose] >     let isWindows =

00:01:31 #3150 [Verbose] >         fun () ->

00:01:31 #3151 [Verbose] >             System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

00:01:31 #3152 [Verbose] >                 System.Runtime.InteropServices.OSPlatform.Windows

00:01:31 #3153 [Verbose] >         |> memoize

00:01:31 #3154 [Verbose] >

00:01:31 #3155 [Verbose] >     /// ## getExecutableSuffix

00:01:31 #3156 [Verbose] >

00:01:31 #3157 [Verbose] >     let inline getExecutableSuffix () =

00:01:31 #3158 [Verbose] >         if isWindows ()

00:01:31 #3159 [Verbose] >         then ".exe"

00:01:31 #3160 [Verbose] >         else ""

00:01:31 #3161 [Verbose] >

00:01:31 #3162 [Verbose] >     /// ## splitCommand

00:01:31 #3163 [Verbose] >

00:01:31 #3164 [Verbose] >     type private CommandParseStep =

00:01:31 #3165 [Verbose] >         | Start

00:01:31 #3166 [Verbose] >         | Path of quoted: bool

00:01:31 #3167 [Verbose] >         | Arguments

00:01:31 #3168 [Verbose] >

00:01:31 #3169 [Verbose] >     let splitCommand (command: string) =

00:01:31 #3170 [Verbose] >         let rec loop (path, args) chars step =

00:01:31 #3171 [Verbose] >             match chars, step with

00:01:31 #3172 [Verbose] >             | ('"' | '\'') ...

00:01:32 #3173 [Verbose] >

00:01:32 #3174 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3175 [Verbose] > #if !INTERACTIVE

00:01:32 #3176 [Verbose] > open Lib

00:01:32 #3177 [Verbose] > #endif

00:01:32 #3178 [Verbose] >

00:01:32 #3179 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3180 [Verbose] > open Common

00:01:32 #3181 [Verbose] > open SpiralFileSystem.Operators

00:01:32 #3182 [Verbose] >

00:01:32 #3183 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:32 #3184 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:32 #3185 [Verbose] > │ ## readAllTextAsync                                                          │

00:01:32 #3186 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:32 #3187 [Verbose] >

00:01:32 #3188 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3189 [Verbose] > let inline readAllTextAsync path =

00:01:32 #3190 [Verbose] >     path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask

00:01:32 #3191 [Verbose] >

00:01:32 #3192 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:32 #3193 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:32 #3194 [Verbose] > │ ## fileExistsContent                                                         │

00:01:32 #3195 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:32 #3196 [Verbose] >

00:01:32 #3197 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3198 [Verbose] > let inline fileExistsContent path content = async {

00:01:32 #3199 [Verbose] >     if path |> System.IO.File.Exists |> not

00:01:32 #3200 [Verbose] >     then return false

00:01:32 #3201 [Verbose] >     else

00:01:32 #3202 [Verbose] >         let! existingContent = path |> readAllTextAsync

00:01:32 #3203 [Verbose] >         return content = existingContent

00:01:32 #3204 [Verbose] > }

00:01:32 #3205 [Verbose] >

00:01:32 #3206 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:32 #3207 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:32 #3208 [Verbose] > │ ## writeAllTextAsync                                                         │

00:01:32 #3209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:32 #3210 [Verbose] >

00:01:32 #3211 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3212 [Verbose] > let inline writeAllTextAsync path contents =

00:01:32 #3213 [Verbose] >     System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask

00:01:32 #3214 [Verbose] >

00:01:32 #3215 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:32 #3216 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:32 #3217 [Verbose] > │ ## writeAllTextExists                                                        │

00:01:32 #3218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:32 #3219 [Verbose] >

00:01:32 #3220 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3221 [Verbose] > let inline writeAllTextExists path contents = async {

00:01:32 #3222 [Verbose] >     let! exists = contents |> fileExistsContent path

00:01:32 #3223 [Verbose] >     if not exists

00:01:32 #3224 [Verbose] >     then do! contents |> writeAllTextAsync path

00:01:32 #3225 [Verbose] > }

00:01:32 #3226 [Verbose] >

00:01:32 #3227 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:32 #3228 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:32 #3229 [Verbose] > │ ## waitForFileAccess                                                         │

00:01:32 #3230 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:32 #3231 [Verbose] >

00:01:32 #3232 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3233 [Verbose] > let inline waitForFileAccess access path =

00:01:32 #3234 [Verbose] >     let fileAccess, fileShare =

00:01:32 #3235 [Verbose] >         access

00:01:32 #3236 [Verbose] >         |> Option.defaultValue (System.IO.FileAccess.ReadWrite,

00:01:32 #3237 [Verbose] > System.IO.FileShare.Read)

00:01:32 #3238 [Verbose] >

00:01:32 #3239 [Verbose] >     let rec loop retry = async {

00:01:32 #3240 [Verbose] >         try

00:01:32 #3241 [Verbose] >             use _ = new System.IO.FileStream (

00:01:32 #3242 [Verbose] >                 path,

00:01:32 #3243 [Verbose] >                 System.IO.FileMode.Open,

00:01:32 #3244 [Verbose] >                 fileAccess,

00:01:32 #3245 [Verbose] >                 fileShare

00:01:32 #3246 [Verbose] >             )

00:01:32 #3247 [Verbose] >             return retry

00:01:32 #3248 [Verbose] >         with ex ->

00:01:32 #3249 [Verbose] >             if retry % 100 = 0 then

00:01:32 #3250 [Verbose] >                 let getLocals () = $"path: {path |> System.IO.Path.GetFileName}

00:01:32 #3251 [Verbose] > / ex: {ex |> SpiralSm.format_exception} / {getLocals ()}"

00:01:32 #3252 [Verbose] >                 trace Debug (fun () -> "waitForFileAccess") getLocals

00:01:32 #3253 [Verbose] >             do! Async.Sleep 10

00:01:32 #3254 [Verbose] >             return! loop (retry + 1)

00:01:32 #3255 [Verbose] >     }

00:01:32 #3256 [Verbose] >     loop 0

00:01:32 #3257 [Verbose] >

00:01:32 #3258 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:32 #3259 [Verbose] > //// test

00:01:32 #3260 [Verbose] >

00:01:32 #3261 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()

00:01:32 #3262 [Verbose] > let path = tempFolder </> "test.txt"

00:01:32 #3263 [Verbose] >

00:01:32 #3264 [Verbose] > let inline lockFile () = async {

00:01:32 #3265 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:01:32 #3266 [Verbose] >     use stream = new System.IO.FileStream (

00:01:32 #3267 [Verbose] >         path,

00:01:32 #3268 [Verbose] >         System.IO.FileMode.Open,

00:01:32 #3269 [Verbose] >         System.IO.FileAccess.ReadWrite,

00:01:32 #3270 [Verbose] >         System.IO.FileShare.None

00:01:32 #3271 [Verbose] >     )

00:01:32 #3272 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:01:32 #3273 [Verbose] >     do! Async.Sleep 2000

00:01:32 #3274 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:01:32 #3275 [Verbose] >     stream.Seek (0L, SeekOrigin.Begin) |> ignore

00:01:32 #3276 [Verbose] >     trace Debug (fun () -> "_4") getLocals

00:01:32 #3277 [Verbose] >     stream.WriteByte 49uy

00:01:32 #3278 [Verbose] >     trace Debug (fun () -> "_5") getLocals

00:01:32 #3279 [Verbose] >     stream.Flush ()

00:01:32 #3280 [Verbose] >     trace Debug (fun () -> "_6") getLocals

00:01:32 #3281 [Verbose] > }

00:01:32 #3282 [Verbose] >

00:01:32 #3283 [Verbose] > async {

00:01:32 #3284 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:01:32 #3285 [Verbose] >     do! "0" |> writeAllTextAsync path

00:01:32 #3286 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:01:32 #3287 [Verbose] >     let! child = lockFile () |> Async.StartChild

00:01:32 #3288 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:01:32 #3289 [Verbose] >     do! Async.Sleep 1

00:01:32 #3290 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:01:32 #3291 [Verbose] >     let! retries = path |> waitForFileAccess None

00:01:32 #3292 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:01:32 #3293 [Verbose] >     let! text = path |> readAllTextAsync

00:01:32 #3294 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:01:32 #3295 [Verbose] >     do! child

00:01:32 #3296 [Verbose] >     trace Debug (fun () -> "7") getLocals

00:01:32 #3297 [Verbose] >     return retries, text

00:01:32 #3298 [Verbose] > }

00:01:32 #3299 [Verbose] > |> Async.runWithTimeout 3000

00:01:32 #3300 [Verbose] > |> function

00:01:32 #3301 [Verbose] >     | Some (retries, text) ->

00:01:32 #3302 [Verbose] >         retries

00:01:32 #3303 [Verbose] >         |> _isBetween

00:01:32 #3304 [Verbose] >             (if Runtime.isWindows () then 50 else 100)

00:01:32 #3305 [Verbose] >             (if Runtime.isWindows () then 150 else 200)

00:01:32 #3306 [Verbose] >

00:01:32 #3307 [Verbose] >         text |> _assertEqual "1"

00:01:32 #3308 [Verbose] >

00:01:32 #3309 [Verbose] >         true

00:01:32 #3310 [Verbose] >     | _ -> false

00:01:32 #3311 [Verbose] > |> _assertEqual true

00:01:35 #3312 [Verbose] >

00:01:35 #3313 [Verbose] > ╭─[ 2.42s - stdout ]───────────────────────────────────────────────────────────╮

00:01:35 #3314 [Verbose] > │ 00:00:00 #1 [Debug] 1                                                        │

00:01:35 #3315 [Verbose] > │ 00:00:00 #2 [Debug] 2                                                        │

00:01:35 #3316 [Verbose] > │ 00:00:00 #4 [Debug] 3                                                        │

00:01:35 #3317 [Verbose] > │ 00:00:00 #4 [Debug] _1                                                       │

00:01:35 #3318 [Verbose] > │ 00:00:00 #5 [Debug] _2                                                       │

00:01:35 #3319 [Verbose] > │ 00:00:00 #6 [Debug] 4                                                        │

00:01:35 #3320 [Verbose] > │ 00:00:00 #7 [Debug] waitForFileAccess / path: test.txt / ex:                 │

00:01:35 #3321 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:01:35 #3322 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5140-4007-4e88 │

00:01:35 #3323 [Verbose] > │ fa8e13bf\test.txt' because it is being used by another process.              │

00:01:35 #3324 [Verbose] > │ 00:00:01 #8 [Debug] waitForFileAccess / path: test.txt / ex:                 │

00:01:35 #3325 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:01:35 #3326 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5140-4007-4e88 │

00:01:35 #3327 [Verbose] > │ fa8e13bf\test.txt' because it is being used by another process.              │

00:01:35 #3328 [Verbose] > │ 00:00:02 #9 [Debug] _3                                                       │

00:01:35 #3329 [Verbose] > │ 00:00:02 #10 [Debug] _4                                                      │

00:01:35 #3330 [Verbose] > │ 00:00:02 #11 [Debug] _5                                                      │

00:01:35 #3331 [Verbose] > │ 00:00:02 #12 [Debug] _6                                                      │

00:01:35 #3332 [Verbose] > │ 00:00:02 #13 [Debug] 5                                                       │

00:01:35 #3333 [Verbose] > │ 00:00:02 #14 [Debug] 6                                                       │

00:01:35 #3334 [Verbose] > │ 00:00:02 #15 [Debug] 7                                                       │

00:01:35 #3335 [Verbose] > │ 128                                                                          │

00:01:35 #3336 [Verbose] > │ 128                                                                          │

00:01:35 #3337 [Verbose] > │ 128                                                                          │

00:01:35 #3338 [Verbose] > │ 1                                                                            │

00:01:35 #3339 [Verbose] > │ True                                                                         │

00:01:35 #3340 [Verbose] > │                                                                              │

00:01:35 #3341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:35 #3342 [Verbose] >

00:01:35 #3343 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:35 #3344 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:35 #3345 [Verbose] > │ ## readAllTextRetryAsync                                                     │

00:01:35 #3346 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:35 #3347 [Verbose] >

00:01:35 #3348 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:35 #3349 [Verbose] > let inline readAllTextRetryAsync fullPath =

00:01:35 #3350 [Verbose] >     let rec loop retry = async {

00:01:35 #3351 [Verbose] >         try

00:01:35 #3352 [Verbose] >             if retry > 0

00:01:35 #3353 [Verbose] >             then do!

00:01:35 #3354 [Verbose] >                 fullPath

00:01:35 #3355 [Verbose] >                 |> waitForFileAccess (Some (

00:01:35 #3356 [Verbose] >                     System.IO.FileAccess.Read,

00:01:35 #3357 [Verbose] >                     System.IO.FileShare.Read

00:01:35 #3358 [Verbose] >                 ))

00:01:35 #3359 [Verbose] >                 |> Async.runWithTimeoutAsync 1000

00:01:35 #3360 [Verbose] >                 |> Async.Ignore

00:01:35 #3361 [Verbose] >             return! fullPath |> readAllTextAsync |> Async.map Some

00:01:35 #3362 [Verbose] >         with ex ->

00:01:35 #3363 [Verbose] >             let getLocals () = $"retry: {retry} / ex: {ex |>

00:01:35 #3364 [Verbose] > SpiralSm.format_exception} / {getLocals ()}"

00:01:35 #3365 [Verbose] >             trace Debug (fun () -> $"watchWithFilter / readContent") getLocals

00:01:35 #3366 [Verbose] >             if retry = 0

00:01:35 #3367 [Verbose] >             then return! loop (retry + 1)

00:01:35 #3368 [Verbose] >             else return None

00:01:35 #3369 [Verbose] >     }

00:01:35 #3370 [Verbose] >     loop 0

00:01:35 #3371 [Verbose] >

00:01:35 #3372 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:35 #3373 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:35 #3374 [Verbose] > │ ## deleteDirectoryAsync                                                      │

00:01:35 #3375 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:35 #3376 [Verbose] >

00:01:35 #3377 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:35 #3378 [Verbose] > let inline deleteDirectoryAsync path =

00:01:35 #3379 [Verbose] >     let rec loop retry = async {

00:01:35 #3380 [Verbose] >         try

00:01:35 #3381 [Verbose] >             System.IO.Directory.Delete (path, true)

00:01:35 #3382 [Verbose] >             return retry

00:01:35 #3383 [Verbose] >         with ex ->

00:01:35 #3384 [Verbose] >             if retry % 100 = 0 then

00:01:35 #3385 [Verbose] >                 let getLocals () = $"path: {path |> System.IO.Path.GetFileName}

00:01:35 #3386 [Verbose] > / ex: {ex |> SpiralSm.format_exception} / {getLocals ()}"

00:01:35 #3387 [Verbose] >                 trace Debug (fun () -> "deleteDirectoryAsync") getLocals

00:01:35 #3388 [Verbose] >             do! Async.Sleep 10

00:01:35 #3389 [Verbose] >             return! loop (retry + 1)

00:01:35 #3390 [Verbose] >     }

00:01:35 #3391 [Verbose] >     loop 0

00:01:35 #3392 [Verbose] >

00:01:35 #3393 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:35 #3394 [Verbose] > //// test

00:01:35 #3395 [Verbose] >

00:01:35 #3396 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()

00:01:35 #3397 [Verbose] > let path = tempFolder </> "test"

00:01:35 #3398 [Verbose] >

00:01:35 #3399 [Verbose] > let inline lockDirectory () = async {

00:01:35 #3400 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:01:35 #3401 [Verbose] >     System.IO.File.WriteAllText (path </> "test.txt", "0")

00:01:35 #3402 [Verbose] >     use _ = new System.IO.FileStream (

00:01:35 #3403 [Verbose] >         path </> "test.txt",

00:01:35 #3404 [Verbose] >         System.IO.FileMode.Open,

00:01:35 #3405 [Verbose] >         System.IO.FileAccess.ReadWrite,

00:01:35 #3406 [Verbose] >         System.IO.FileShare.None

00:01:35 #3407 [Verbose] >     )

00:01:35 #3408 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:01:35 #3409 [Verbose] >     do! Async.Sleep 2000

00:01:35 #3410 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:01:35 #3411 [Verbose] > }

00:01:35 #3412 [Verbose] >

00:01:35 #3413 [Verbose] > async {

00:01:35 #3414 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:01:35 #3415 [Verbose] >     Directory.CreateDirectory path |> ignore

00:01:35 #3416 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:01:35 #3417 [Verbose] >     let! child = lockDirectory () |> Async.StartChild

00:01:35 #3418 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:01:35 #3419 [Verbose] >     do! Async.Sleep 60

00:01:35 #3420 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:01:35 #3421 [Verbose] >     let! retries = deleteDirectoryAsync path

00:01:35 #3422 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:01:35 #3423 [Verbose] >     do! child

00:01:35 #3424 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:01:35 #3425 [Verbose] >     return retries

00:01:35 #3426 [Verbose] > }

00:01:35 #3427 [Verbose] > |> Async.runWithTimeout 3000

00:01:35 #3428 [Verbose] > |> function

00:01:35 #3429 [Verbose] >     | Some retries ->

00:01:35 #3430 [Verbose] >         retries

00:01:35 #3431 [Verbose] >         |> _isBetween

00:01:35 #3432 [Verbose] >             (if Runtime.isWindows () then 50 else 0)

00:01:35 #3433 [Verbose] >             (if Runtime.isWindows () then 150 else 0)

00:01:35 #3434 [Verbose] >

00:01:35 #3435 [Verbose] >         true

00:01:35 #3436 [Verbose] >     | _ -> false

00:01:35 #3437 [Verbose] > |> _assertEqual true

00:01:37 #3438 [Verbose] >

00:01:37 #3439 [Verbose] > ╭─[ 2.30s - stdout ]───────────────────────────────────────────────────────────╮

00:01:37 #3440 [Verbose] > │ 00:00:02 #16 [Debug] 1                                                       │

00:01:37 #3441 [Verbose] > │ 00:00:02 #17 [Debug] 2                                                       │

00:01:37 #3442 [Verbose] > │ 00:00:02 #18 [Debug] 3                                                       │

00:01:37 #3443 [Verbose] > │ 00:00:02 #19 [Debug] _1                                                      │

00:01:37 #3444 [Verbose] > │ 00:00:02 #20 [Debug] _2                                                      │

00:01:37 #3445 [Verbose] > │ 00:00:02 #21 [Debug] 4                                                       │

00:01:37 #3446 [Verbose] > │ 00:00:02 #22 [Debug] deleteDirectoryAsync / path: test / ex:                 │

00:01:37 #3447 [Verbose] > │ System.IO.IOException: The process cannot access the file 'test.txt' because │

00:01:37 #3448 [Verbose] > │ it is being used by another process.                                         │

00:01:37 #3449 [Verbose] > │ 00:00:04 #23 [Debug] deleteDirectoryAsync / path: test / ex:                 │

00:01:37 #3450 [Verbose] > │ System.IO.IOException: The process cannot access the file 'test.txt' because │

00:01:37 #3451 [Verbose] > │ it is being used by another process.                                         │

00:01:37 #3452 [Verbose] > │ 00:00:04 #24 [Debug] _3                                                      │

00:01:37 #3453 [Verbose] > │ 00:00:04 #25 [Debug] 5                                                       │

00:01:37 #3454 [Verbose] > │ 00:00:04 #26 [Debug] 6                                                       │

00:01:37 #3455 [Verbose] > │ 124                                                                          │

00:01:37 #3456 [Verbose] > │ 124                                                                          │

00:01:37 #3457 [Verbose] > │ 124                                                                          │

00:01:37 #3458 [Verbose] > │ True                                                                         │

00:01:37 #3459 [Verbose] > │                                                                              │

00:01:37 #3460 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #3461 [Verbose] >

00:01:37 #3462 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:37 #3463 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:37 #3464 [Verbose] > │ ## deleteFileAsync                                                           │

00:01:37 #3465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #3466 [Verbose] >

00:01:37 #3467 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:37 #3468 [Verbose] > let inline deleteFileAsync path =

00:01:37 #3469 [Verbose] >     let rec loop retry = async {

00:01:37 #3470 [Verbose] >         try

00:01:37 #3471 [Verbose] >             System.IO.File.Delete path

00:01:37 #3472 [Verbose] >             return retry

00:01:37 #3473 [Verbose] >         with ex ->

00:01:37 #3474 [Verbose] >             if retry % 100 = 0 then

00:01:37 #3475 [Verbose] >                 let getLocals () = $"path: {path |> System.IO.Path.GetFileName}

00:01:37 #3476 [Verbose] > / ex: {ex |> SpiralSm.format_exception} / {getLocals ()}"

00:01:37 #3477 [Verbose] >                 trace Warning (fun () -> "deleteFileAsync") getLocals

00:01:37 #3478 [Verbose] >             do! Async.Sleep 10

00:01:37 #3479 [Verbose] >             return! loop (retry + 1)

00:01:37 #3480 [Verbose] >     }

00:01:37 #3481 [Verbose] >     loop 0

00:01:37 #3482 [Verbose] >

00:01:37 #3483 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:37 #3484 [Verbose] > //// test

00:01:37 #3485 [Verbose] >

00:01:37 #3486 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()

00:01:37 #3487 [Verbose] > let path = tempFolder </> "test.txt"

00:01:37 #3488 [Verbose] >

00:01:37 #3489 [Verbose] > let inline lockFile () = async {

00:01:37 #3490 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:01:37 #3491 [Verbose] >     use _ = new System.IO.FileStream (

00:01:37 #3492 [Verbose] >         path,

00:01:37 #3493 [Verbose] >         System.IO.FileMode.Open,

00:01:37 #3494 [Verbose] >         System.IO.FileAccess.ReadWrite,

00:01:37 #3495 [Verbose] >         System.IO.FileShare.None

00:01:37 #3496 [Verbose] >     )

00:01:37 #3497 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:01:37 #3498 [Verbose] >     do! Async.Sleep 2000

00:01:37 #3499 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:01:37 #3500 [Verbose] > }

00:01:37 #3501 [Verbose] >

00:01:37 #3502 [Verbose] > async {

00:01:37 #3503 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:01:37 #3504 [Verbose] >     do! "0" |> writeAllTextAsync path

00:01:37 #3505 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:01:37 #3506 [Verbose] >     let! child = lockFile () |> Async.StartChild

00:01:37 #3507 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:01:37 #3508 [Verbose] >     do! Async.Sleep 1

00:01:37 #3509 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:01:37 #3510 [Verbose] >     let! retries = deleteFileAsync path

00:01:37 #3511 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:01:37 #3512 [Verbose] >     do! child

00:01:37 #3513 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:01:37 #3514 [Verbose] >     return retries

00:01:37 #3515 [Verbose] > }

00:01:37 #3516 [Verbose] > |> Async.runWithTimeout 3000

00:01:37 #3517 [Verbose] > |> function

00:01:37 #3518 [Verbose] >     | Some retries ->

00:01:37 #3519 [Verbose] >         retries

00:01:37 #3520 [Verbose] >         |> _isBetween

00:01:37 #3521 [Verbose] >             (if Runtime.isWindows () then 50 else 0)

00:01:37 #3522 [Verbose] >             (if Runtime.isWindows () then 150 else 0)

00:01:37 #3523 [Verbose] >

00:01:37 #3524 [Verbose] >         true

00:01:37 #3525 [Verbose] >     | _ -> false

00:01:37 #3526 [Verbose] > |> _assertEqual true

00:01:40 #3527 [Verbose] >

00:01:40 #3528 [Verbose] > ╭─[ 2.22s - stdout ]───────────────────────────────────────────────────────────╮

00:01:40 #3529 [Verbose] > │ 00:00:04 #27 [Debug] 1                                                       │

00:01:40 #3530 [Verbose] > │ 00:00:04 #28 [Debug] 2                                                       │

00:01:40 #3531 [Verbose] > │ 00:00:04 #29 [Debug] 3                                                       │

00:01:40 #3532 [Verbose] > │ 00:00:04 #30 [Debug] _1                                                      │

00:01:40 #3533 [Verbose] > │ 00:00:04 #31 [Debug] _2                                                      │

00:01:40 #3534 [Verbose] > │ 00:00:04 #32 [Debug] 4                                                       │

00:01:40 #3535 [Verbose] > │ 00:00:04 #33 [Warning] deleteFileAsync / path: test.txt / ex:                │

00:01:40 #3536 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:01:40 #3537 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5638-3875-3e64 │

00:01:40 #3538 [Verbose] > │ 4450d5de\test.txt' because it is being used by another process.              │

00:01:40 #3539 [Verbose] > │ 00:00:06 #34 [Warning] deleteFileAsync / path: test.txt / ex:                │

00:01:40 #3540 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:01:40 #3541 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1246-5638-3875-3e64 │

00:01:40 #3542 [Verbose] > │ 4450d5de\test.txt' because it is being used by another process.              │

00:01:40 #3543 [Verbose] > │ 00:00:06 #35 [Debug] _3                                                      │

00:01:40 #3544 [Verbose] > │ 00:00:06 #36 [Debug] 5                                                       │

00:01:40 #3545 [Verbose] > │ 00:00:06 #37 [Debug] 6                                                       │

00:01:40 #3546 [Verbose] > │ 128                                                                          │

00:01:40 #3547 [Verbose] > │ 128                                                                          │

00:01:40 #3548 [Verbose] > │ 128                                                                          │

00:01:40 #3549 [Verbose] > │ True                                                                         │

00:01:40 #3550 [Verbose] > │                                                                              │

00:01:40 #3551 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #3552 [Verbose] >

00:01:40 #3553 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:40 #3554 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:40 #3555 [Verbose] > │ ## moveFileAsync                                                             │

00:01:40 #3556 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #3557 [Verbose] >

00:01:40 #3558 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:40 #3559 [Verbose] > let inline moveFileAsync newPath oldPath =

00:01:40 #3560 [Verbose] >     let rec loop retry = async {

00:01:40 #3561 [Verbose] >         try

00:01:40 #3562 [Verbose] >             System.IO.File.Move (oldPath, newPath)

00:01:40 #3563 [Verbose] >             return retry

00:01:40 #3564 [Verbose] >         with ex ->

00:01:40 #3565 [Verbose] >             if retry % 100 = 0 then

00:01:40 #3566 [Verbose] >                 let getLocals () =

00:01:40 #3567 [Verbose] >                     $"oldPath: {oldPath |> System.IO.Path.GetFileName}

00:01:40 #3568 [Verbose] > newPath: {newPath |> System.IO.Path.GetFileName} / ex: {ex |>

00:01:40 #3569 [Verbose] > SpiralSm.format_exception} / {getLocals ()}"

00:01:40 #3570 [Verbose] >                 trace Warning (fun () -> "moveFileAsync") getLocals

00:01:40 #3571 [Verbose] >             do! Async.Sleep 10

00:01:40 #3572 [Verbose] >             return! loop (retry + 1)

00:01:40 #3573 [Verbose] >     }

00:01:40 #3574 [Verbose] >     loop 0

00:01:40 #3575 [Verbose] >

00:01:40 #3576 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:40 #3577 [Verbose] > //// test

00:01:40 #3578 [Verbose] >

00:01:40 #3579 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()

00:01:40 #3580 [Verbose] > let path = tempFolder </> "test.txt"

00:01:40 #3581 [Verbose] > let newPath = tempFolder </> "test2.txt"

00:01:40 #3582 [Verbose] >

00:01:40 #3583 [Verbose] > let inline lockFile () = async {

00:01:40 #3584 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:01:40 #3585 [Verbose] >     use _ = new System.IO.FileStream (

00:01:40 #3586 [Verbose] >         path,

00:01:40 #3587 [Verbose] >         System.IO.FileMode.Open,

00:01:40 #3588 [Verbose] >         System.IO.FileAccess.ReadWrite,

00:01:40 #3589 [Verbose] >         System.IO.FileShare.None

00:01:40 #3590 [Verbose] >     )

00:01:40 #3591 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:01:40 #3592 [Verbose] >     do! Async.Sleep 2000

00:01:40 #3593 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:01:40 #3594 [Verbose] > }

00:01:40 #3595 [Verbose] >

00:01:40 #3596 [Verbose] > async {

00:01:40 #3597 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:01:40 #3598 [Verbose] >     do! "0" |> writeAllTextAsync path

00:01:40 #3599 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:01:40 #3600 [Verbose] >     let! child = lockFile () |> Async.StartChild

00:01:40 #3601 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:01:40 #3602 [Verbose] >     do! Async.Sleep 1

00:01:40 #3603 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:01:40 #3604 [Verbose] >     let! retries1 = path |> moveFileAsync newPath

00:01:40 #3605 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:01:40 #3606 [Verbose] >     let! retries2 = newPath |> waitForFileAccess None

00:01:40 #3607 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:01:40 #3608 [Verbose] >     let! text = newPath |> readAllTextAsync

00:01:40 #3609 [Verbose] >     trace Debug (fun () -> "7") getLocals

00:01:40 #3610 [Verbose] >     do! child

00:01:40 #3611 [Verbose] >     trace Debug (fun () -> "8") getLocals

00:01:40 #3612 [Verbose] >     return retries1, retries2, text

00:01:40 #3613 [Verbose] > }

00:01:40 #3614 [Verbose] > |> Async.runWithTimeout 3000

00:01:40 #3615 [Verbose] > |> function

00:01:40 #3616 [Verbose] >     | Some (retries1, retries2, text) ->

00:01:40 #3617 [Verbose] >         retries1

00:01:40 #3618 [Verbose] >         |> _isBetween

00:01:40 #3619 [Verbose] >             (if Runtime.isWindows () then 50 else 0)

00:01:40 #3620 [Verbose] >             (if Runtime.isWindows () then 150 else 0)

00:01:40 #3621 [Verbose] >

00:01:40 #3622 [Verbose] >         retries2

00:01:40 #3623 [Verbose] >         |> _isBetween

00:01:40 #3624 [Verbose] >             (if Runtime.isWindows () then 0 else 100)

00:01:40 #3625 [Verbose] >             (if Runtime.isWindows () then 0 else 200)

00:01:40 #3626 [Verbose] >

00:01:40 #3627 [Verbose] >         text |> _assertEqual "0"

00:01:40 #3628 [Verbose] >

00:01:40 #3629 [Verbose] >         true

00:01:40 #3630 [Verbose] >     | _ -> false

00:01:40 #3631 [Verbose] > |> _assertEqual true

00:01:42 #3632 [Verbose] >

00:01:42 #3633 [Verbose] > ╭─[ 2.30s - stdout ]───────────────────────────────────────────────────────────╮

00:01:42 #3634 [Verbose] > │ 00:00:07 #38 [Debug] 1                                                       │

00:01:42 #3635 [Verbose] > │ 00:00:07 #39 [Debug] 2                                                       │

00:01:42 #3636 [Verbose] > │ 00:00:07 #40 [Debug] 3                                                       │

00:01:42 #3637 [Verbose] > │ 00:00:07 #41 [Debug] _1                                                      │

00:01:42 #3638 [Verbose] > │ 00:00:07 #42 [Debug] _2                                                      │

00:01:42 #3639 [Verbose] > │ 00:00:07 #43 [Debug] 4                                                       │

00:01:42 #3640 [Verbose] > │ 00:00:07 #44 [Warning] moveFileAsync / oldPath: test.txt / newPath:          │

00:01:42 #3641 [Verbose] > │ test2.txt / ex: System.IO.IOException: The process cannot access the file    │

00:01:42 #3642 [Verbose] > │ because it is being used by another process.                                 │

00:01:42 #3643 [Verbose] > │ 00:00:08 #45 [Warning] moveFileAsync / oldPath: test.txt / newPath:          │

00:01:42 #3644 [Verbose] > │ test2.txt / ex: System.IO.IOException: The process cannot access the file    │

00:01:42 #3645 [Verbose] > │ because it is being used by another process.                                 │

00:01:42 #3646 [Verbose] > │ 00:00:09 #46 [Debug] _3                                                      │

00:01:42 #3647 [Verbose] > │ 00:00:09 #47 [Debug] 5                                                       │

00:01:42 #3648 [Verbose] > │ 00:00:09 #48 [Debug] 6                                                       │

00:01:42 #3649 [Verbose] > │ 00:00:09 #49 [Debug] 7                                                       │

00:01:42 #3650 [Verbose] > │ 00:00:09 #50 [Debug] 8                                                       │

00:01:42 #3651 [Verbose] > │ 128                                                                          │

00:01:42 #3652 [Verbose] > │ 128                                                                          │

00:01:42 #3653 [Verbose] > │ 128                                                                          │

00:01:42 #3654 [Verbose] > │ 0                                                                            │

00:01:42 #3655 [Verbose] > │ 0                                                                            │

00:01:42 #3656 [Verbose] > │ 0                                                                            │

00:01:42 #3657 [Verbose] > │ 0                                                                            │

00:01:42 #3658 [Verbose] > │ True                                                                         │

00:01:42 #3659 [Verbose] > │                                                                              │

00:01:42 #3660 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:42 #3661 [Verbose] >

00:01:42 #3662 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:42 #3663 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:42 #3664 [Verbose] > │ ## watchDirectory                                                            │

00:01:42 #3665 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:42 #3666 [Verbose] >

00:01:42 #3667 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:42 #3668 [Verbose] > [[<RequireQualifiedAccess>]]

00:01:42 #3669 [Verbose] > type FileSystemChangeType =

00:01:42 #3670 [Verbose] >     | Failure

00:01:42 #3671 [Verbose] >     | Changed

00:01:42 #3672 [Verbose] >     | Created

00:01:42 #3673 [Verbose] >     | Deleted

00:01:42 #3674 [Verbose] >     | Renamed

00:01:42 #3675 [Verbose] >

00:01:42 #3676 [Verbose] > [[<RequireQualifiedAccess>]]

00:01:42 #3677 [Verbose] > type FileSystemChange =

00:01:42 #3678 [Verbose] >     | Failure of exn: exn

00:01:42 #3679 [Verbose] >     | Changed of path: string * content: string option

00:01:42 #3680 [Verbose] >     | Created of path: string * content: string option

00:01:42 #3681 [Verbose] >     | Deleted of path: string

00:01:42 #3682 [Verbose] >     | Renamed of oldPath: string * (string * string option)

00:01:42 #3683 [Verbose] >

00:01:42 #3684 [Verbose] >

00:01:42 #3685 [Verbose] > let inline watchDirectoryWithFilter filter shouldReadContent path =

00:01:42 #3686 [Verbose] >     let fullPath = path |> System.IO.Path.GetFullPath

00:01:42 #3687 [Verbose] >     let getLocals () = $"filter: {filter} / {getLocals ()}"

00:01:42 #3688 [Verbose] >

00:01:42 #3689 [Verbose] >     let watcher =

00:01:42 #3690 [Verbose] >         new System.IO.FileSystemWatcher (

00:01:42 #3691 [Verbose] >             Path = fullPath,

00:01:42 #3692 [Verbose] >             NotifyFilter = filter,

00:01:42 #3693 [Verbose] >             EnableRaisingEvents = true,

00:01:42 #3694 [Verbose] >             IncludeSubdirectories = true

00:01:42 #3695 [Verbose] >         )

00:01:42 #3696 [Verbose] >

00:01:42 #3697 [Verbose] >     let inline getEventPath (path : string) =

00:01:42 #3698 [Verbose] >         path |> SpiralSm.trim |> SpiralSm.replace fullPath "" |>

00:01:42 #3699 [Verbose] > SpiralSm.trim_start [[| '/'; '\\' |]]

00:01:42 #3700 [Verbose] >

00:01:42 #3701 [Verbose] >     let inline ticks () =

00:01:42 #3702 [Verbose] >         System.DateTime.UtcNow.Ticks

00:01:42 #3703 [Verbose] >

00:01:42 #3704 [Verbose] >     let changedStream =

00:01:42 #3705 [Verbose] >         AsyncSeq.subscribeEvent

00:01:42 #3706 [Verbose] >             watcher.Changed

00:01:42 #3707 [Verbose] >             (fun event ->

00:01:42 #3708 [Verbose] >                 ticks (),

00:01:42 #3709 [Verbose] >                 [[ FileSystemChange.Changed (getEventPath event.FullPath, None)

00:01:42 #3710 [Verbose] > ]]

00:01:42 #3711 [Verbose] >             )

00:01:42 #3712 [Verbose] >

00:01:42 #3713 [Verbose] >     let deletedStream =

00:01:42 #3714 [Verbose] >         AsyncSeq.subscribeEvent

00:01:42 #3715 [Verbose] >             watcher.Deleted

00:01:42 #3716 [Verbose] >             (fun event ->

00:01:42 #3717 [Verbose] >                 ticks (),

00:01:42 #3718 [Verbose] >                 [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]

00:01:42 #3719 [Verbose] >             )

00:01:42 #3720 [Verbose] >

00:01:42 #3721 [Verbose] >     let createdStream =

00:01:42 #3722 [Verbose] >         AsyncSeq.subscribeEvent

00:01:42 #3723 [Verbose] >             watcher.Created

00:01:42 #3724 [Verbose] >             (fun event ->

00:01:42 #3725 [Verbose] >                 let path = getEventPath event.FullPath

00:01:42 #3726 [Verbose] >                 ticks (), [[

00:01:42 #3727 [Verbose] >                     FileSystemChange.Created (path, None)

00:01:42 #3728 [Verbose] >                     if Runtime.isWindows () then

00:01:42 #3729 [Verbose] >                         FileSystemChange.Changed (path, None)

00:01:42 #3730 [Verbose] >                 ]])

00:01:42 #3731 [Verbose] >

00:01:42 #3732 [Verbose] >     let renamedStream =

00:01:42 #3733 [Verbose] >         AsyncSeq.subscribeEvent

00:01:42 #3734 [Verbose] >             watcher.Renamed

00:01:42 #3735 [Verbose] >             (fun event ->

00:01:42 #3736 [Verbose] >                 ticks (), [[

00:01:42 #3737 [Verbose] >                     FileSystemChange.Renamed (

00:01:42 #3738 [Verbose] >                         getEventPath event.OldFullPath,

00:01:42 #3739 [Verbose] >                         (getEventPath event.FullPath, None)

00:01:42 #3740 [Verbose] >                     )

00:01:42 #3741 [Verbose] >                 ]]

00:01:42 #3742 [Verbose] >             )

00:01:42 #3743 [Verbose] >

00:01:42 #3744 [Verbose] >     let failureStream =

00:01:42 #3745 [Verbose] >         AsyncSeq.subscribeEvent

00:01:42 #3746 [Verbose] >             watcher.Error

00:01:42 #3747 [Verbose] >             (fun event -> ticks (), [[ FileSystemChange.Failure

00:01:42 #3748 [Verbose] > (event.GetException ()) ]])

00:01:42 #3749 [Verbose] >

00:01:42 #3750 [Verbose] >     let stream =

00:01:42 #3751 [Verbose] >         [[

00:01:42 #3752 [Verbose] >             changedStream

00:01:42 #3753 [Verbose] >             deletedStream

00:01:42 #3754 [Verbose] >             createdStream

00:01:42 #3755 [Verbose] >             renamedStream

00:01:42 #3756 [Verbose] >             failureStream

00:01:42 #3757 [Verbose] >         ]]

00:01:42 #3758 [Verbose] >         |> FSharp.Control.AsyncSeq.mergeAll

00:01:42 #3759 [Verbose] >         |> FSharp.Control.AsyncSeq.map (fun (t, events) ->

00:01:42 #3760 [Verbose] >             events

00:01:42 #3761 [Verbose] >             |> List.fold

00:01:42 #3762 [Verbose] >                 (fun (i, events) event ->

00:01:42 #3763 [Verbose] >                     i + 1L,

00:01:42 #3764 [Verbose] >                     (t + i, event) :: events)

00:01:42 #3765 [Verbose] >                 (0L, [[]])

00:01:42 #3766 [Verbose] >             |> snd

00:01:42 #3767 [Verbose] >             |> List.rev

00:01:42 #3768 [Verbose] >         )

00:01:42 #3769 [Verbose] >         |> FSharp.Control.AsyncSeq.concatSeq

00:01:42 #3770 [Verbose] >         |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {

00:01:42 #3771 [Verbose] >             match shouldReadContent event, event with

00:01:42 #3772 [Verbose] >             | true, FileSystemChange.Changed (path, _) ->

00:01:42 #3773 [Verbose] >                 do! Async.Sleep 5

00:01:42 #3774 [Verbose] >                 let! content = fullPath </> path |> readAllTextRetryAsync

00:01:42 #3775 [Verbose] >                 return t, FileSystemChange.Changed (path, content)

00:01:42 #3776 [Verbose] >             | true, FileSystemChange.Created (path, _) ->

00:01:42 #3777 [Verbose] >                 do! Async.Sleep 5

00:01:42 #3778 [Verbose] >                 let! content = fullPath </> path |> readAllTextRetryAsync

00:01:42 #3779 [Verbose] >                 return t, FileSystemChange.Created (path, content)

00:01:42 #3780 [Verbose] >             | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->

00:01:42 #3781 [Verbose] >                 let! content = fullPath </> newPath |> readAllTextRetryAsync

00:01:42 #3782 [Verbose] >                 return t, FileSystemChange.Renamed (oldPath, (newPath, content))

00:01:42 #3783 [Verbose] >             | _ -> return t, event

00:01:42 #3784 [Verbose] >         })

00:01:42 #3785 [Verbose] >

00:01:42 #3786 [Verbose] >     let disposable =

00:01:42 #3787 [Verbose] >         new_disposable (fun () ->

00:01:42 #3788 [Verbose] >             trace Debug (fun () -> "watchWithFilter / Disposing watch stream")

00:01:42 #3789 [Verbose] > getLocals

00:01:42 #3790 [Verbose] >             watcher.EnableRaisingEvents <- false

00:01:42 #3791 [Verbose] >             watcher.Dispose ()

00:01:42 #3792 [Verbose] >         )

00:01:42 #3793 [Verbose] >

00:01:42 #3794 [Verbose] >     stream, disposable

00:01:42 #3795 [Verbose] >

00:01:42 #3796 [Verbose] > let inline watchDirectory path =

00:01:42 #3797 [Verbose] >     watchDirectoryWithFilter

00:01:42 #3798 [Verbose] >         (System.IO.NotifyFilters.FileName

00:01:42 #3799 [Verbose] >         // ||| System.IO.NotifyFilters.DirectoryName

00:01:42 #3800 [Verbose] >         // ||| System.IO.NotifyFilters.Attributes

00:01:42 #3801 [Verbose] >         //// ||| System.IO.NotifyFilters.Size

00:01:42 #3802 [Verbose] >         ||| System.IO.NotifyFilters.LastWrite

00:01:42 #3803 [Verbose] >         //// ||| System.IO.NotifyFilters.LastAccess

00:01:42 #3804 [Verbose] >         // ||| System.IO.NotifyFilters.CreationTime

00:01:42 #3805 [Verbose] >         // ||| System.IO.NotifyFilters.Security

00:01:42 #3806 [Verbose] >         )

00:01:42 #3807 [Verbose] >         path

00:01:44 #3808 [Verbose] >

00:01:44 #3809 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:44 #3810 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:44 #3811 [Verbose] > │ ### testEventsRaw (test)                                                     │

00:01:44 #3812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:44 #3813 [Verbose] >

00:01:44 #3814 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:44 #3815 [Verbose] > //// test

00:01:44 #3816 [Verbose] >

00:01:44 #3817 [Verbose] > let inline testEventsRaw

00:01:44 #3818 [Verbose] >     (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 *

00:01:44 #3819 [Verbose] > FileSystemChange> * IDisposable)

00:01:44 #3820 [Verbose] >     write

00:01:44 #3821 [Verbose] >     =

00:01:44 #3822 [Verbose] >     let tempDirectory = SpiralFileSystem.create_temp_directory ()

00:01:44 #3823 [Verbose] >     let stream, disposable = watchFn (fun _ -> true) tempDirectory

00:01:44 #3824 [Verbose] >

00:01:44 #3825 [Verbose] >     let events = System.Collections.Concurrent.ConcurrentBag ()

00:01:44 #3826 [Verbose] >

00:01:44 #3827 [Verbose] >     let inline iter () =

00:01:44 #3828 [Verbose] >         stream

00:01:44 #3829 [Verbose] >         |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {

00:01:44 #3830 [Verbose] > events.Add event })

00:01:44 #3831 [Verbose] >

00:01:44 #3832 [Verbose] >     let run = async {

00:01:44 #3833 [Verbose] >         let! _ = iter () |> Async.StartChild

00:01:44 #3834 [Verbose] >         do! Async.Sleep 250

00:01:44 #3835 [Verbose] >         return! write tempDirectory

00:01:44 #3836 [Verbose] >     }

00:01:44 #3837 [Verbose] >

00:01:44 #3838 [Verbose] >     try

00:01:44 #3839 [Verbose] >         run

00:01:44 #3840 [Verbose] >         |> Async.runWithTimeout 60000

00:01:44 #3841 [Verbose] >         |> _assertEqual (Some ())

00:01:44 #3842 [Verbose] >     finally

00:01:44 #3843 [Verbose] >         disposable.Dispose ()

00:01:44 #3844 [Verbose] >         deleteDirectoryAsync tempDirectory |> Async.Ignore |>

00:01:44 #3845 [Verbose] > Async.RunSynchronously

00:01:44 #3846 [Verbose] >

00:01:44 #3847 [Verbose] >     let eventsLog =

00:01:44 #3848 [Verbose] >         events

00:01:44 #3849 [Verbose] >         |> Seq.toList

00:01:44 #3850 [Verbose] >         |> List.sortBy fst

00:01:44 #3851 [Verbose] >         |> List.fold

00:01:44 #3852 [Verbose] >             (fun (prev, acc) (ticks, event) ->

00:01:44 #3853 [Verbose] >                 ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event)

00:01:44 #3854 [Verbose] > :: acc

00:01:44 #3855 [Verbose] >             )

00:01:44 #3856 [Verbose] >             (0L, [[]])

00:01:44 #3857 [Verbose] >         |> snd

00:01:44 #3858 [Verbose] >         |> List.rev

00:01:44 #3859 [Verbose] >         |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |>

00:01:44 #3860 [Verbose] > SpiralSm.ellipsis_end 100L)

00:01:44 #3861 [Verbose] >         |> SpiralSm.concat "\n"

00:01:44 #3862 [Verbose] >     let getLocals () = $"eventsLog: \n{eventsLog} / {getLocals ()}"

00:01:44 #3863 [Verbose] >     trace Debug (fun () -> "testEventsRaw") getLocals

00:01:44 #3864 [Verbose] >

00:01:44 #3865 [Verbose] >     events

00:01:44 #3866 [Verbose] >     |> Seq.toList

00:01:44 #3867 [Verbose] >     |> List.sortBy fst

00:01:44 #3868 [Verbose] >     |> List.map snd

00:01:44 #3869 [Verbose] >     |> List.fold

00:01:44 #3870 [Verbose] >         (fun acc event ->

00:01:44 #3871 [Verbose] >             match acc, event with

00:01:44 #3872 [Verbose] >             | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent

00:01:44 #3873 [Verbose] > :: acc,

00:01:44 #3874 [Verbose] >                 FileSystemChange.Changed (path, Some content)

00:01:44 #3875 [Verbose] >                 when lastPath = path && content |> SpiralSm.starts_with

00:01:44 #3876 [Verbose] > lastContent

00:01:44 #3877 [Verbose] >                 ->

00:01:44 #3878 [Verbose] >                 event :: acc

00:01:44 #3879 [Verbose] >             | _ -> event :: acc

00:01:44 #3880 [Verbose] >         )

00:01:44 #3881 [Verbose] >         [[]]

00:01:44 #3882 [Verbose] >     |> List.rev

00:01:44 #3883 [Verbose] >

00:01:44 #3884 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:44 #3885 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:44 #3886 [Verbose] > │ #### fast (test)                                                             │

00:01:44 #3887 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:44 #3888 [Verbose] >

00:01:44 #3889 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:44 #3890 [Verbose] > //// test

00:01:44 #3891 [Verbose] >

00:01:44 #3892 [Verbose] > let inline write path = async {

00:01:44 #3893 [Verbose] >     let n = 2

00:01:44 #3894 [Verbose] >

00:01:44 #3895 [Verbose] >     for i = 1 to n do

00:01:44 #3896 [Verbose] >         do! $"a{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

00:01:44 #3897 [Verbose] >

00:01:44 #3898 [Verbose] >     do! Async.Sleep 250

00:01:44 #3899 [Verbose] >

00:01:44 #3900 [Verbose] >     for i = 1 to n do

00:01:44 #3901 [Verbose] >         do! $"b{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

00:01:44 #3902 [Verbose] >

00:01:44 #3903 [Verbose] >     do! Async.Sleep 250

00:01:44 #3904 [Verbose] >

00:01:44 #3905 [Verbose] >     for i = 1 to n do

00:01:44 #3906 [Verbose] >         do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")

00:01:44 #3907 [Verbose] > |> Async.Ignore

00:01:44 #3908 [Verbose] >

00:01:44 #3909 [Verbose] >     do! Async.Sleep 250

00:01:44 #3910 [Verbose] >

00:01:44 #3911 [Verbose] >     for i = 1 to n do

00:01:44 #3912 [Verbose] >         do! $"c{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")

00:01:44 #3913 [Verbose] >

00:01:44 #3914 [Verbose] >     do! Async.Sleep 250

00:01:44 #3915 [Verbose] >

00:01:44 #3916 [Verbose] >     for i = 1 to n do

00:01:44 #3917 [Verbose] >         do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

00:01:44 #3918 [Verbose] >

00:01:44 #3919 [Verbose] >     do! Async.Sleep 250

00:01:44 #3920 [Verbose] > }

00:01:44 #3921 [Verbose] >

00:01:44 #3922 [Verbose] > let inline run () =

00:01:44 #3923 [Verbose] >     let events = testEventsRaw watchDirectory write

00:01:44 #3924 [Verbose] >

00:01:44 #3925 [Verbose] >     events

00:01:44 #3926 [Verbose] >     |> _sequenceEqual [[

00:01:44 #3927 [Verbose] >         FileSystemChange.Created ("file1.txt", Some "a1")

00:01:44 #3928 [Verbose] >         FileSystemChange.Changed ("file1.txt", Some "a1")

00:01:44 #3929 [Verbose] >         FileSystemChange.Created ("file2.txt", Some "a2")

00:01:44 #3930 [Verbose] >         FileSystemChange.Changed ("file2.txt", Some "a2")

00:01:44 #3931 [Verbose] >

00:01:44 #3932 [Verbose] >         FileSystemChange.Changed ("file1.txt", Some "b1")

00:01:44 #3933 [Verbose] >         FileSystemChange.Changed ("file2.txt", Some "b2")

00:01:44 #3934 [Verbose] >

00:01:44 #3935 [Verbose] >         FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1"))

00:01:44 #3936 [Verbose] >         FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2"))

00:01:44 #3937 [Verbose] >

00:01:44 #3938 [Verbose] >         FileSystemChange.Changed ("file_1.txt", Some "c1")

00:01:44 #3939 [Verbose] >         FileSystemChange.Changed ("file_2.txt", Some "c2")

00:01:44 #3940 [Verbose] >

00:01:44 #3941 [Verbose] >         FileSystemChange.Deleted "file_1.txt"

00:01:44 #3942 [Verbose] >         FileSystemChange.Deleted "file_2.txt"

00:01:44 #3943 [Verbose] >     ]]

00:01:44 #3944 [Verbose] >

00:01:44 #3945 [Verbose] > run

00:01:44 #3946 [Verbose] > |> retry_fn 3

00:01:44 #3947 [Verbose] > |> _assertEqual (Some ())

00:01:49 #3948 [Verbose] >

00:01:49 #3949 [Verbose] > ╭─[ 4.83s - stdout ]───────────────────────────────────────────────────────────╮

00:01:49 #3950 [Verbose] > │ FSharpOption<Unit>                                                           │

00:01:49 #3951 [Verbose] > │       Value: <null>                                                          │

00:01:49 #3952 [Verbose] > │ 00:00:15 #51 [Debug] watchWithFilter / Disposing watch stream / filter:      │

00:01:49 #3953 [Verbose] > │ FileName, LastWrite                                                          │

00:01:49 #3954 [Verbose] > │ 00:00:15 #52 [Debug] testEventsRaw / eventsLog:                              │

00:01:49 #3955 [Verbose] > │ 0 / 638478460260441012 / Created ("file1.txt", Some "a1")                    │

00:01:49 #3956 [Verbose] > │ 1 / 638478460260441013 / Changed ("file1.txt", Some "a1")                    │

00:01:49 #3957 [Verbose] > │ 54963 / 638478460260495976 / Changed ("file1.txt", Some "a1")                │

00:01:49 #3958 [Verbose] > │ 2122 / 638478460260498098 / Created ("file2.txt", Some "a2")                 │

00:01:49 #3959 [Verbose] > │ 1 / 638478460260498099 / Changed ("file2.txt", Some "a2")                    │

00:01:49 #3960 [Verbose] > │ 156 / 638478460260498255 / Changed ("file2.txt", Some "a2")                  │

00:01:49 #3961 [Verbose] > │ 2472908 / 638478460262971163 / Changed ("file1.txt", Some "b1")              │

00:01:49 #3962 [Verbose] > │ 2334 / 638478460262973497 / Changed ("file1.txt", Some "b1")                 │

00:01:49 #3963 [Verbose] > │ 8237 / 638478460262981734 / Changed ("file2.txt", Some "b2")                 │

00:01:49 #3964 [Verbose] > │ 1890 / 638478460262983624 / Changed ("file2.txt", Some "b2")                 │

00:01:49 #3965 [Verbose] > │ 2511362 / 638478460265494986 / Renamed ("file1.txt", ("file_1.txt", Some     │

00:01:49 #3966 [Verbose] > │ "b1"))                                                                       │

00:01:49 #3967 [Verbose] > │ 3964 / 638478460265498950 / Renamed ("file2.txt", ("file_2.txt", Some "b2")) │

00:01:49 #3968 [Verbose] > │ 2533843 / 638478460268032793 / Changed ("file_1.txt", Some "c1")             │

00:01:49 #3969 [Verbose] > │ 2087 / 638478460268034880 / Changed ("file_1.txt", Some "c1")                │

00:01:49 #3970 [Verbose] > │ 8727 / 638478460268043607 / Changed ("file_2.txt", Some "c2")                │

00:01:49 #3971 [Verbose] > │ 2093 / 638478460268045700 / Changed ("file_2.txt", Some "c2")                │

00:01:49 #3972 [Verbose] > │ 2643769 / 638478460270689469 / Deleted "file_1.txt"                          │

00:01:49 #3973 [Verbose] > │ 1372 / 638478460270690841 / Deleted "file_2.txt"                             │

00:01:49 #3974 [Verbose] > │ FSharpList<FileSystemChange>                                                 │

00:01:49 #3975 [Verbose] > │       - path: file1.txt                                                      │

00:01:49 #3976 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #3977 [Verbose] > │           Value: a1                                                          │

00:01:49 #3978 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #3979 [Verbose] > │         IsChanged: False                                                     │

00:01:49 #3980 [Verbose] > │         IsCreated: True                                                      │

00:01:49 #3981 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #3982 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #3983 [Verbose] > │       - path: file1.txt                                                      │

00:01:49 #3984 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #3985 [Verbose] > │           Value: a1                                                          │

00:01:49 #3986 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #3987 [Verbose] > │         IsChanged: True                                                      │

00:01:49 #3988 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #3989 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #3990 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #3991 [Verbose] > │       - path: file2.txt                                                      │

00:01:49 #3992 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #3993 [Verbose] > │           Value: a2                                                          │

00:01:49 #3994 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #3995 [Verbose] > │         IsChanged: False                                                     │

00:01:49 #3996 [Verbose] > │         IsCreated: True                                                      │

00:01:49 #3997 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #3998 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #3999 [Verbose] > │       - path: file2.txt                                                      │

00:01:49 #4000 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #4001 [Verbose] > │           Value: a2                                                          │

00:01:49 #4002 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4003 [Verbose] > │         IsChanged: True                                                      │

00:01:49 #4004 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4005 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4006 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4007 [Verbose] > │       - path: file1.txt                                                      │

00:01:49 #4008 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #4009 [Verbose] > │           Value: b1                                                          │

00:01:49 #4010 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4011 [Verbose] > │         IsChanged: True                                                      │

00:01:49 #4012 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4013 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4014 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4015 [Verbose] > │       - path: file2.txt                                                      │

00:01:49 #4016 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #4017 [Verbose] > │           Value: b2                                                          │

00:01:49 #4018 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4019 [Verbose] > │         IsChanged: True                                                      │

00:01:49 #4020 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4021 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4022 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4023 [Verbose] > │       - oldPath: file1.txt                                                   │

00:01:49 #4024 [Verbose] > │         Item2:         - file_1.txt                                          │

00:01:49 #4025 [Verbose] > │         - FSharpOption<String>                                               │

00:01:49 #4026 [Verbose] > │             Value: b1                                                        │

00:01:49 #4027 [Verbose] > │       - IsFailure: False                                                     │

00:01:49 #4028 [Verbose] > │         IsChanged: False                                                     │

00:01:49 #4029 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4030 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4031 [Verbose] > │         IsRenamed: True                                                      │

00:01:49 #4032 [Verbose] > │       - oldPath: file2.txt                                                   │

00:01:49 #4033 [Verbose] > │         Item2:         - file_2.txt                                          │

00:01:49 #4034 [Verbose] > │         - FSharpOption<String>                                               │

00:01:49 #4035 [Verbose] > │             Value: b2                                                        │

00:01:49 #4036 [Verbose] > │       - IsFailure: False                                                     │

00:01:49 #4037 [Verbose] > │         IsChanged: False                                                     │

00:01:49 #4038 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4039 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4040 [Verbose] > │         IsRenamed: True                                                      │

00:01:49 #4041 [Verbose] > │       - path: file_1.txt                                                     │

00:01:49 #4042 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #4043 [Verbose] > │           Value: c1                                                          │

00:01:49 #4044 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4045 [Verbose] > │         IsChanged: True                                                      │

00:01:49 #4046 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4047 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4048 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4049 [Verbose] > │       - path: file_2.txt                                                     │

00:01:49 #4050 [Verbose] > │         content: FSharpOption<String>                                        │

00:01:49 #4051 [Verbose] > │           Value: c2                                                          │

00:01:49 #4052 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4053 [Verbose] > │         IsChanged: True                                                      │

00:01:49 #4054 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4055 [Verbose] > │         IsDeleted: False                                                     │

00:01:49 #4056 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4057 [Verbose] > │       - path: file_1.txt                                                     │

00:01:49 #4058 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4059 [Verbose] > │         IsChanged: False                                                     │

00:01:49 #4060 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4061 [Verbose] > │         IsDeleted: True                                                      │

00:01:49 #4062 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4063 [Verbose] > │       - path: file_2.txt                                                     │

00:01:49 #4064 [Verbose] > │         IsFailure: False                                                     │

00:01:49 #4065 [Verbose] > │         IsChanged: False                                                     │

00:01:49 #4066 [Verbose] > │         IsCreated: False                                                     │

00:01:49 #4067 [Verbose] > │         IsDeleted: True                                                      │

00:01:49 #4068 [Verbose] > │         IsRenamed: False                                                     │

00:01:49 #4069 [Verbose] > │ FSharpOption<Unit>                                                           │

00:01:49 #4070 [Verbose] > │       Value: <null>                                                          │

00:01:49 #4071 [Verbose] > │                                                                              │

00:01:49 #4072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:49 #4073 [Verbose] >

00:01:49 #4074 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:49 #4075 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:49 #4076 [Verbose] > │ #### slow (test)                                                             │

00:01:49 #4077 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:49 #4078 [Verbose] >

00:01:49 #4079 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:49 #4080 [Verbose] > //// test

00:01:49 #4081 [Verbose] >

00:01:49 #4082 [Verbose] > let inline write path = async {

00:01:49 #4083 [Verbose] >     let n = 2

00:01:49 #4084 [Verbose] >

00:01:49 #4085 [Verbose] >     let contents =

00:01:49 #4086 [Verbose] >         [[ 1 .. n ]]

00:01:49 #4087 [Verbose] >         |> List.map (string >> String.replicate 1_000_000)

00:01:49 #4088 [Verbose] >

00:01:49 #4089 [Verbose] >     for i = 1 to n do

00:01:49 #4090 [Verbose] >         do! $"{contents.[[i - 1]]}a" |> writeAllTextAsync (path </>

00:01:49 #4091 [Verbose] > $"file{i}.txt")

00:01:49 #4092 [Verbose] >

00:01:49 #4093 [Verbose] >     do! Async.Sleep 1500

00:01:49 #4094 [Verbose] >

00:01:49 #4095 [Verbose] >     for i = 1 to n do

00:01:49 #4096 [Verbose] >         do! $"{contents.[[i - 1]]}b" |> writeAllTextAsync (path </>

00:01:49 #4097 [Verbose] > $"file{i}.txt")

00:01:49 #4098 [Verbose] >

00:01:49 #4099 [Verbose] >     do! Async.Sleep 1500

00:01:49 #4100 [Verbose] >

00:01:49 #4101 [Verbose] >     for i = 1 to n do

00:01:49 #4102 [Verbose] >         do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")

00:01:49 #4103 [Verbose] > |> Async.Ignore

00:01:49 #4104 [Verbose] >

00:01:49 #4105 [Verbose] >     do! Async.Sleep 1500

00:01:49 #4106 [Verbose] >

00:01:49 #4107 [Verbose] >     for i = 1 to n do

00:01:49 #4108 [Verbose] >         do! $"{contents.[[i - 1]]}c" |> writeAllTextAsync (path </>

00:01:49 #4109 [Verbose] > $"file_{i}.txt")

00:01:49 #4110 [Verbose] >

00:01:49 #4111 [Verbose] >     do! Async.Sleep 1500

00:01:49 #4112 [Verbose] >

00:01:49 #4113 [Verbose] >     for i = 1 to n do

00:01:49 #4114 [Verbose] >         do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

00:01:49 #4115 [Verbose] >

00:01:49 #4116 [Verbose] >     do! Async.Sleep 1500

00:01:49 #4117 [Verbose] > }

00:01:49 #4118 [Verbose] >

00:01:49 #4119 [Verbose] > let inline run () =

00:01:49 #4120 [Verbose] >     let events =

00:01:49 #4121 [Verbose] >         testEventsRaw watchDirectory write

00:01:49 #4122 [Verbose] >         |> List.map (function

00:01:49 #4123 [Verbose] >             | FileSystemChange.Changed (path, Some content) ->

00:01:49 #4124 [Verbose] >                 FileSystemChange.Changed (path, content |> Seq.distinct |>

00:01:49 #4125 [Verbose] > Seq.map string |> SpiralSm.concat "" |> Some)

00:01:49 #4126 [Verbose] >             | FileSystemChange.Created (path, Some content) ->

00:01:49 #4127 [Verbose] >                 FileSystemChange.Created (path, content |> Seq.distinct |>

00:01:49 #4128 [Verbose] > Seq.map string |> SpiralSm.concat "" |> Some)

00:01:49 #4129 [Verbose] >             | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->

00:01:49 #4130 [Verbose] >                 FileSystemChange.Renamed (

00:01:49 #4131 [Verbose] >                     oldPath,

00:01:49 #4132 [Verbose] >                     (newPath, content |> Seq.distinct |> Seq.map string |>

00:01:49 #4133 [Verbose] > SpiralSm.concat "" |> Some)

00:01:49 #4134 [Verbose] >                 )

00:01:49 #4135 [Verbose] >             | event -> event

00:01:49 #4136 [Verbose] >         )

00:01:49 #4137 [Verbose] >

00:01:49 #4138 [Verbose] >     events

00:01:49 #4139 [Verbose] >     |> _sequenceEqual [[

00:01:49 #4140 [Verbose] >         FileSystemChange.Created ("file1.txt", Some "1a")

00:01:49 #4141 [Verbose] >         FileSystemChange.Changed ("file1.txt", Some "1a")

00:01:49 #4142 [Verbose] >         FileSystemChange.Created ("file2.txt", Some "2a")

00:01:49 #4143 [Verbose] >         FileSystemChange.Changed ("file2.txt", Some "2a")

00:01:49 #4144 [Verbose] >

00:01:49 #4145 [Verbose] >         FileSystemChange.Changed ("file1.txt", Some "1b")

00:01:49 #4146 [Verbose] >         FileSystemChange.Changed ("file2.txt", Some "2b")

00:01:49 #4147 [Verbose] >

00:01:49 #4148 [Verbose] >         FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b"))

00:01:49 #4149 [Verbose] >         FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b"))

00:01:49 #4150 [Verbose] >

00:01:49 #4151 [Verbose] >         FileSystemChange.Changed ("file_1.txt", Some "1c")

00:01:49 #4152 [Verbose] >         FileSystemChange.Changed ("file_2.txt", Some "2c")

00:01:49 #4153 [Verbose] >

00:01:49 #4154 [Verbose] >         FileSystemChange.Deleted "file_1.txt"

00:01:49 #4155 [Verbose] >         FileSystemChange.Deleted "file_2.txt"

00:01:49 #4156 [Verbose] >     ]]

00:01:49 #4157 [Verbose] >

00:01:49 #4158 [Verbose] > run

00:01:49 #4159 [Verbose] > |> retry_fn 5

00:01:49 #4160 [Verbose] > |> _assertEqual (Some ())

00:02:01 #4161 [Verbose] >

00:02:01 #4162 [Verbose] > ╭─[ 12.28s - stdout ]──────────────────────────────────────────────────────────╮

00:02:01 #4163 [Verbose] > │ 00:00:21 #53 [Debug] watchWithFilter / readContent / retry: 0 / ex:          │

00:02:01 #4164 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot  │

00:02:01 #4165 [Verbose] > │ access the file                                                              │

00:02:01 #4166 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4167 [Verbose] > │ 993b4611\file1.txt' because it is being used by another process.)            │

00:02:01 #4168 [Verbose] > │ 00:00:21 #54 [Debug] watchWithFilter / readContent / retry: 0 / ex:          │

00:02:01 #4169 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot  │

00:02:01 #4170 [Verbose] > │ access the file                                                              │

00:02:01 #4171 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4172 [Verbose] > │ 993b4611\file2.txt' because it is being used by another process.)            │

00:02:01 #4173 [Verbose] > │ 00:00:21 #55 [Debug] waitForFileAccess / path: file2.txt / ex:               │

00:02:01 #4174 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:02:01 #4175 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4176 [Verbose] > │ 993b4611\file2.txt' because it is being used by another process.             │

00:02:01 #4177 [Verbose] > │ 00:00:24 #56 [Debug] watchWithFilter / readContent / retry: 0 / ex:          │

00:02:01 #4178 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot  │

00:02:01 #4179 [Verbose] > │ access the file                                                              │

00:02:01 #4180 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4181 [Verbose] > │ 993b4611\file_1.txt' because it is being used by another process.)           │

00:02:01 #4182 [Verbose] > │ 00:00:24 #57 [Debug] waitForFileAccess / path: file_1.txt / ex:              │

00:02:01 #4183 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:02:01 #4184 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4185 [Verbose] > │ 993b4611\file_1.txt' because it is being used by another process.            │

00:02:01 #4186 [Verbose] > │ 00:00:24 #58 [Debug] watchWithFilter / readContent / retry: 0 / ex:          │

00:02:01 #4187 [Verbose] > │ System.AggregateException: One or more errors occurred. (The process cannot  │

00:02:01 #4188 [Verbose] > │ access the file                                                              │

00:02:01 #4189 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4190 [Verbose] > │ 993b4611\file_2.txt' because it is being used by another process.)           │

00:02:01 #4191 [Verbose] > │ 00:00:24 #59 [Debug] waitForFileAccess / path: file_2.txt / ex:              │

00:02:01 #4192 [Verbose] > │ System.IO.IOException: The process cannot access the file                    │

00:02:01 #4193 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1247-1140-4037-4df4 │

00:02:01 #4194 [Verbose] > │ 993b4611\file_2.txt' because it is being used by another process.            │

00:02:01 #4195 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:01 #4196 [Verbose] > │       Value: <null>                                                          │

00:02:01 #4197 [Verbose] > │ 00:00:27 #60 [Debug] watchWithFilter / Disposing watch stream / filter:      │

00:02:01 #4198 [Verbose] > │ FileName, LastWrite                                                          │

00:02:01 #4199 [Verbose] > │ 00:00:28 #61 [Debug] testEventsRaw / eventsLog:                              │

00:02:01 #4200 [Verbose] > │ 0 / 638478460316541646 / Created                                             │

00:02:01 #4201 [Verbose] > │   ("file1.txt",                                                              │

00:02:01 #4202 [Verbose] > │  ...11111111111111111111111111111111111111111111111a")                       │

00:02:01 #4203 [Verbose] > │ 1 / 638478460316541647 / Changed                                             │

00:02:01 #4204 [Verbose] > │   ("file1.txt",                                                              │

00:02:01 #4205 [Verbose] > │  ...11111111111111111111111111111111111111111111111a")                       │

00:02:01 #4206 [Verbose] > │ 51698 / 638478460316593345 / Changed                                         │

00:02:01 #4207 [Verbose] > │   ("file1.txt...11111111111111111111111111111111111111111111111a")           │

00:02:01 #4208 [Verbose] > │ 15224 / 638478460316608569 / Created                                         │

00:02:01 #4209 [Verbose] > │   ("file2.txt...22222222222222222222222222222222222222222222222a")           │

00:02:01 #4210 [Verbose] > │ 1 / 638478460316608570 / Changed                                             │

00:02:01 #4211 [Verbose] > │   ("file2.txt",                                                              │

00:02:01 #4212 [Verbose] > │  ...22222222222222222222222222222222222222222222222a")                       │

00:02:01 #4213 [Verbose] > │ 48585 / 638478460316657155 / Changed                                         │

00:02:01 #4214 [Verbose] > │   ("file2.txt...22222222222222222222222222222222222222222222222a")           │

00:02:01 #4215 [Verbose] > │ 15164275 / 638478460331821430 / Changed                                      │

00:02:01 #4216 [Verbose] > │   ("file1....11111111111111111111111111111111111111111111111b")              │

00:02:01 #4217 [Verbose] > │ 230164 / 638478460332051594 / Changed                                        │

00:02:01 #4218 [Verbose] > │   ("file1.tx...11111111111111111111111111111111111111111111111b")            │

00:02:01 #4219 [Verbose] > │ 198510 / 638478460332250104 / Changed                                        │

00:02:01 #4220 [Verbose] > │   ("file2.tx...22222222222222222222222222222222222222222222222b")            │

00:02:01 #4221 [Verbose] > │ 122158 / 638478460332372262 / Changed                                        │

00:02:01 #4222 [Verbose] > │   ("file2.tx...22222222222222222222222222222222222222222222222b")            │

00:02:01 #4223 [Verbose] > │ 15109884 / 638478460347482146 / Renamed                                      │

00:02:01 #4224 [Verbose] > │   ("file1....1111111111111111111111111111111111111111111111b"))              │

00:02:01 #4225 [Verbose] > │ 15217 / 638478460347497363 / Renamed                                         │

00:02:01 #4226 [Verbose] > │   ("file2.txt...2222222222222222222222222222222222222222222222b"))           │

00:02:01 #4227 [Verbose] > │ 15160055 / 638478460362657418 / Changed                                      │

00:02:01 #4228 [Verbose] > │   ("file_1...11111111111111111111111111111111111111111111111c")              │

00:02:01 #4229 [Verbose] > │ 207679 / 638478460362865097 / Changed                                        │

00:02:01 #4230 [Verbose] > │   ("file_1.t...11111111111111111111111111111111111111111111111c")            │

00:02:01 #4231 [Verbose] > │ 60562 / 638478460362925659 / Changed                                         │

00:02:01 #4232 [Verbose] > │   ("file_2.tx...22222222222222222222222222222222222222222222222c")           │

00:02:01 #4233 [Verbose] > │ 142587 / 638478460363068246 / Changed                                        │

00:02:01 #4234 [Verbose] > │   ("file_2.t...22222222222222222222222222222222222222222222222c")            │

00:02:01 #4235 [Verbose] > │ 15027857 / 638478460378096103 / Deleted "file_1.txt"                         │

00:02:01 #4236 [Verbose] > │ 12437 / 638478460378108540 / Deleted "file_2.txt"                            │

00:02:01 #4237 [Verbose] > │ FSharpList<FileSystemChange>                                                 │

00:02:01 #4238 [Verbose] > │       - path: file1.txt                                                      │

00:02:01 #4239 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4240 [Verbose] > │           Value: 1a                                                          │

00:02:01 #4241 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4242 [Verbose] > │         IsChanged: False                                                     │

00:02:01 #4243 [Verbose] > │         IsCreated: True                                                      │

00:02:01 #4244 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4245 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4246 [Verbose] > │       - path: file1.txt                                                      │

00:02:01 #4247 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4248 [Verbose] > │           Value: 1a                                                          │

00:02:01 #4249 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4250 [Verbose] > │         IsChanged: True                                                      │

00:02:01 #4251 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4252 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4253 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4254 [Verbose] > │       - path: file2.txt                                                      │

00:02:01 #4255 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4256 [Verbose] > │           Value: 2a                                                          │

00:02:01 #4257 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4258 [Verbose] > │         IsChanged: False                                                     │

00:02:01 #4259 [Verbose] > │         IsCreated: True                                                      │

00:02:01 #4260 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4261 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4262 [Verbose] > │       - path: file2.txt                                                      │

00:02:01 #4263 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4264 [Verbose] > │           Value: 2a                                                          │

00:02:01 #4265 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4266 [Verbose] > │         IsChanged: True                                                      │

00:02:01 #4267 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4268 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4269 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4270 [Verbose] > │       - path: file1.txt                                                      │

00:02:01 #4271 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4272 [Verbose] > │           Value: 1b                                                          │

00:02:01 #4273 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4274 [Verbose] > │         IsChanged: True                                                      │

00:02:01 #4275 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4276 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4277 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4278 [Verbose] > │       - path: file2.txt                                                      │

00:02:01 #4279 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4280 [Verbose] > │           Value: 2b                                                          │

00:02:01 #4281 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4282 [Verbose] > │         IsChanged: True                                                      │

00:02:01 #4283 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4284 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4285 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4286 [Verbose] > │       - oldPath: file1.txt                                                   │

00:02:01 #4287 [Verbose] > │         Item2:         - file_1.txt                                          │

00:02:01 #4288 [Verbose] > │         - FSharpOption<String>                                               │

00:02:01 #4289 [Verbose] > │             Value: 1b                                                        │

00:02:01 #4290 [Verbose] > │       - IsFailure: False                                                     │

00:02:01 #4291 [Verbose] > │         IsChanged: False                                                     │

00:02:01 #4292 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4293 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4294 [Verbose] > │         IsRenamed: True                                                      │

00:02:01 #4295 [Verbose] > │       - oldPath: file2.txt                                                   │

00:02:01 #4296 [Verbose] > │         Item2:         - file_2.txt                                          │

00:02:01 #4297 [Verbose] > │         - FSharpOption<String>                                               │

00:02:01 #4298 [Verbose] > │             Value: 2b                                                        │

00:02:01 #4299 [Verbose] > │       - IsFailure: False                                                     │

00:02:01 #4300 [Verbose] > │         IsChanged: False                                                     │

00:02:01 #4301 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4302 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4303 [Verbose] > │         IsRenamed: True                                                      │

00:02:01 #4304 [Verbose] > │       - path: file_1.txt                                                     │

00:02:01 #4305 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4306 [Verbose] > │           Value: 1c                                                          │

00:02:01 #4307 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4308 [Verbose] > │         IsChanged: True                                                      │

00:02:01 #4309 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4310 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4311 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4312 [Verbose] > │       - path: file_2.txt                                                     │

00:02:01 #4313 [Verbose] > │         content: FSharpOption<String>                                        │

00:02:01 #4314 [Verbose] > │           Value: 2c                                                          │

00:02:01 #4315 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4316 [Verbose] > │         IsChanged: True                                                      │

00:02:01 #4317 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4318 [Verbose] > │         IsDeleted: False                                                     │

00:02:01 #4319 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4320 [Verbose] > │       - path: file_1.txt                                                     │

00:02:01 #4321 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4322 [Verbose] > │         IsChanged: False                                                     │

00:02:01 #4323 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4324 [Verbose] > │         IsDeleted: True                                                      │

00:02:01 #4325 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4326 [Verbose] > │       - path: file_2.txt                                                     │

00:02:01 #4327 [Verbose] > │         IsFailure: False                                                     │

00:02:01 #4328 [Verbose] > │         IsChanged: False                                                     │

00:02:01 #4329 [Verbose] > │         IsCreated: False                                                     │

00:02:01 #4330 [Verbose] > │         IsDeleted: True                                                      │

00:02:01 #4331 [Verbose] > │         IsRenamed: False                                                     │

00:02:01 #4332 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:01 #4333 [Verbose] > │       Value: <null>                                                          │

00:02:01 #4334 [Verbose] > │                                                                              │

00:02:01 #4335 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:01 #4336 [Verbose] >

00:02:01 #4337 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:01 #4338 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:01 #4339 [Verbose] > │ ### testEventsSorted (test)                                                  │

00:02:01 #4340 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:01 #4341 [Verbose] >

00:02:01 #4342 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:01 #4343 [Verbose] > //// test

00:02:01 #4344 [Verbose] >

00:02:01 #4345 [Verbose] > let inline sortEvent event =

00:02:01 #4346 [Verbose] >     match event with

00:02:01 #4347 [Verbose] >     | FileSystemChange.Failure _ -> 0

00:02:01 #4348 [Verbose] >     | FileSystemChange.Created _ -> 1

00:02:01 #4349 [Verbose] >     | FileSystemChange.Changed _ -> 2

00:02:01 #4350 [Verbose] >     | FileSystemChange.Renamed (_oldPath, _) -> 3

00:02:01 #4351 [Verbose] >     | FileSystemChange.Deleted _ -> 4

00:02:01 #4352 [Verbose] >

00:02:01 #4353 [Verbose] > let inline formatEvents events =

00:02:01 #4354 [Verbose] >     events

00:02:01 #4355 [Verbose] >     |> Seq.toList

00:02:01 #4356 [Verbose] >     |> List.sortBy (snd >> sortEvent)

00:02:01 #4357 [Verbose] >     |> List.choose (fun (ticks, event) ->

00:02:01 #4358 [Verbose] >         match event with

00:02:01 #4359 [Verbose] >         | FileSystemChange.Failure _ ->

00:02:01 #4360 [Verbose] >             None

00:02:01 #4361 [Verbose] >         | FileSystemChange.Changed (path, _) ->

00:02:01 #4362 [Verbose] >             Some (ticks, System.IO.Path.GetFileName path, nameof

00:02:01 #4363 [Verbose] > FileSystemChangeType.Changed)

00:02:01 #4364 [Verbose] >         | FileSystemChange.Created (path, _) ->

00:02:01 #4365 [Verbose] >             Some (ticks, System.IO.Path.GetFileName path, nameof

00:02:01 #4366 [Verbose] > FileSystemChangeType.Created)

00:02:01 #4367 [Verbose] >         | FileSystemChange.Deleted path ->

00:02:01 #4368 [Verbose] >             Some (ticks, System.IO.Path.GetFileName path, nameof

00:02:01 #4369 [Verbose] > FileSystemChangeType.Deleted)

00:02:01 #4370 [Verbose] >         | FileSystemChange.Renamed (_oldPath, (path, _)) ->

00:02:01 #4371 [Verbose] >             Some (ticks, System.IO.Path.GetFileName path, nameof

00:02:01 #4372 [Verbose] > FileSystemChangeType.Renamed)

00:02:01 #4373 [Verbose] >     )

00:02:01 #4374 [Verbose] >     |> List.sortBy (fun (_, path, _) -> path)

00:02:01 #4375 [Verbose] >     |> List.distinctBy (fun (_, path, event) -> path, event)

00:02:01 #4376 [Verbose] >

00:02:01 #4377 [Verbose] > let inline testEventsSorted

00:02:01 #4378 [Verbose] >     (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> *

00:02:01 #4379 [Verbose] > IDisposable)

00:02:01 #4380 [Verbose] >     write

00:02:01 #4381 [Verbose] >     =

00:02:01 #4382 [Verbose] >     let path = SpiralFileSystem.create_temp_directory ()

00:02:01 #4383 [Verbose] >     let stream, disposable = watchFn path

00:02:01 #4384 [Verbose] >

00:02:01 #4385 [Verbose] >     let events = System.Collections.Concurrent.ConcurrentBag ()

00:02:01 #4386 [Verbose] >

00:02:01 #4387 [Verbose] >     let inline iter () =

00:02:01 #4388 [Verbose] >         stream

00:02:01 #4389 [Verbose] >         |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {

00:02:01 #4390 [Verbose] > events.Add event })

00:02:01 #4391 [Verbose] >

00:02:01 #4392 [Verbose] >     let run = async {

00:02:01 #4393 [Verbose] >         let! _ = iter () |> Async.StartChild

00:02:01 #4394 [Verbose] >         do! Async.Sleep 250

00:02:01 #4395 [Verbose] >         return! write path

00:02:01 #4396 [Verbose] >     }

00:02:01 #4397 [Verbose] >

00:02:01 #4398 [Verbose] >     try

00:02:01 #4399 [Verbose] >         run

00:02:01 #4400 [Verbose] >         |> Async.runWithTimeout 5000

00:02:01 #4401 [Verbose] >         |> _assertEqual (Some ())

00:02:01 #4402 [Verbose] >     finally

00:02:01 #4403 [Verbose] >         disposable.Dispose ()

00:02:01 #4404 [Verbose] >         deleteDirectoryAsync path |> Async.Ignore |> Async.RunSynchronously

00:02:01 #4405 [Verbose] >

00:02:01 #4406 [Verbose] >     let events = formatEvents events

00:02:01 #4407 [Verbose] >

00:02:01 #4408 [Verbose] >     let eventMap =

00:02:01 #4409 [Verbose] >         events

00:02:01 #4410 [Verbose] >         |> List.map (fun (ticks, path, event) -> path, (event, ticks))

00:02:01 #4411 [Verbose] >         |> List.groupBy fst

00:02:01 #4412 [Verbose] >         |> List.map (fun (path, events) ->

00:02:01 #4413 [Verbose] >             let event, _ticks =

00:02:01 #4414 [Verbose] >                 events

00:02:01 #4415 [Verbose] >                 |> List.map snd

00:02:01 #4416 [Verbose] >                 |> List.sortByDescending snd

00:02:01 #4417 [Verbose] >                 |> List.head

00:02:01 #4418 [Verbose] >

00:02:01 #4419 [Verbose] >             path, event

00:02:01 #4420 [Verbose] >         )

00:02:01 #4421 [Verbose] >         |> Map.ofList

00:02:01 #4422 [Verbose] >

00:02:01 #4423 [Verbose] >     let eventList =

00:02:01 #4424 [Verbose] >         events

00:02:01 #4425 [Verbose] >         |> List.map (fun (_ticks, path, event) -> path, event)

00:02:01 #4426 [Verbose] >

00:02:01 #4427 [Verbose] >     eventMap, eventList

00:02:01 #4428 [Verbose] >

00:02:01 #4429 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:01 #4430 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:01 #4431 [Verbose] > │ #### create and delete (test)                                                │

00:02:01 #4432 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:01 #4433 [Verbose] >

00:02:01 #4434 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:01 #4435 [Verbose] > //// test

00:02:01 #4436 [Verbose] >

00:02:01 #4437 [Verbose] > let inline write path = async {

00:02:01 #4438 [Verbose] >     let n = 3

00:02:01 #4439 [Verbose] >

00:02:01 #4440 [Verbose] >     for i = 1 to n do

00:02:01 #4441 [Verbose] >         do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

00:02:01 #4442 [Verbose] >

00:02:01 #4443 [Verbose] >     for i = 1 to n do

00:02:01 #4444 [Verbose] >         do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore

00:02:01 #4445 [Verbose] >

00:02:01 #4446 [Verbose] >     do! Async.Sleep 150

00:02:01 #4447 [Verbose] > }

00:02:01 #4448 [Verbose] >

00:02:01 #4449 [Verbose] > let inline run () =

00:02:01 #4450 [Verbose] >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))

00:02:01 #4451 [Verbose] > write

00:02:01 #4452 [Verbose] >

00:02:01 #4453 [Verbose] >     [[

00:02:01 #4454 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Created

00:02:01 #4455 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Changed

00:02:01 #4456 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Deleted

00:02:01 #4457 [Verbose] >

00:02:01 #4458 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Created

00:02:01 #4459 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Changed

00:02:01 #4460 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Deleted

00:02:01 #4461 [Verbose] >

00:02:01 #4462 [Verbose] >         "file3.txt", nameof FileSystemChangeType.Created

00:02:01 #4463 [Verbose] >         "file3.txt", nameof FileSystemChangeType.Changed

00:02:01 #4464 [Verbose] >         "file3.txt", nameof FileSystemChangeType.Deleted

00:02:01 #4465 [Verbose] >     ]]

00:02:01 #4466 [Verbose] >     |> _sequenceEqual eventList

00:02:01 #4467 [Verbose] >

00:02:01 #4468 [Verbose] >     [[

00:02:01 #4469 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Deleted

00:02:01 #4470 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Deleted

00:02:01 #4471 [Verbose] >         "file3.txt", nameof FileSystemChangeType.Deleted

00:02:01 #4472 [Verbose] >     ]]

00:02:01 #4473 [Verbose] >     |> Map.ofList

00:02:01 #4474 [Verbose] >     |> _sequenceEqual eventMap

00:02:01 #4475 [Verbose] >

00:02:01 #4476 [Verbose] > run

00:02:01 #4477 [Verbose] > |> retry_fn 3

00:02:01 #4478 [Verbose] > |> _assertEqual (Some ())

00:02:05 #4479 [Verbose] >

00:02:05 #4480 [Verbose] > ╭─[ 3.28s - stdout ]───────────────────────────────────────────────────────────╮

00:02:05 #4481 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:05 #4482 [Verbose] > │       Value: <null>                                                          │

00:02:05 #4483 [Verbose] > │ 00:00:31 #62 [Debug] watchWithFilter / Disposing watch stream / filter:      │

00:02:05 #4484 [Verbose] > │ FileName, LastWrite                                                          │

00:02:05 #4485 [Verbose] > │ FSharpList<Tuple<String,String>>                                             │

00:02:05 #4486 [Verbose] > │ ( file1.txt, Created )                                                       │

00:02:05 #4487 [Verbose] > │ ( file1.txt, Changed )                                                       │

00:02:05 #4488 [Verbose] > │ ( file1.txt, Deleted )                                                       │

00:02:05 #4489 [Verbose] > │ ( file2.txt, Created )                                                       │

00:02:05 #4490 [Verbose] > │ ( file2.txt, Changed )                                                       │

00:02:05 #4491 [Verbose] > │ ( file2.txt, Deleted )                                                       │

00:02:05 #4492 [Verbose] > │ ( file3.txt, Created )                                                       │

00:02:05 #4493 [Verbose] > │ ( file3.txt, Changed )                                                       │

00:02:05 #4494 [Verbose] > │ ( file3.txt, Deleted )                                                       │

00:02:05 #4495 [Verbose] > │ FSharpMap<String,String>                                                     │

00:02:05 #4496 [Verbose] > │       - Key: file1.txt                                                       │

00:02:05 #4497 [Verbose] > │         Value: Deleted                                                       │

00:02:05 #4498 [Verbose] > │       - Key: file2.txt                                                       │

00:02:05 #4499 [Verbose] > │         Value: Deleted                                                       │

00:02:05 #4500 [Verbose] > │       - Key: file3.txt                                                       │

00:02:05 #4501 [Verbose] > │         Value: Deleted                                                       │

00:02:05 #4502 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:05 #4503 [Verbose] > │       Value: <null>                                                          │

00:02:05 #4504 [Verbose] > │                                                                              │

00:02:05 #4505 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:05 #4506 [Verbose] >

00:02:05 #4507 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:05 #4508 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:05 #4509 [Verbose] > │ #### change (test)                                                           │

00:02:05 #4510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:05 #4511 [Verbose] >

00:02:05 #4512 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:05 #4513 [Verbose] > //// test

00:02:05 #4514 [Verbose] >

00:02:05 #4515 [Verbose] > let inline write path = async {

00:02:05 #4516 [Verbose] >     let n = 2

00:02:05 #4517 [Verbose] >

00:02:05 #4518 [Verbose] >     for i = 1 to n do

00:02:05 #4519 [Verbose] >         do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

00:02:05 #4520 [Verbose] >

00:02:05 #4521 [Verbose] >     for i = 1 to n do

00:02:05 #4522 [Verbose] >         do! "" |> writeAllTextAsync (path </> $"file{i}.txt")

00:02:05 #4523 [Verbose] >

00:02:05 #4524 [Verbose] >     for i = 1 to n do

00:02:05 #4525 [Verbose] >         do! deleteFileAsync (path </> $"file{i}.txt") |> Async.Ignore

00:02:05 #4526 [Verbose] >

00:02:05 #4527 [Verbose] >     do! Async.Sleep 150

00:02:05 #4528 [Verbose] > }

00:02:05 #4529 [Verbose] >

00:02:05 #4530 [Verbose] > let inline run () =

00:02:05 #4531 [Verbose] >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))

00:02:05 #4532 [Verbose] > write

00:02:05 #4533 [Verbose] >

00:02:05 #4534 [Verbose] >     [[

00:02:05 #4535 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Created

00:02:05 #4536 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Changed

00:02:05 #4537 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Deleted

00:02:05 #4538 [Verbose] >

00:02:05 #4539 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Created

00:02:05 #4540 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Changed

00:02:05 #4541 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Deleted

00:02:05 #4542 [Verbose] >     ]]

00:02:05 #4543 [Verbose] >     |> _sequenceEqual eventList

00:02:05 #4544 [Verbose] >

00:02:05 #4545 [Verbose] >     [[

00:02:05 #4546 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Deleted

00:02:05 #4547 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Deleted

00:02:05 #4548 [Verbose] >     ]]

00:02:05 #4549 [Verbose] >     |> Map.ofList

00:02:05 #4550 [Verbose] >     |> _sequenceEqual eventMap

00:02:05 #4551 [Verbose] >

00:02:05 #4552 [Verbose] > run

00:02:05 #4553 [Verbose] > |> retry_fn 3

00:02:05 #4554 [Verbose] > |> _assertEqual (Some ())

00:02:08 #4555 [Verbose] >

00:02:08 #4556 [Verbose] > ╭─[ 3.89s - stdout ]───────────────────────────────────────────────────────────╮

00:02:08 #4557 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:08 #4558 [Verbose] > │       Value: <null>                                                          │

00:02:08 #4559 [Verbose] > │ 00:00:35 #63 [Debug] watchWithFilter / Disposing watch stream / filter:      │

00:02:08 #4560 [Verbose] > │ FileName, LastWrite                                                          │

00:02:08 #4561 [Verbose] > │ FSharpList<Tuple<String,String>>                                             │

00:02:08 #4562 [Verbose] > │ ( file1.txt, Created )                                                       │

00:02:08 #4563 [Verbose] > │ ( file1.txt, Changed )                                                       │

00:02:08 #4564 [Verbose] > │ ( file1.txt, Deleted )                                                       │

00:02:08 #4565 [Verbose] > │ ( file2.txt, Created )                                                       │

00:02:08 #4566 [Verbose] > │ ( file2.txt, Changed )                                                       │

00:02:08 #4567 [Verbose] > │ ( file2.txt, Deleted )                                                       │

00:02:08 #4568 [Verbose] > │ FSharpMap<String,String>                                                     │

00:02:08 #4569 [Verbose] > │       - Key: file1.txt                                                       │

00:02:08 #4570 [Verbose] > │         Value: Deleted                                                       │

00:02:08 #4571 [Verbose] > │       - Key: file2.txt                                                       │

00:02:08 #4572 [Verbose] > │         Value: Deleted                                                       │

00:02:08 #4573 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:08 #4574 [Verbose] > │       Value: <null>                                                          │

00:02:08 #4575 [Verbose] > │                                                                              │

00:02:08 #4576 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #4577 [Verbose] >

00:02:08 #4578 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:08 #4579 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:08 #4580 [Verbose] > │ #### rename (test)                                                           │

00:02:08 #4581 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #4582 [Verbose] >

00:02:08 #4583 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:08 #4584 [Verbose] > //// test

00:02:08 #4585 [Verbose] >

00:02:08 #4586 [Verbose] > let inline write path = async {

00:02:08 #4587 [Verbose] >     let n = 2

00:02:08 #4588 [Verbose] >

00:02:08 #4589 [Verbose] >     for i = 1 to n do

00:02:08 #4590 [Verbose] >         do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

00:02:08 #4591 [Verbose] >

00:02:08 #4592 [Verbose] >     for i = 1 to n do

00:02:08 #4593 [Verbose] >         do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")

00:02:08 #4594 [Verbose] > |> Async.Ignore

00:02:08 #4595 [Verbose] >

00:02:08 #4596 [Verbose] >     for i = 1 to n do

00:02:08 #4597 [Verbose] >         do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

00:02:08 #4598 [Verbose] >

00:02:08 #4599 [Verbose] >     do! Async.Sleep 150

00:02:08 #4600 [Verbose] > }

00:02:08 #4601 [Verbose] >

00:02:08 #4602 [Verbose] > let inline run () =

00:02:08 #4603 [Verbose] >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))

00:02:08 #4604 [Verbose] > write

00:02:08 #4605 [Verbose] >

00:02:08 #4606 [Verbose] >     [[

00:02:08 #4607 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Created

00:02:08 #4608 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Changed

00:02:08 #4609 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Created

00:02:08 #4610 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Changed

00:02:08 #4611 [Verbose] >

00:02:08 #4612 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Renamed

00:02:08 #4613 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Deleted

00:02:08 #4614 [Verbose] >

00:02:08 #4615 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Renamed

00:02:08 #4616 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Deleted

00:02:08 #4617 [Verbose] >     ]]

00:02:08 #4618 [Verbose] >     |> _sequenceEqual eventList

00:02:08 #4619 [Verbose] >

00:02:08 #4620 [Verbose] >     [[

00:02:08 #4621 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Changed

00:02:08 #4622 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Changed

00:02:08 #4623 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Deleted

00:02:08 #4624 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Deleted

00:02:08 #4625 [Verbose] >     ]]

00:02:08 #4626 [Verbose] >     |> Map.ofList

00:02:08 #4627 [Verbose] >     |> _sequenceEqual eventMap

00:02:08 #4628 [Verbose] >

00:02:08 #4629 [Verbose] > run

00:02:08 #4630 [Verbose] > |> retry_fn 3

00:02:08 #4631 [Verbose] > |> _assertEqual (Some ())

00:02:13 #4632 [Verbose] >

00:02:13 #4633 [Verbose] > ╭─[ 4.20s - stdout ]───────────────────────────────────────────────────────────╮

00:02:13 #4634 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:13 #4635 [Verbose] > │       Value: <null>                                                          │

00:02:13 #4636 [Verbose] > │ 00:00:40 #64 [Debug] watchWithFilter / Disposing watch stream / filter:      │

00:02:13 #4637 [Verbose] > │ FileName, LastWrite                                                          │

00:02:13 #4638 [Verbose] > │ FSharpList<Tuple<String,String>>                                             │

00:02:13 #4639 [Verbose] > │ ( file1.txt, Created )                                                       │

00:02:13 #4640 [Verbose] > │ ( file1.txt, Changed )                                                       │

00:02:13 #4641 [Verbose] > │ ( file2.txt, Created )                                                       │

00:02:13 #4642 [Verbose] > │ ( file2.txt, Changed )                                                       │

00:02:13 #4643 [Verbose] > │ ( file_1.txt, Renamed )                                                      │

00:02:13 #4644 [Verbose] > │ ( file_1.txt, Deleted )                                                      │

00:02:13 #4645 [Verbose] > │ ( file_2.txt, Renamed )                                                      │

00:02:13 #4646 [Verbose] > │ ( file_2.txt, Deleted )                                                      │

00:02:13 #4647 [Verbose] > │ FSharpMap<String,String>                                                     │

00:02:13 #4648 [Verbose] > │       - Key: file1.txt                                                       │

00:02:13 #4649 [Verbose] > │         Value: Changed                                                       │

00:02:13 #4650 [Verbose] > │       - Key: file2.txt                                                       │

00:02:13 #4651 [Verbose] > │         Value: Changed                                                       │

00:02:13 #4652 [Verbose] > │       - Key: file_1.txt                                                      │

00:02:13 #4653 [Verbose] > │         Value: Deleted                                                       │

00:02:13 #4654 [Verbose] > │       - Key: file_2.txt                                                      │

00:02:13 #4655 [Verbose] > │         Value: Deleted                                                       │

00:02:13 #4656 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:13 #4657 [Verbose] > │       Value: <null>                                                          │

00:02:13 #4658 [Verbose] > │                                                                              │

00:02:13 #4659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:13 #4660 [Verbose] >

00:02:13 #4661 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:13 #4662 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:13 #4663 [Verbose] > │ #### full (test)                                                             │

00:02:13 #4664 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:13 #4665 [Verbose] >

00:02:13 #4666 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:13 #4667 [Verbose] > //// test

00:02:13 #4668 [Verbose] >

00:02:13 #4669 [Verbose] > let inline write path = async {

00:02:13 #4670 [Verbose] >     let n = 2

00:02:13 #4671 [Verbose] >

00:02:13 #4672 [Verbose] >     for i = 1 to n do

00:02:13 #4673 [Verbose] >         do! $"{i}" |> writeAllTextAsync (path </> $"file{i}.txt")

00:02:13 #4674 [Verbose] >

00:02:13 #4675 [Verbose] >     for i = 1 to n do

00:02:13 #4676 [Verbose] >         do! "" |> writeAllTextAsync (path </> $"file{i}.txt")

00:02:13 #4677 [Verbose] >

00:02:13 #4678 [Verbose] >     for i = 1 to n do

00:02:13 #4679 [Verbose] >         do! path </> $"file{i}.txt" |> moveFileAsync (path </> $"file_{i}.txt")

00:02:13 #4680 [Verbose] > |> Async.Ignore

00:02:13 #4681 [Verbose] >

00:02:13 #4682 [Verbose] >     for i = 1 to n do

00:02:13 #4683 [Verbose] >         do! $"{i}" |> writeAllTextAsync (path </> $"file_{i}.txt")

00:02:13 #4684 [Verbose] >

00:02:13 #4685 [Verbose] >     for i = 1 to n do

00:02:13 #4686 [Verbose] >         do! deleteFileAsync (path </> $"file_{i}.txt") |> Async.Ignore

00:02:13 #4687 [Verbose] >

00:02:13 #4688 [Verbose] >     do! Async.Sleep 150

00:02:13 #4689 [Verbose] > }

00:02:13 #4690 [Verbose] >

00:02:13 #4691 [Verbose] > let inline run () =

00:02:13 #4692 [Verbose] >     let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))

00:02:13 #4693 [Verbose] > write

00:02:13 #4694 [Verbose] >

00:02:13 #4695 [Verbose] >     [[

00:02:13 #4696 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Created

00:02:13 #4697 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Changed

00:02:13 #4698 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Created

00:02:13 #4699 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Changed

00:02:13 #4700 [Verbose] >

00:02:13 #4701 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Changed

00:02:13 #4702 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Renamed

00:02:13 #4703 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Deleted

00:02:13 #4704 [Verbose] >

00:02:13 #4705 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Changed

00:02:13 #4706 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Renamed

00:02:13 #4707 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Deleted

00:02:13 #4708 [Verbose] >     ]]

00:02:13 #4709 [Verbose] >     |> _sequenceEqual eventList

00:02:13 #4710 [Verbose] >

00:02:13 #4711 [Verbose] >     [[

00:02:13 #4712 [Verbose] >         "file1.txt", nameof FileSystemChangeType.Changed

00:02:13 #4713 [Verbose] >         "file2.txt", nameof FileSystemChangeType.Changed

00:02:13 #4714 [Verbose] >         "file_1.txt", nameof FileSystemChangeType.Deleted

00:02:13 #4715 [Verbose] >         "file_2.txt", nameof FileSystemChangeType.Deleted

00:02:13 #4716 [Verbose] >     ]]

00:02:13 #4717 [Verbose] >     |> Map.ofList

00:02:13 #4718 [Verbose] >     |> _sequenceEqual eventMap

00:02:13 #4719 [Verbose] >

00:02:13 #4720 [Verbose] > run

00:02:13 #4721 [Verbose] > |> retry_fn 3

00:02:13 #4722 [Verbose] > |> _assertEqual (Some ())

00:02:18 #4723 [Verbose] >

00:02:18 #4724 [Verbose] > ╭─[ 5.43s - stdout ]───────────────────────────────────────────────────────────╮

00:02:18 #4725 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:18 #4726 [Verbose] > │       Value: <null>                                                          │

00:02:18 #4727 [Verbose] > │ 00:00:45 #65 [Debug] watchWithFilter / Disposing watch stream / filter:      │

00:02:18 #4728 [Verbose] > │ FileName, LastWrite                                                          │

00:02:18 #4729 [Verbose] > │ FSharpList<Tuple<String,String>>                                             │

00:02:18 #4730 [Verbose] > │ ( file1.txt, Created )                                                       │

00:02:18 #4731 [Verbose] > │ ( file1.txt, Changed )                                                       │

00:02:18 #4732 [Verbose] > │ ( file2.txt, Created )                                                       │

00:02:18 #4733 [Verbose] > │ ( file2.txt, Changed )                                                       │

00:02:18 #4734 [Verbose] > │ ( file_1.txt, Changed )                                                      │

00:02:18 #4735 [Verbose] > │ ( file_1.txt, Renamed )                                                      │

00:02:18 #4736 [Verbose] > │ ( file_1.txt, Deleted )                                                      │

00:02:18 #4737 [Verbose] > │ ( file_2.txt, Changed )                                                      │

00:02:18 #4738 [Verbose] > │ ( file_2.txt, Renamed )                                                      │

00:02:18 #4739 [Verbose] > │ ( file_2.txt, Deleted )                                                      │

00:02:18 #4740 [Verbose] > │ FSharpMap<String,String>                                                     │

00:02:18 #4741 [Verbose] > │       - Key: file1.txt                                                       │

00:02:18 #4742 [Verbose] > │         Value: Changed                                                       │

00:02:18 #4743 [Verbose] > │       - Key: file2.txt                                                       │

00:02:18 #4744 [Verbose] > │         Value: Changed                                                       │

00:02:18 #4745 [Verbose] > │       - Key: file_1.txt                                                      │

00:02:18 #4746 [Verbose] > │         Value: Deleted                                                       │

00:02:18 #4747 [Verbose] > │       - Key: file_2.txt                                                      │

00:02:18 #4748 [Verbose] > │         Value: Deleted                                                       │

00:02:18 #4749 [Verbose] > │ FSharpOption<Unit>                                                           │

00:02:18 #4750 [Verbose] > │       Value: <null>                                                          │

00:02:18 #4751 [Verbose] > │                                                                              │

00:02:18 #4752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:20 #4753 [Verbose] > [NbConvertApp] Converting notebook FileSystem.dib.ipynb to html

00:02:20 #4754 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:02:20 #4755 [Verbose] >   validate(nb)

00:02:20 #4756 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:02:20 #4757 [Verbose] >   return _pygments_highlight(

00:02:21 #4758 [Verbose] > [NbConvertApp] Writing 451681 bytes to FileSystem.dib.html

00:02:22 #4759 [Debug] executeAsync / exitCode: 0 / output.Length: 89586

00:02:22 #4760 [Debug] main / executeCommand / exitCode: 0

00:02:22 #4761 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Networking.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:02:24 #4762 [Verbose] >

00:02:24 #4763 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:24 #4764 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:24 #4765 [Verbose] > │ # Networking (Polyglot)                                                      │

00:02:24 #4766 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:24 #4767 [Verbose] >

00:02:24 #4768 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:24 #4769 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:02:24 #4770 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:02:24 #4771 [Verbose] >

00:02:24 #4772 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:24 #4773 [Verbose] > #r

00:02:24 #4774 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:02:24 #4775 [Verbose] > spNetCore.Html.Abstractions.dll"

00:02:24 #4776 [Verbose] > #r

00:02:24 #4777 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:02:24 #4778 [Verbose] > otNet.Interactive.dll"

00:02:24 #4779 [Verbose] > #r

00:02:24 #4780 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:02:24 #4781 [Verbose] > otNet.Interactive.FSharp.dll"

00:02:24 #4782 [Verbose] > #r

00:02:24 #4783 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:02:24 #4784 [Verbose] > otNet.Interactive.Formatting.dll"

00:02:24 #4785 [Verbose] > open System

00:02:24 #4786 [Verbose] > open System.IO

00:02:24 #4787 [Verbose] > open System.Text

00:02:24 #4788 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:02:28 #4789 [Verbose] >

00:02:28 #4790 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:28 #4791 [Verbose] > #r

00:02:28 #4792 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:02:28 #4793 [Verbose] > otNet.Interactive.FSharp.dll"

00:02:28 #4794 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:02:28 #4795 [Verbose] > #r

00:02:28 #4796 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:02:28 #4797 [Verbose] > otNet.Interactive.dll"

00:02:28 #4798 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:02:28 #4799 [Verbose] >

00:02:28 #4800 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:28 #4801 [Verbose] > //// test

00:02:28 #4802 [Verbose] >

00:02:28 #4803 [Verbose] > Formatter.ListExpansionLimit <- 100

00:02:28 #4804 [Verbose] >

00:02:28 #4805 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:28 #4806 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:02:28 #4807 [Verbose] >

00:02:28 #4808 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:28 #4809 [Verbose] > //// test

00:02:28 #4810 [Verbose] >

00:02:28 #4811 [Verbose] > type AssertExceptionFormatter (ex) =

00:02:28 #4812 [Verbose] >     member _.Text =

00:02:28 #4813 [Verbose] >         ex.ToString()

00:02:28 #4814 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:02:28 #4815 [Verbose] >             .Replace("36m", "</span>")

00:02:28 #4816 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:02:28 #4817 [Verbose] >             .Replace("\n", "<br/>\n")

00:02:28 #4818 [Verbose] >

00:02:28 #4819 [Verbose] >

00:02:28 #4820 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:02:28 #4821 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:02:29 #4822 [Verbose] >

00:02:29 #4823 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:29 #4824 [Verbose] > //// test

00:02:29 #4825 [Verbose] >

00:02:29 #4826 [Verbose] > let inline __expect fn log expected actual =

00:02:29 #4827 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:02:29 #4828 [Verbose] >     try

00:02:29 #4829 [Verbose] >         "Testing.__expect" |> fn actual expected

00:02:29 #4830 [Verbose] >     with :? Expecto.AssertException as ex ->

00:02:29 #4831 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:02:29 #4832 [Verbose] >         failwith (ex.GetType().FullName)

00:02:29 #4833 [Verbose] >

00:02:29 #4834 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:02:29 #4835 [Verbose] > expected actual

00:02:29 #4836 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:02:29 #4837 [Verbose] >

00:02:29 #4838 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:02:29 #4839 [Verbose] > expected actual

00:02:29 #4840 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:02:29 #4841 [Verbose] >

00:02:29 #4842 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:02:29 #4843 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:02:29 #4844 [Verbose] >

00:02:29 #4845 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:29 #4846 [Verbose] > //// test

00:02:29 #4847 [Verbose] >

00:02:29 #4848 [Verbose] > let inline __isBetween log a b actual =

00:02:29 #4849 [Verbose] >     let inline isBetween actual (a, b) _ =

00:02:29 #4850 [Verbose] >         __isGreaterThanOrEqual log a actual

00:02:29 #4851 [Verbose] >         __isLessThanOrEqual log b actual

00:02:29 #4852 [Verbose] >     __expect isBetween log (a, b) actual

00:02:29 #4853 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:02:29 #4854 [Verbose] >

00:02:29 #4855 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:29 #4856 [Verbose] > #r

00:02:29 #4857 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

00:02:29 #4858 [Verbose] > #r

00:02:29 #4859 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

00:02:29 #4860 [Verbose] > b/net6.0/System.CommandLine.dll"

00:02:30 #4861 [Verbose] >

00:02:30 #4862 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:30 #4863 [Verbose] > #!import ../../lib/spiral/common.fsx

00:02:30 #4864 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:02:30 #4865 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:02:30 #4866 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:02:30 #4867 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:02:30 #4868 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:02:30 #4869 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs

00:02:30 #4870 [Verbose] > #!import ../../lib/fsharp/Async.fs

00:02:30 #4871 [Verbose] > #!import ../../lib/fsharp/Runtime.fs

00:02:30 #4872 [Verbose] >

00:02:30 #4873 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:30 #4874 [Verbose] > type [[<Struct>]] US0 =

00:02:30 #4875 [Verbose] >     | US0_0

00:02:30 #4876 [Verbose] >     | US0_1

00:02:30 #4877 [Verbose] >     | US0_2

00:02:30 #4878 [Verbose] >     | US0_3

00:02:30 #4879 [Verbose] > and [[<Struct>]] US1 =

00:02:30 #4880 [Verbose] >     | US1_0 of f0_0 : US0

00:02:30 #4881 [Verbose] >     | US1_1 of f1_0 : US0

00:02:30 #4882 [Verbose] > and [[<Struct>]] US2 =

00:02:30 #4883 [Verbose] >     | US2_0

00:02:30 #4884 [Verbose] >     | US2_1

00:02:30 #4885 [Verbose] > and [[<Struct>]] US3 =

00:02:30 #4886 [Verbose] >     | US3_0 of f0_0 : US2

00:02:30 #4887 [Verbose] >     | US3_1

00:02:30 #4888 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:02:30 #4889 [Verbose] >     let v1 : System.IDisposable option = None

00:02:30 #4890 [Verbose] >     let mutable _v1 = v1

00:02:30 #4891 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:02:30 #4892 [Verbose] >     let v2 : US0 = US0_0

00:02:30 #4893 [Verbose] >     let v3 : US1 = US1_0(v2)

00:02:30 #4894 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:02:30 #4895 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:02:30 #4896 [Verbose] >     v5

00:02:30 #4897 [Verbose] >     #endif

00:02:30 #4898 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:02:30 #4899 [Verbose] >     let v6 : US0 = US0_2

00:02:30 #4900 [Verbose] >     let v7 : US1 = US1_0(v6)

00:02:30 #4901 [Verbose] >     let v8 : string = $"new_dispos...

00:02:30 #4902 [Verbose] >

00:02:30 #4903 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:30 #4904 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:02:30 #4905 [Verbose] > and Mut1 = {mutable l0 : int32}

00:02:30 #4906 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:02:30 #4907 [Verbose] >     let v2 : bool = v1.Contains v0

00:02:30 #4908 [Verbose] >     v2

00:02:30 #4909 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:02:30 #4910 [Verbose] >     closure1(v0)

00:02:30 #4911 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:02:30 #4912 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:02:30 #4913 [Verbose] >     v2

00:02:30 #4914 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:02:30 #4915 [Verbose] >     closure3(v0)

00:02:30 #4916 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:02:30 #4917 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:02:30 #4918 [Verbose] >     v3

00:02:30 #4919 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:02:30 #4920 [Verbose] >     closure6(v0, v1)

00:02:30 #4921 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:02:30 #4922 [Verbose] >     closure5(v0)

00:02:30 #4923 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:02:30 #4924 [Verbose] >     let v2 : stri...

00:02:31 #4925 [Verbose] >

00:02:31 #4926 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:31 #4927 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:02:31 #4928 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:02:31 #4929 [Verbose] >     let v3 : string = v2 v0

00:02:31 #4930 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:02:31 #4931 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:02:31 #4932 [Verbose] >     v5

00:02:31 #4933 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:02:31 #4934 [Verbose] >     closure1(v0)

00:02:31 #4935 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:02:31 #4936 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:02:31 #4937 [Verbose] >     v3

00:02:31 #4938 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:02:31 #4939 [Verbose] >     closure5(v0, v1)

00:02:31 #4940 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:02:31 #4941 [Verbose] >     closure4(v0)

00:02:31 #4942 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:02:31 #4943 [Verbose] >     closure3()

00:02:31 #4944 [Verbose] > and closure2 (...

00:02:31 #4945 [Verbose] >

00:02:31 #4946 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:31 #4947 [Verbose] > #if FABLE_COMPILER // file_system.types

00:02:31 #4948 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:02:31 #4949 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:02:31 #4950 [Verbose] > base64_DecodeError = class end

00:02:31 #4951 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:02:31 #4952 [Verbose] > = class end

00:02:31 #4953 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:02:31 #4954 [Verbose] > = class end

00:02:31 #4955 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:02:31 #4956 [Verbose] > serde_json_Error = class end

00:02:31 #4957 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:02:31 #4958 [Verbose] > serde_json_Value = class end

00:02:31 #4959 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:02:31 #4960 [Verbose] > serde_wasm_bindgen_Error = class end

00:02:31 #4961 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:02:31 #4962 [Verbose] >

00:02:31 #4963 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:31 #4964 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:02:31 #4965 [Verbose] > module SpiralDateTime =

00:02:31 #4966 [Verbose] >     let format x =

00:02:31 #4967 [Verbose] > #if !INTERACTIVE

00:02:31 #4968 [Verbose] >         Date_time.format x

00:02:31 #4969 [Verbose] > #else

00:02:31 #4970 [Verbose] >         format x

00:02:31 #4971 [Verbose] > #endif

00:02:31 #4972 [Verbose] >

00:02:31 #4973 [Verbose] >     let format_iso8601 x =

00:02:31 #4974 [Verbose] > #if !INTERACTIVE

00:02:31 #4975 [Verbose] >         Date_time.format_iso8601 x

00:02:31 #4976 [Verbose] > #else

00:02:31 #4977 [Verbose] >         format_iso8601 x

00:02:31 #4978 [Verbose] > #endif

00:02:31 #4979 [Verbose] >

00:02:31 #4980 [Verbose] >     let new_guid_from_date_time x =

00:02:31 #4981 [Verbose] > #if !INTERACTIVE

00:02:31 #4982 [Verbose] >         Date_time.new_guid_from_date_time x

00:02:31 #4983 [Verbose] > #else

00:02:31 #4984 [Verbose] >         new_guid_from_date_time x

00:02:31 #4985 [Verbose] > #endif

00:02:31 #4986 [Verbose] >

00:02:31 #4987 [Verbose] > #endif

00:02:31 #4988 [Verbose] >

00:02:31 #4989 [Verbose] > module SpiralSm =

00:02:31 #4990 [Verbose] >     let concat x =

00:02:31 #4991 [Verbose] > #if !INTERACTIVE

00:02:31 #4992 [Verbose] >         Sm.concat x

00:02:31 #4993 [Verbose] > #else

00:02:31 #4994 [Verbose] >         concat x

00:02:31 #4995 [Verbose] > #endif

00:02:31 #4996 [Verbose] >

00:02:31 #4997 [Verbose] >     let contains x =

00:02:31 #4998 [Verbose] > #if !INTERACTIVE

00:02:31 #4999 [Verbose] >         Sm.contains x

00:02:31 #5000 [Verbose] > #else

00:02:31 #5001 [Verbose] >         contains x

00:02:31 #5002 [Verbose] > #endif

00:02:31 #5003 [Verbose] >

00:02:31 #5004 [Verbose] >     let ellipsis x =

00:02:31 #5005 [Verbose] > #if !INTERACTIVE

00:02:31 #5006 [Verbose] >         Sm.ellipsis x

00:02:31 #5007 [Verbose] > #else

00:02:31 #5008 [Verbose] >         ellipsis x

00:02:31 #5009 [Verbose] > #endif

00:02:31 #5010 [Verbose] >

00:02:31 #5011 [Verbose] >     let ellipsis_end x =

00:02:31 #5012 [Verbose] > #if...

00:02:31 #5013 [Verbose] >

00:02:31 #5014 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:31 #5015 [Verbose] > #if !INTERACTIVE

00:02:31 #5016 [Verbose] > namespace Polyglot

00:02:31 #5017 [Verbose] > #endif

00:02:31 #5018 [Verbose] >

00:02:31 #5019 [Verbose] > module Common =

00:02:31 #5020 [Verbose] >

00:02:31 #5021 [Verbose] > #if !INTERACTIVE

00:02:31 #5022 [Verbose] >     open Lib

00:02:31 #5023 [Verbose] > #endif

00:02:31 #5024 [Verbose] >

00:02:31 #5025 [Verbose] >     let nl = System.Environment.NewLine

00:02:31 #5026 [Verbose] >     let q = @""""

00:02:31 #5027 [Verbose] >

00:02:31 #5028 [Verbose] >     let inline cons head tail = head :: tail

00:02:31 #5029 [Verbose] >

00:02:31 #5030 [Verbose] >     /// ## memoize

00:02:31 #5031 [Verbose] >

00:02:31 #5032 [Verbose] >     let inline memoize fn =

00:02:31 #5033 [Verbose] >         let result = lazy fn ()

00:02:31 #5034 [Verbose] >         fun () -> result.Value

00:02:31 #5035 [Verbose] >

00:02:31 #5036 [Verbose] >     /// ## TraceLevel

00:02:31 #5037 [Verbose] >

00:02:31 #5038 [Verbose] >     type TraceLevel =

00:02:31 #5039 [Verbose] >         | Verbose

00:02:31 #5040 [Verbose] >         | Debug

00:02:31 #5041 [Verbose] >         | Info

00:02:31 #5042 [Verbose] >         | Warning

00:02:31 #5043 [Verbose] >         | Critical

00:02:31 #5044 [Verbose] >

00:02:31 #5045 [Verbose] >     let inline getLocals () = ""

00:02:31 #5046 [Verbose] >

00:02:31 #5047 [Verbose] >     let mutable traceEnabled = true

00:02:31 #5048 [Verbose] >     let mutable traceCount = 0

00:02:31 #5049 [Verbose] >     let mutable traceLevel = Verbose

00:02:31 #5050 [Verbose] >     let mutable traceDump = false

00:02:31 #5051 [Verbose] >

00:02:31 #5052 [Verbose] >     let testTraceLevel level =

00:02:31 #5053 [Verbose] >         traceEnabled && level >= traceLevel

00:02:31 #5054 [Verbose] >

00:02:31 #5055 [Verbose] >     /// ## traceRaw

00:02:31 #5056 [Verbose] >

00:02:31 #5057 [Verbose] >     let rec traceRaw level fn =

00:02:31 #5058 [Verbose] > ...

00:02:32 #5059 [Verbose] >

00:02:32 #5060 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:32 #5061 [Verbose] > #if !INTERACTIVE

00:02:32 #5062 [Verbose] > namespace Polyglot

00:02:32 #5063 [Verbose] > #endif

00:02:32 #5064 [Verbose] >

00:02:32 #5065 [Verbose] > module CommonFSharp =

00:02:32 #5066 [Verbose] >

00:02:32 #5067 [Verbose] >     open Common

00:02:32 #5068 [Verbose] >

00:02:32 #5069 [Verbose] >     /// ## getUnionCaseName

00:02:32 #5070 [Verbose] >

00:02:32 #5071 [Verbose] >     let inline getUnionCaseName<'T> (x: 'T) =

00:02:32 #5072 [Verbose] >         match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

00:02:32 #5073 [Verbose] >         | case, _ -> case.Name

00:02:32 #5074 [Verbose] >

00:02:32 #5075 [Verbose] >

00:02:32 #5076 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:32 #5077 [Verbose] > #if !INTERACTIVE

00:02:32 #5078 [Verbose] > namespace Polyglot

00:02:32 #5079 [Verbose] > #endif

00:02:32 #5080 [Verbose] >

00:02:32 #5081 [Verbose] > module Async =

00:02:32 #5082 [Verbose] >

00:02:32 #5083 [Verbose] > #if !INTERACTIVE

00:02:32 #5084 [Verbose] >     open Lib

00:02:32 #5085 [Verbose] > #endif

00:02:32 #5086 [Verbose] >

00:02:32 #5087 [Verbose] >     open Common

00:02:32 #5088 [Verbose] >

00:02:32 #5089 [Verbose] >     /// ## choice

00:02:32 #5090 [Verbose] >

00:02:32 #5091 [Verbose] >     let inline choice asyncs = async {

00:02:32 #5092 [Verbose] >         let e = Event<_> ()

00:02:32 #5093 [Verbose] >         use cts = new System.Threading.CancellationTokenSource ()

00:02:32 #5094 [Verbose] >         let fn =

00:02:32 #5095 [Verbose] >             asyncs

00:02:32 #5096 [Verbose] >             |> Seq.map (fun a -> async {

00:02:32 #5097 [Verbose] >                 let! x = a

00:02:32 #5098 [Verbose] >                 e.Trigger x

00:02:32 #5099 [Verbose] >             })

00:02:32 #5100 [Verbose] >             |> Async.Parallel

00:02:32 #5101 [Verbose] >             |> Async.Ignore

00:02:32 #5102 [Verbose] >         Async.Start (fn, cts.Token)

00:02:32 #5103 [Verbose] >         let! result = Async.AwaitEvent e.Publish

00:02:32 #5104 [Verbose] >         cts.Cancel ()

00:02:32 #5105 [Verbose] >         return result

00:02:32 #5106 [Verbose] >     }

00:02:32 #5107 [Verbose] >

00:02:32 #5108 [Verbose] >     /// ## map

00:02:32 #5109 [Verbose] >

00:02:32 #5110 [Verbose] >     let inline map fn a = async {

00:02:32 #5111 [Verbose] >         let! x = a

00:02:32 #5112 [Verbose] >         return fn x

00:02:32 #5113 [Verbose] >     }

00:02:32 #5114 [Verbose] >

00:02:32 #5115 [Verbose] >     /// ## catch

00:02:32 #5116 [Verbose] >

00:02:32 #5117 [Verbose] >     let inline catch a =

00:02:32 #5118 [Verbose] >    ...

00:02:32 #5119 [Verbose] >

00:02:32 #5120 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:02:32 #5121 [Verbose] > #if !INTERACTIVE

00:02:32 #5122 [Verbose] > namespace Polyglot

00:02:32 #5123 [Verbose] > #endif

00:02:32 #5124 [Verbose] >

00:02:32 #5125 [Verbose] > module Runtime =

00:02:32 #5126 [Verbose] >

00:02:32 #5127 [Verbose] > #if !INTERACTIVE

00:02:32 #5128 [Verbose] >     open Lib

00:02:32 #5129 [Verbose] > #endif

00:02:32 #5130 [Verbose] >

00:02:32 #5131 [Verbose] >     open Common

00:02:32 #5132 [Verbose] >

00:02:32 #5133 [Verbose] >     /// ## isWindows

00:02:32 #5134 [Verbose] >

00:02:32 #5135 [Verbose] >     let isWindows =

00:02:32 #5136 [Verbose] >         fun () ->

00:02:32 #5137 [Verbose] >             System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

00:02:32 #5138 [Verbose] >                 System.Runtime.InteropServices.OSPlatform.Windows

00:02:32 #5139 [Verbose] >         |> memoize

00:02:32 #5140 [Verbose] >

00:02:32 #5141 [Verbose] >     /// ## getExecutableSuffix

00:02:32 #5142 [Verbose] >

00:02:32 #5143 [Verbose] >     let inline getExecutableSuffix () =

00:02:32 #5144 [Verbose] >         if isWindows ()

00:02:32 #5145 [Verbose] >         then ".exe"

00:02:32 #5146 [Verbose] >         else ""

00:02:32 #5147 [Verbose] >

00:02:32 #5148 [Verbose] >     /// ## splitCommand

00:02:32 #5149 [Verbose] >

00:02:32 #5150 [Verbose] >     type private CommandParseStep =

00:02:32 #5151 [Verbose] >         | Start

00:02:32 #5152 [Verbose] >         | Path of quoted: bool

00:02:32 #5153 [Verbose] >         | Arguments

00:02:32 #5154 [Verbose] >

00:02:32 #5155 [Verbose] >     let splitCommand (command: string) =

00:02:32 #5156 [Verbose] >         let rec loop (path, args) chars step =

00:02:32 #5157 [Verbose] >             match chars, step with

00:02:32 #5158 [Verbose] >             | ('"' | '\'') ...

00:02:33 #5159 [Verbose] >

00:02:33 #5160 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:33 #5161 [Verbose] > #if !INTERACTIVE

00:02:33 #5162 [Verbose] > open Lib

00:02:33 #5163 [Verbose] > #endif

00:02:33 #5164 [Verbose] >

00:02:33 #5165 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:33 #5166 [Verbose] > open Common

00:02:33 #5167 [Verbose] >

00:02:33 #5168 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:33 #5169 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:33 #5170 [Verbose] > │ ## testPortOpen                                                              │

00:02:33 #5171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:33 #5172 [Verbose] >

00:02:33 #5173 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:33 #5174 [Verbose] > let inline testPortOpen port = async {

00:02:33 #5175 [Verbose] >     let! ct = Async.CancellationToken

00:02:33 #5176 [Verbose] >     use client = new System.Net.Sockets.TcpClient ()

00:02:33 #5177 [Verbose] >     try

00:02:33 #5178 [Verbose] >         do! client.ConnectAsync ("127.0.0.1", port, ct) |>

00:02:33 #5179 [Verbose] > Async.awaitValueTaskUnit

00:02:33 #5180 [Verbose] >         return true

00:02:33 #5181 [Verbose] >     with ex ->

00:02:33 #5182 [Verbose] >         trace Verbose (fun () -> $"testPortOpen / ex: {ex |>

00:02:33 #5183 [Verbose] > SpiralSm.format_exception}") getLocals

00:02:33 #5184 [Verbose] >         return false

00:02:33 #5185 [Verbose] > }

00:02:33 #5186 [Verbose] >

00:02:33 #5187 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:33 #5188 [Verbose] > //// test

00:02:33 #5189 [Verbose] >

00:02:33 #5190 [Verbose] > testPortOpen 65536

00:02:33 #5191 [Verbose] > |> Async.runWithTimeout 120

00:02:33 #5192 [Verbose] > |> _assertEqual (Some false)

00:02:33 #5193 [Verbose] >

00:02:33 #5194 [Verbose] > ╭─[ 183.12ms - stdout ]────────────────────────────────────────────────────────╮

00:02:33 #5195 [Verbose] > │ 00:00:00 #1 [Verbose] testPortOpen / ex: System.ArgumentOutOfRangeException: │

00:02:33 #5196 [Verbose] > │ Specified argument was out of the range of valid values. (Parameter 'port')  │

00:02:33 #5197 [Verbose] > │ FSharpOption<Boolean>                                                        │

00:02:33 #5198 [Verbose] > │       Value: False                                                           │

00:02:33 #5199 [Verbose] > │                                                                              │

00:02:33 #5200 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:33 #5201 [Verbose] >

00:02:33 #5202 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:33 #5203 [Verbose] > let inline testPortOpenTimeout timeout port = async {

00:02:33 #5204 [Verbose] >     let! result =

00:02:33 #5205 [Verbose] >         testPortOpen port

00:02:33 #5206 [Verbose] >         |> Async.runWithTimeoutAsync timeout

00:02:33 #5207 [Verbose] >     return

00:02:33 #5208 [Verbose] >         match result with

00:02:33 #5209 [Verbose] >         | None -> false

00:02:33 #5210 [Verbose] >         | Some result -> result

00:02:33 #5211 [Verbose] > }

00:02:33 #5212 [Verbose] >

00:02:33 #5213 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:33 #5214 [Verbose] > //// test

00:02:33 #5215 [Verbose] >

00:02:33 #5216 [Verbose] > testPortOpenTimeout 120 65535

00:02:33 #5217 [Verbose] > |> Async.RunSynchronously

00:02:33 #5218 [Verbose] > |> _assertEqual false

00:02:34 #5219 [Verbose] >

00:02:34 #5220 [Verbose] > ╭─[ 235.59ms - stdout ]────────────────────────────────────────────────────────╮

00:02:34 #5221 [Verbose] > │ 00:00:00 #2 [Debug] runWithTimeoutChildAsync / timeout: 120                  │

00:02:34 #5222 [Verbose] > │ False                                                                        │

00:02:34 #5223 [Verbose] > │                                                                              │

00:02:34 #5224 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:34 #5225 [Verbose] >

00:02:34 #5226 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:34 #5227 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:34 #5228 [Verbose] > │ ## waitForPortAccess                                                         │

00:02:34 #5229 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:34 #5230 [Verbose] >

00:02:34 #5231 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:34 #5232 [Verbose] > let inline waitForPortAccess timeout status port =

00:02:34 #5233 [Verbose] >     let rec loop retry = async {

00:02:34 #5234 [Verbose] >         let! isPortOpen =

00:02:34 #5235 [Verbose] >             match timeout with

00:02:34 #5236 [Verbose] >             | None -> testPortOpen port

00:02:34 #5237 [Verbose] >             | Some timeout -> testPortOpenTimeout timeout port

00:02:34 #5238 [Verbose] >         if isPortOpen = status

00:02:34 #5239 [Verbose] >         then return retry

00:02:34 #5240 [Verbose] >         else

00:02:34 #5241 [Verbose] >             if retry % 100 = 0 then

00:02:34 #5242 [Verbose] >                 let getLocals () = $"port: {port} / retry: {retry} / {getLocals

00:02:34 #5243 [Verbose] > ()}"

00:02:34 #5244 [Verbose] >                 trace Verbose (fun () -> "waitForPortAccess") getLocals

00:02:34 #5245 [Verbose] >             do! Async.Sleep 10

00:02:34 #5246 [Verbose] >             return! loop (retry + 1)

00:02:34 #5247 [Verbose] >     }

00:02:34 #5248 [Verbose] >     loop 0

00:02:34 #5249 [Verbose] >

00:02:34 #5250 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:34 #5251 [Verbose] > //// test

00:02:34 #5252 [Verbose] >

00:02:34 #5253 [Verbose] > let port = 5555

00:02:34 #5254 [Verbose] >

00:02:34 #5255 [Verbose] > let inline lockPort () = async {

00:02:34 #5256 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:02:34 #5257 [Verbose] >     do! Async.Sleep 5000

00:02:34 #5258 [Verbose] >     use listener = new System.Net.Sockets.TcpListener

00:02:34 #5259 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)

00:02:34 #5260 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:02:34 #5261 [Verbose] >     listener.Start ()

00:02:34 #5262 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:02:34 #5263 [Verbose] >     do! Async.Sleep 2000

00:02:34 #5264 [Verbose] >     trace Debug (fun () -> "_4") getLocals

00:02:34 #5265 [Verbose] >     listener.Stop ()

00:02:34 #5266 [Verbose] >     trace Debug (fun () -> "_5") getLocals

00:02:34 #5267 [Verbose] > }

00:02:34 #5268 [Verbose] >

00:02:34 #5269 [Verbose] > async {

00:02:34 #5270 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:02:34 #5271 [Verbose] >     let! child = lockPort () |> Async.StartChild

00:02:34 #5272 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:02:34 #5273 [Verbose] >     do! Async.Sleep 1

00:02:34 #5274 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:02:34 #5275 [Verbose] >     let! retries1 = waitForPortAccess None true port

00:02:34 #5276 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:02:34 #5277 [Verbose] >     let! retries2 = waitForPortAccess None false port

00:02:34 #5278 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:02:34 #5279 [Verbose] >     do! child

00:02:34 #5280 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:02:34 #5281 [Verbose] >     return retries1, retries2

00:02:34 #5282 [Verbose] > }

00:02:34 #5283 [Verbose] > |> Async.runWithTimeout 20000

00:02:34 #5284 [Verbose] > |> function

00:02:34 #5285 [Verbose] >     | Some (retries1, retries2) ->

00:02:34 #5286 [Verbose] >         retries1

00:02:34 #5287 [Verbose] >         |> _isBetween

00:02:34 #5288 [Verbose] >             (if Runtime.isWindows () then 2 else 2)

00:02:34 #5289 [Verbose] >             (if Runtime.isWindows () then 5 else 1500)

00:02:34 #5290 [Verbose] >

00:02:34 #5291 [Verbose] >         retries2

00:02:34 #5292 [Verbose] >         |> _isBetween

00:02:34 #5293 [Verbose] >             (if Runtime.isWindows () then 80 else 80)

00:02:34 #5294 [Verbose] >             (if Runtime.isWindows () then 150 else 600)

00:02:34 #5295 [Verbose] >

00:02:34 #5296 [Verbose] >         true

00:02:34 #5297 [Verbose] >     | _ -> false

00:02:34 #5298 [Verbose] > |> _assertEqual true

00:02:43 #5299 [Verbose] >

00:02:43 #5300 [Verbose] > ╭─[ 9.53s - stdout ]───────────────────────────────────────────────────────────╮

00:02:43 #5301 [Verbose] > │ 00:00:01 #3 [Debug] 1                                                        │

00:02:43 #5302 [Verbose] > │ 00:00:01 #4 [Debug] _1                                                       │

00:02:43 #5303 [Verbose] > │ 00:00:01 #5 [Debug] 2                                                        │

00:02:43 #5304 [Verbose] > │ 00:00:01 #6 [Debug] 3                                                        │

00:02:43 #5305 [Verbose] > │ 00:00:03 #7 [Verbose] testPortOpen / ex: System.AggregateException: One or   │

00:02:43 #5306 [Verbose] > │ more errors occurred. (No connection could be made because the target        │

00:02:43 #5307 [Verbose] > │ machine actively refused it.)                                                │

00:02:43 #5308 [Verbose] > │ 00:00:03 #8 [Verbose] waitForPortAccess / port: 5555 / retry: 0              │

00:02:43 #5309 [Verbose] > │ 00:00:05 #9 [Verbose] testPortOpen / ex: System.AggregateException: One or   │

00:02:43 #5310 [Verbose] > │ more errors occurred. (No connection could be made because the target        │

00:02:43 #5311 [Verbose] > │ machine actively refused it.)                                                │

00:02:43 #5312 [Verbose] > │ 00:00:06 #10 [Debug] _2                                                      │

00:02:43 #5313 [Verbose] > │ 00:00:06 #11 [Debug] _3                                                      │

00:02:43 #5314 [Verbose] > │ 00:00:06 #12 [Debug] 4                                                       │

00:02:43 #5315 [Verbose] > │ 00:00:06 #13 [Verbose] waitForPortAccess / port: 5555 / retry: 0             │

00:02:43 #5316 [Verbose] > │ 00:00:07 #14 [Verbose] waitForPortAccess / port: 5555 / retry: 100           │

00:02:43 #5317 [Verbose] > │ 00:00:08 #15 [Debug] _4                                                      │

00:02:43 #5318 [Verbose] > │ 00:00:08 #16 [Debug] _5                                                      │

00:02:43 #5319 [Verbose] > │ 00:00:10 #17 [Verbose] testPortOpen / ex: System.AggregateException: One or  │

00:02:43 #5320 [Verbose] > │ more errors occurred. (No connection could be made because the target        │

00:02:43 #5321 [Verbose] > │ machine actively refused it.)                                                │

00:02:43 #5322 [Verbose] > │ 00:00:10 #18 [Debug] 5                                                       │

00:02:43 #5323 [Verbose] > │ 00:00:10 #19 [Debug] 6                                                       │

00:02:43 #5324 [Verbose] > │ 2                                                                            │

00:02:43 #5325 [Verbose] > │ 2                                                                            │

00:02:43 #5326 [Verbose] > │ 2                                                                            │

00:02:43 #5327 [Verbose] > │ 118                                                                          │

00:02:43 #5328 [Verbose] > │ 118                                                                          │

00:02:43 #5329 [Verbose] > │ 118                                                                          │

00:02:43 #5330 [Verbose] > │ True                                                                         │

00:02:43 #5331 [Verbose] > │                                                                              │

00:02:43 #5332 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:43 #5333 [Verbose] >

00:02:43 #5334 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:43 #5335 [Verbose] > //// test

00:02:43 #5336 [Verbose] >

00:02:43 #5337 [Verbose] > let port = 5555

00:02:43 #5338 [Verbose] >

00:02:43 #5339 [Verbose] > let inline lockPort () = async {

00:02:43 #5340 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:02:43 #5341 [Verbose] >     do! Async.Sleep 500

00:02:43 #5342 [Verbose] >     use listener = new System.Net.Sockets.TcpListener

00:02:43 #5343 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)

00:02:43 #5344 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:02:43 #5345 [Verbose] >     listener.Start ()

00:02:43 #5346 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:02:43 #5347 [Verbose] >     do! Async.Sleep 200

00:02:43 #5348 [Verbose] >     trace Debug (fun () -> "_4") getLocals

00:02:43 #5349 [Verbose] >     listener.Stop ()

00:02:43 #5350 [Verbose] >     trace Debug (fun () -> "_5") getLocals

00:02:43 #5351 [Verbose] > }

00:02:43 #5352 [Verbose] >

00:02:43 #5353 [Verbose] > async {

00:02:43 #5354 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:02:43 #5355 [Verbose] >     let! child = lockPort () |> Async.StartChild

00:02:43 #5356 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:02:43 #5357 [Verbose] >     do! Async.Sleep 1

00:02:43 #5358 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:02:43 #5359 [Verbose] >     let! retries1 = waitForPortAccess (Some 60) true port

00:02:43 #5360 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:02:43 #5361 [Verbose] >     let! retries2 = waitForPortAccess (Some 60) false port

00:02:43 #5362 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:02:43 #5363 [Verbose] >     do! child

00:02:43 #5364 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:02:43 #5365 [Verbose] >     return retries1, retries2

00:02:43 #5366 [Verbose] > }

00:02:43 #5367 [Verbose] > |> Async.runWithTimeout 2000

00:02:43 #5368 [Verbose] > |> function

00:02:43 #5369 [Verbose] >     | Some (retries1, retries2) ->

00:02:43 #5370 [Verbose] >         retries1

00:02:43 #5371 [Verbose] >         |> _isBetween

00:02:43 #5372 [Verbose] >             (if Runtime.isWindows () then 4 else 2)

00:02:43 #5373 [Verbose] >             (if Runtime.isWindows () then 15 else 150)

00:02:43 #5374 [Verbose] >

00:02:43 #5375 [Verbose] >         retries2

00:02:43 #5376 [Verbose] >         |> _isBetween

00:02:43 #5377 [Verbose] >             (if Runtime.isWindows () then 5 else 0)

00:02:43 #5378 [Verbose] >             (if Runtime.isWindows () then 20 else 60)

00:02:43 #5379 [Verbose] >

00:02:43 #5380 [Verbose] >         true

00:02:43 #5381 [Verbose] >     | _ -> false

00:02:43 #5382 [Verbose] > |> _assertEqual true

00:02:45 #5383 [Verbose] >

00:02:45 #5384 [Verbose] > ╭─[ 1.44s - stdout ]───────────────────────────────────────────────────────────╮

00:02:45 #5385 [Verbose] > │ 00:00:10 #20 [Debug] 1                                                       │

00:02:45 #5386 [Verbose] > │ 00:00:10 #22 [Debug] _1                                                      │

00:02:45 #5387 [Verbose] > │ 00:00:10 #21 [Debug] 2                                                       │

00:02:45 #5388 [Verbose] > │ 00:00:10 #23 [Debug] 3                                                       │

00:02:45 #5389 [Verbose] > │ 00:00:10 #24 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5390 [Verbose] > │ 00:00:10 #25 [Verbose] waitForPortAccess / port: 5555 / retry: 0             │

00:02:45 #5391 [Verbose] > │ 00:00:10 #26 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5392 [Verbose] > │ 00:00:11 #27 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5393 [Verbose] > │ 00:00:11 #28 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5394 [Verbose] > │ 00:00:11 #29 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5395 [Verbose] > │ 00:00:11 #30 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5396 [Verbose] > │ 00:00:11 #31 [Debug] _2                                                      │

00:02:45 #5397 [Verbose] > │ 00:00:11 #32 [Debug] _3                                                      │

00:02:45 #5398 [Verbose] > │ 00:00:11 #33 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5399 [Verbose] > │ 00:00:11 #34 [Debug] 4                                                       │

00:02:45 #5400 [Verbose] > │ 00:00:11 #35 [Verbose] waitForPortAccess / port: 5555 / retry: 0             │

00:02:45 #5401 [Verbose] > │ 00:00:11 #36 [Debug] _4                                                      │

00:02:45 #5402 [Verbose] > │ 00:00:11 #37 [Debug] _5                                                      │

00:02:45 #5403 [Verbose] > │ 00:00:11 #38 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:45 #5404 [Verbose] > │ 00:00:11 #39 [Debug] 5                                                       │

00:02:45 #5405 [Verbose] > │ 00:00:11 #40 [Debug] 6                                                       │

00:02:45 #5406 [Verbose] > │ 7                                                                            │

00:02:45 #5407 [Verbose] > │ 7                                                                            │

00:02:45 #5408 [Verbose] > │ 7                                                                            │

00:02:45 #5409 [Verbose] > │ 10                                                                           │

00:02:45 #5410 [Verbose] > │ 10                                                                           │

00:02:45 #5411 [Verbose] > │ 10                                                                           │

00:02:45 #5412 [Verbose] > │ True                                                                         │

00:02:45 #5413 [Verbose] > │                                                                              │

00:02:45 #5414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:45 #5415 [Verbose] >

00:02:45 #5416 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:45 #5417 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:45 #5418 [Verbose] > │ ## getAvailablePort                                                          │

00:02:45 #5419 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:45 #5420 [Verbose] >

00:02:45 #5421 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:45 #5422 [Verbose] > let inline getAvailablePort timeout initialPort =

00:02:45 #5423 [Verbose] >     let rec loop port = async {

00:02:45 #5424 [Verbose] >         let! isPortOpen =

00:02:45 #5425 [Verbose] >             match timeout with

00:02:45 #5426 [Verbose] >             | None -> testPortOpen port

00:02:45 #5427 [Verbose] >             | Some timeout -> testPortOpenTimeout timeout port

00:02:45 #5428 [Verbose] >         if not isPortOpen

00:02:45 #5429 [Verbose] >         then return port

00:02:45 #5430 [Verbose] >         else return! loop (port + 1)

00:02:45 #5431 [Verbose] >     }

00:02:45 #5432 [Verbose] >     loop initialPort

00:02:45 #5433 [Verbose] >

00:02:45 #5434 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:45 #5435 [Verbose] > //// test

00:02:45 #5436 [Verbose] >

00:02:45 #5437 [Verbose] > let port = 5555

00:02:45 #5438 [Verbose] >

00:02:45 #5439 [Verbose] > let inline lockPorts () = async {

00:02:45 #5440 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:02:45 #5441 [Verbose] >     use listener1 = new System.Net.Sockets.TcpListener

00:02:45 #5442 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)

00:02:45 #5443 [Verbose] >     use listener2 = new System.Net.Sockets.TcpListener

00:02:45 #5444 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port + 1)

00:02:45 #5445 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:02:45 #5446 [Verbose] >     listener1.Start ()

00:02:45 #5447 [Verbose] >     listener2.Start ()

00:02:45 #5448 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:02:45 #5449 [Verbose] >     do! Async.Sleep 4000

00:02:45 #5450 [Verbose] >     trace Debug (fun () -> "_4") getLocals

00:02:45 #5451 [Verbose] >     listener1.Stop ()

00:02:45 #5452 [Verbose] >     listener2.Stop ()

00:02:45 #5453 [Verbose] >     trace Debug (fun () -> "_5") getLocals

00:02:45 #5454 [Verbose] > }

00:02:45 #5455 [Verbose] >

00:02:45 #5456 [Verbose] > async {

00:02:45 #5457 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:02:45 #5458 [Verbose] >     let! child = lockPorts () |> Async.StartChild

00:02:45 #5459 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:02:45 #5460 [Verbose] >     do! Async.Sleep 240

00:02:45 #5461 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:02:45 #5462 [Verbose] >     let! availablePort = getAvailablePort None port

00:02:45 #5463 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:02:45 #5464 [Verbose] >     let! retries = waitForPortAccess None false port

00:02:45 #5465 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:02:45 #5466 [Verbose] >     do! child

00:02:45 #5467 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:02:45 #5468 [Verbose] >     return availablePort, retries

00:02:45 #5469 [Verbose] > }

00:02:45 #5470 [Verbose] > |> Async.runWithTimeout 15000

00:02:45 #5471 [Verbose] > |> function

00:02:45 #5472 [Verbose] >     | Some (availablePort, retries) ->

00:02:45 #5473 [Verbose] >         availablePort |> _assertEqual (port + 2)

00:02:45 #5474 [Verbose] >

00:02:45 #5475 [Verbose] >         retries

00:02:45 #5476 [Verbose] >         |> _isBetween

00:02:45 #5477 [Verbose] >             (if Runtime.isWindows () then 100 else 100)

00:02:45 #5478 [Verbose] >             (if Runtime.isWindows () then 150 else 1200)

00:02:45 #5479 [Verbose] >

00:02:45 #5480 [Verbose] >         true

00:02:45 #5481 [Verbose] >     | _ -> false

00:02:45 #5482 [Verbose] > |> _assertEqual true

00:02:52 #5483 [Verbose] >

00:02:52 #5484 [Verbose] > ╭─[ 6.58s - stdout ]───────────────────────────────────────────────────────────╮

00:02:52 #5485 [Verbose] > │ 00:00:12 #41 [Debug] 1                                                       │

00:02:52 #5486 [Verbose] > │ 00:00:12 #43 [Debug] _1                                                      │

00:02:52 #5487 [Verbose] > │ 00:00:12 #42 [Debug] 2                                                       │

00:02:52 #5488 [Verbose] > │ 00:00:12 #44 [Debug] _2                                                      │

00:02:52 #5489 [Verbose] > │ 00:00:12 #45 [Debug] _3                                                      │

00:02:52 #5490 [Verbose] > │ 00:00:12 #46 [Debug] 3                                                       │

00:02:52 #5491 [Verbose] > │ 00:00:14 #47 [Verbose] testPortOpen / ex: System.AggregateException: One or  │

00:02:52 #5492 [Verbose] > │ more errors occurred. (No connection could be made because the target        │

00:02:52 #5493 [Verbose] > │ machine actively refused it.)                                                │

00:02:52 #5494 [Verbose] > │ 00:00:14 #48 [Debug] 4                                                       │

00:02:52 #5495 [Verbose] > │ 00:00:14 #49 [Verbose] waitForPortAccess / port: 5555 / retry: 0             │

00:02:52 #5496 [Verbose] > │ 00:00:16 #50 [Verbose] waitForPortAccess / port: 5555 / retry: 100           │

00:02:52 #5497 [Verbose] > │ 00:00:16 #51 [Debug] _4                                                      │

00:02:52 #5498 [Verbose] > │ 00:00:16 #52 [Debug] _5                                                      │

00:02:52 #5499 [Verbose] > │ 00:00:18 #53 [Verbose] testPortOpen / ex: System.AggregateException: One or  │

00:02:52 #5500 [Verbose] > │ more errors occurred. (No connection could be made because the target        │

00:02:52 #5501 [Verbose] > │ machine actively refused it.)                                                │

00:02:52 #5502 [Verbose] > │ 00:00:18 #54 [Debug] 5                                                       │

00:02:52 #5503 [Verbose] > │ 00:00:18 #55 [Debug] 6                                                       │

00:02:52 #5504 [Verbose] > │ 5557                                                                         │

00:02:52 #5505 [Verbose] > │ 111                                                                          │

00:02:52 #5506 [Verbose] > │ 111                                                                          │

00:02:52 #5507 [Verbose] > │ 111                                                                          │

00:02:52 #5508 [Verbose] > │ True                                                                         │

00:02:52 #5509 [Verbose] > │                                                                              │

00:02:52 #5510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:52 #5511 [Verbose] >

00:02:52 #5512 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:02:52 #5513 [Verbose] > //// test

00:02:52 #5514 [Verbose] >

00:02:52 #5515 [Verbose] > let port = 5555

00:02:52 #5516 [Verbose] >

00:02:52 #5517 [Verbose] > let inline lockPorts () = async {

00:02:52 #5518 [Verbose] >     trace Debug (fun () -> "_1") getLocals

00:02:52 #5519 [Verbose] >     use listener1 = new System.Net.Sockets.TcpListener

00:02:52 #5520 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port)

00:02:52 #5521 [Verbose] >     use listener2 = new System.Net.Sockets.TcpListener

00:02:52 #5522 [Verbose] > (System.Net.IPAddress.Parse "127.0.0.1", port + 1)

00:02:52 #5523 [Verbose] >     trace Debug (fun () -> "_2") getLocals

00:02:52 #5524 [Verbose] >     listener1.Start ()

00:02:52 #5525 [Verbose] >     listener2.Start ()

00:02:52 #5526 [Verbose] >     trace Debug (fun () -> "_3") getLocals

00:02:52 #5527 [Verbose] >     do! Async.Sleep 400

00:02:52 #5528 [Verbose] >     trace Debug (fun () -> "_4") getLocals

00:02:52 #5529 [Verbose] >     listener1.Stop ()

00:02:52 #5530 [Verbose] >     listener2.Stop ()

00:02:52 #5531 [Verbose] >     trace Debug (fun () -> "_5") getLocals

00:02:52 #5532 [Verbose] > }

00:02:52 #5533 [Verbose] >

00:02:52 #5534 [Verbose] > async {

00:02:52 #5535 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:02:52 #5536 [Verbose] >     let! child = lockPorts () |> Async.StartChild

00:02:52 #5537 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:02:52 #5538 [Verbose] >     do! Async.Sleep 240

00:02:52 #5539 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:02:52 #5540 [Verbose] >     let! availablePort = getAvailablePort (Some 60) port

00:02:52 #5541 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:02:52 #5542 [Verbose] >     let! retries = waitForPortAccess (Some 60) false port

00:02:52 #5543 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:02:52 #5544 [Verbose] >     do! child

00:02:52 #5545 [Verbose] >     trace Debug (fun () -> "6") getLocals

00:02:52 #5546 [Verbose] >     return availablePort, retries

00:02:52 #5547 [Verbose] > }

00:02:52 #5548 [Verbose] > |> Async.runWithTimeout 1500

00:02:52 #5549 [Verbose] > |> function

00:02:52 #5550 [Verbose] >     | Some (availablePort, retries) ->

00:02:52 #5551 [Verbose] >         availablePort |> _assertEqual (port + 2)

00:02:52 #5552 [Verbose] >

00:02:52 #5553 [Verbose] >         retries

00:02:52 #5554 [Verbose] >         |> _isBetween

00:02:52 #5555 [Verbose] >             (if Runtime.isWindows () then 2 else 1)

00:02:52 #5556 [Verbose] >             (if Runtime.isWindows () then 10 else 120)

00:02:52 #5557 [Verbose] >

00:02:52 #5558 [Verbose] >         true

00:02:52 #5559 [Verbose] >     | _ -> false

00:02:52 #5560 [Verbose] > |> _assertEqual true

00:02:53 #5561 [Verbose] >

00:02:53 #5562 [Verbose] > ╭─[ 1.21s - stdout ]───────────────────────────────────────────────────────────╮

00:02:53 #5563 [Verbose] > │ 00:00:19 #56 [Debug] 1                                                       │

00:02:53 #5564 [Verbose] > │ 00:00:19 #57 [Debug] 2                                                       │

00:02:53 #5565 [Verbose] > │ 00:00:19 #58 [Debug] _1                                                      │

00:02:53 #5566 [Verbose] > │ 00:00:19 #59 [Debug] _2                                                      │

00:02:53 #5567 [Verbose] > │ 00:00:19 #60 [Debug] _3                                                      │

00:02:53 #5568 [Verbose] > │ 00:00:19 #61 [Debug] 3                                                       │

00:02:53 #5569 [Verbose] > │ 00:00:19 #62 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:53 #5570 [Verbose] > │ 00:00:19 #63 [Debug] 4                                                       │

00:02:53 #5571 [Verbose] > │ 00:00:19 #64 [Verbose] waitForPortAccess / port: 5555 / retry: 0             │

00:02:53 #5572 [Verbose] > │ 00:00:19 #65 [Debug] _4                                                      │

00:02:53 #5573 [Verbose] > │ 00:00:19 #66 [Debug] _5                                                      │

00:02:53 #5574 [Verbose] > │ 00:00:19 #67 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

00:02:53 #5575 [Verbose] > │ 00:00:19 #68 [Debug] 5                                                       │

00:02:53 #5576 [Verbose] > │ 00:00:19 #69 [Debug] 6                                                       │

00:02:53 #5577 [Verbose] > │ 5557                                                                         │

00:02:53 #5578 [Verbose] > │ 7                                                                            │

00:02:53 #5579 [Verbose] > │ 7                                                                            │

00:02:53 #5580 [Verbose] > │ 7                                                                            │

00:02:53 #5581 [Verbose] > │ True                                                                         │

00:02:53 #5582 [Verbose] > │                                                                              │

00:02:53 #5583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:55 #5584 [Verbose] > [NbConvertApp] Converting notebook Networking.dib.ipynb to html

00:02:55 #5585 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:02:55 #5586 [Verbose] >   validate(nb)

00:02:56 #5587 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:02:56 #5588 [Verbose] >   return _pygments_highlight(

00:02:57 #5589 [Verbose] > [NbConvertApp] Writing 326275 bytes to Networking.dib.html

00:02:57 #5590 [Debug] executeAsync / exitCode: 0 / output.Length: 31534

00:02:57 #5591 [Debug] main / executeCommand / exitCode: 0

00:02:57 #5592 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Runtime.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:03:01 #5593 [Verbose] >

00:03:01 #5594 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:01 #5595 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:01 #5596 [Verbose] > │ # Runtime (Polyglot)                                                         │

00:03:01 #5597 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #5598 [Verbose] >

00:03:01 #5599 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:01 #5600 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:03:01 #5601 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:03:01 #5602 [Verbose] >

00:03:01 #5603 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:01 #5604 [Verbose] > #r

00:03:01 #5605 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:03:01 #5606 [Verbose] > spNetCore.Html.Abstractions.dll"

00:03:01 #5607 [Verbose] > #r

00:03:01 #5608 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:01 #5609 [Verbose] > otNet.Interactive.dll"

00:03:01 #5610 [Verbose] > #r

00:03:01 #5611 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:01 #5612 [Verbose] > otNet.Interactive.FSharp.dll"

00:03:01 #5613 [Verbose] > #r

00:03:01 #5614 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:01 #5615 [Verbose] > otNet.Interactive.Formatting.dll"

00:03:01 #5616 [Verbose] > open System

00:03:01 #5617 [Verbose] > open System.IO

00:03:01 #5618 [Verbose] > open System.Text

00:03:01 #5619 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:03:05 #5620 [Verbose] >

00:03:05 #5621 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:05 #5622 [Verbose] > #r

00:03:05 #5623 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:05 #5624 [Verbose] > otNet.Interactive.FSharp.dll"

00:03:05 #5625 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:03:05 #5626 [Verbose] > #r

00:03:05 #5627 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:05 #5628 [Verbose] > otNet.Interactive.dll"

00:03:05 #5629 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:03:05 #5630 [Verbose] >

00:03:05 #5631 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:05 #5632 [Verbose] > //// test

00:03:05 #5633 [Verbose] >

00:03:05 #5634 [Verbose] > Formatter.ListExpansionLimit <- 100

00:03:06 #5635 [Verbose] >

00:03:06 #5636 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:06 #5637 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:03:06 #5638 [Verbose] >

00:03:06 #5639 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:06 #5640 [Verbose] > //// test

00:03:06 #5641 [Verbose] >

00:03:06 #5642 [Verbose] > type AssertExceptionFormatter (ex) =

00:03:06 #5643 [Verbose] >     member _.Text =

00:03:06 #5644 [Verbose] >         ex.ToString()

00:03:06 #5645 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:03:06 #5646 [Verbose] >             .Replace("36m", "</span>")

00:03:06 #5647 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:03:06 #5648 [Verbose] >             .Replace("\n", "<br/>\n")

00:03:06 #5649 [Verbose] >

00:03:06 #5650 [Verbose] >

00:03:06 #5651 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:03:06 #5652 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:03:07 #5653 [Verbose] >

00:03:07 #5654 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:07 #5655 [Verbose] > //// test

00:03:07 #5656 [Verbose] >

00:03:07 #5657 [Verbose] > let inline __expect fn log expected actual =

00:03:07 #5658 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:03:07 #5659 [Verbose] >     try

00:03:07 #5660 [Verbose] >         "Testing.__expect" |> fn actual expected

00:03:07 #5661 [Verbose] >     with :? Expecto.AssertException as ex ->

00:03:07 #5662 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:03:07 #5663 [Verbose] >         failwith (ex.GetType().FullName)

00:03:07 #5664 [Verbose] >

00:03:07 #5665 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:03:07 #5666 [Verbose] > expected actual

00:03:07 #5667 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:03:07 #5668 [Verbose] >

00:03:07 #5669 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:03:07 #5670 [Verbose] > expected actual

00:03:07 #5671 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:03:07 #5672 [Verbose] >

00:03:07 #5673 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:03:07 #5674 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:03:07 #5675 [Verbose] >

00:03:07 #5676 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:07 #5677 [Verbose] > //// test

00:03:07 #5678 [Verbose] >

00:03:07 #5679 [Verbose] > let inline __isBetween log a b actual =

00:03:07 #5680 [Verbose] >     let inline isBetween actual (a, b) _ =

00:03:07 #5681 [Verbose] >         __isGreaterThanOrEqual log a actual

00:03:07 #5682 [Verbose] >         __isLessThanOrEqual log b actual

00:03:07 #5683 [Verbose] >     __expect isBetween log (a, b) actual

00:03:07 #5684 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:03:07 #5685 [Verbose] >

00:03:07 #5686 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:07 #5687 [Verbose] > #r

00:03:07 #5688 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

00:03:07 #5689 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"

00:03:07 #5690 [Verbose] > #r

00:03:07 #5691 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

00:03:07 #5692 [Verbose] > 0/System.Reactive.dll"

00:03:07 #5693 [Verbose] > #r

00:03:07 #5694 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib

00:03:07 #5695 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"

00:03:07 #5696 [Verbose] > #r

00:03:07 #5697 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

00:03:07 #5698 [Verbose] > #r

00:03:08 #5699 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

00:03:08 #5700 [Verbose] > b/net6.0/System.CommandLine.dll"

00:03:08 #5701 [Verbose] >

00:03:08 #5702 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:08 #5703 [Verbose] > #!import ../../lib/spiral/common.fsx

00:03:08 #5704 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:03:08 #5705 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:03:08 #5706 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:03:08 #5707 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:03:08 #5708 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:03:08 #5709 [Verbose] > #!import ../../lib/fsharp/CommonFSharp.fs

00:03:08 #5710 [Verbose] > #!import ../../lib/fsharp/Async.fs

00:03:08 #5711 [Verbose] > #!import ../../lib/fsharp/AsyncSeq.fs

00:03:08 #5712 [Verbose] > #!import ../../lib/fsharp/Runtime.fs

00:03:08 #5713 [Verbose] > #!import ../../lib/fsharp/FileSystem.fs

00:03:08 #5714 [Verbose] >

00:03:08 #5715 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:08 #5716 [Verbose] > type [[<Struct>]] US0 =

00:03:08 #5717 [Verbose] >     | US0_0

00:03:08 #5718 [Verbose] >     | US0_1

00:03:08 #5719 [Verbose] >     | US0_2

00:03:08 #5720 [Verbose] >     | US0_3

00:03:08 #5721 [Verbose] > and [[<Struct>]] US1 =

00:03:08 #5722 [Verbose] >     | US1_0 of f0_0 : US0

00:03:08 #5723 [Verbose] >     | US1_1 of f1_0 : US0

00:03:08 #5724 [Verbose] > and [[<Struct>]] US2 =

00:03:08 #5725 [Verbose] >     | US2_0

00:03:08 #5726 [Verbose] >     | US2_1

00:03:08 #5727 [Verbose] > and [[<Struct>]] US3 =

00:03:08 #5728 [Verbose] >     | US3_0 of f0_0 : US2

00:03:08 #5729 [Verbose] >     | US3_1

00:03:08 #5730 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:03:08 #5731 [Verbose] >     let v1 : System.IDisposable option = None

00:03:08 #5732 [Verbose] >     let mutable _v1 = v1

00:03:08 #5733 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:03:08 #5734 [Verbose] >     let v2 : US0 = US0_0

00:03:08 #5735 [Verbose] >     let v3 : US1 = US1_0(v2)

00:03:08 #5736 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:03:08 #5737 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:03:08 #5738 [Verbose] >     v5

00:03:08 #5739 [Verbose] >     #endif

00:03:08 #5740 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:03:08 #5741 [Verbose] >     let v6 : US0 = US0_2

00:03:08 #5742 [Verbose] >     let v7 : US1 = US1_0(v6)

00:03:08 #5743 [Verbose] >     let v8 : string = $"new_dispos...

00:03:09 #5744 [Verbose] >

00:03:09 #5745 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:09 #5746 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:03:09 #5747 [Verbose] > and Mut1 = {mutable l0 : int32}

00:03:09 #5748 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:03:09 #5749 [Verbose] >     let v2 : bool = v1.Contains v0

00:03:09 #5750 [Verbose] >     v2

00:03:09 #5751 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:03:09 #5752 [Verbose] >     closure1(v0)

00:03:09 #5753 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:03:09 #5754 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:03:09 #5755 [Verbose] >     v2

00:03:09 #5756 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:03:09 #5757 [Verbose] >     closure3(v0)

00:03:09 #5758 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:03:09 #5759 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:03:09 #5760 [Verbose] >     v3

00:03:09 #5761 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:03:09 #5762 [Verbose] >     closure6(v0, v1)

00:03:09 #5763 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:03:09 #5764 [Verbose] >     closure5(v0)

00:03:09 #5765 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:03:09 #5766 [Verbose] >     let v2 : stri...

00:03:10 #5767 [Verbose] >

00:03:10 #5768 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:10 #5769 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:03:10 #5770 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:03:10 #5771 [Verbose] >     let v3 : string = v2 v0

00:03:10 #5772 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:03:10 #5773 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:03:10 #5774 [Verbose] >     v5

00:03:10 #5775 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:03:10 #5776 [Verbose] >     closure1(v0)

00:03:10 #5777 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:03:10 #5778 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:03:10 #5779 [Verbose] >     v3

00:03:10 #5780 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:03:10 #5781 [Verbose] >     closure5(v0, v1)

00:03:10 #5782 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:03:10 #5783 [Verbose] >     closure4(v0)

00:03:10 #5784 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:03:10 #5785 [Verbose] >     closure3()

00:03:10 #5786 [Verbose] > and closure2 (...

00:03:10 #5787 [Verbose] >

00:03:10 #5788 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:10 #5789 [Verbose] > #if FABLE_COMPILER // file_system.types

00:03:10 #5790 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:03:10 #5791 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:03:10 #5792 [Verbose] > base64_DecodeError = class end

00:03:10 #5793 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:03:10 #5794 [Verbose] > = class end

00:03:10 #5795 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:03:10 #5796 [Verbose] > = class end

00:03:10 #5797 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:03:10 #5798 [Verbose] > serde_json_Error = class end

00:03:10 #5799 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:03:10 #5800 [Verbose] > serde_json_Value = class end

00:03:10 #5801 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:03:10 #5802 [Verbose] > serde_wasm_bindgen_Error = class end

00:03:10 #5803 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:03:11 #5804 [Verbose] >

00:03:11 #5805 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:11 #5806 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:03:11 #5807 [Verbose] > module SpiralDateTime =

00:03:11 #5808 [Verbose] >     let format x =

00:03:11 #5809 [Verbose] > #if !INTERACTIVE

00:03:11 #5810 [Verbose] >         Date_time.format x

00:03:11 #5811 [Verbose] > #else

00:03:11 #5812 [Verbose] >         format x

00:03:11 #5813 [Verbose] > #endif

00:03:11 #5814 [Verbose] >

00:03:11 #5815 [Verbose] >     let format_iso8601 x =

00:03:11 #5816 [Verbose] > #if !INTERACTIVE

00:03:11 #5817 [Verbose] >         Date_time.format_iso8601 x

00:03:11 #5818 [Verbose] > #else

00:03:11 #5819 [Verbose] >         format_iso8601 x

00:03:11 #5820 [Verbose] > #endif

00:03:11 #5821 [Verbose] >

00:03:11 #5822 [Verbose] >     let new_guid_from_date_time x =

00:03:11 #5823 [Verbose] > #if !INTERACTIVE

00:03:11 #5824 [Verbose] >         Date_time.new_guid_from_date_time x

00:03:11 #5825 [Verbose] > #else

00:03:11 #5826 [Verbose] >         new_guid_from_date_time x

00:03:11 #5827 [Verbose] > #endif

00:03:11 #5828 [Verbose] >

00:03:11 #5829 [Verbose] > #endif

00:03:11 #5830 [Verbose] >

00:03:11 #5831 [Verbose] > module SpiralSm =

00:03:11 #5832 [Verbose] >     let concat x =

00:03:11 #5833 [Verbose] > #if !INTERACTIVE

00:03:11 #5834 [Verbose] >         Sm.concat x

00:03:11 #5835 [Verbose] > #else

00:03:11 #5836 [Verbose] >         concat x

00:03:11 #5837 [Verbose] > #endif

00:03:11 #5838 [Verbose] >

00:03:11 #5839 [Verbose] >     let contains x =

00:03:11 #5840 [Verbose] > #if !INTERACTIVE

00:03:11 #5841 [Verbose] >         Sm.contains x

00:03:11 #5842 [Verbose] > #else

00:03:11 #5843 [Verbose] >         contains x

00:03:11 #5844 [Verbose] > #endif

00:03:11 #5845 [Verbose] >

00:03:11 #5846 [Verbose] >     let ellipsis x =

00:03:11 #5847 [Verbose] > #if !INTERACTIVE

00:03:11 #5848 [Verbose] >         Sm.ellipsis x

00:03:11 #5849 [Verbose] > #else

00:03:11 #5850 [Verbose] >         ellipsis x

00:03:11 #5851 [Verbose] > #endif

00:03:11 #5852 [Verbose] >

00:03:11 #5853 [Verbose] >     let ellipsis_end x =

00:03:11 #5854 [Verbose] > #if...

00:03:11 #5855 [Verbose] >

00:03:11 #5856 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:11 #5857 [Verbose] > #if !INTERACTIVE

00:03:11 #5858 [Verbose] > namespace Polyglot

00:03:11 #5859 [Verbose] > #endif

00:03:11 #5860 [Verbose] >

00:03:11 #5861 [Verbose] > module Common =

00:03:11 #5862 [Verbose] >

00:03:11 #5863 [Verbose] > #if !INTERACTIVE

00:03:11 #5864 [Verbose] >     open Lib

00:03:11 #5865 [Verbose] > #endif

00:03:11 #5866 [Verbose] >

00:03:11 #5867 [Verbose] >     let nl = System.Environment.NewLine

00:03:11 #5868 [Verbose] >     let q = @""""

00:03:11 #5869 [Verbose] >

00:03:11 #5870 [Verbose] >     let inline cons head tail = head :: tail

00:03:11 #5871 [Verbose] >

00:03:11 #5872 [Verbose] >     /// ## memoize

00:03:11 #5873 [Verbose] >

00:03:11 #5874 [Verbose] >     let inline memoize fn =

00:03:11 #5875 [Verbose] >         let result = lazy fn ()

00:03:11 #5876 [Verbose] >         fun () -> result.Value

00:03:11 #5877 [Verbose] >

00:03:11 #5878 [Verbose] >     /// ## TraceLevel

00:03:11 #5879 [Verbose] >

00:03:11 #5880 [Verbose] >     type TraceLevel =

00:03:11 #5881 [Verbose] >         | Verbose

00:03:11 #5882 [Verbose] >         | Debug

00:03:11 #5883 [Verbose] >         | Info

00:03:11 #5884 [Verbose] >         | Warning

00:03:11 #5885 [Verbose] >         | Critical

00:03:11 #5886 [Verbose] >

00:03:11 #5887 [Verbose] >     let inline getLocals () = ""

00:03:11 #5888 [Verbose] >

00:03:11 #5889 [Verbose] >     let mutable traceEnabled = true

00:03:11 #5890 [Verbose] >     let mutable traceCount = 0

00:03:11 #5891 [Verbose] >     let mutable traceLevel = Verbose

00:03:11 #5892 [Verbose] >     let mutable traceDump = false

00:03:11 #5893 [Verbose] >

00:03:11 #5894 [Verbose] >     let testTraceLevel level =

00:03:11 #5895 [Verbose] >         traceEnabled && level >= traceLevel

00:03:11 #5896 [Verbose] >

00:03:11 #5897 [Verbose] >     /// ## traceRaw

00:03:11 #5898 [Verbose] >

00:03:11 #5899 [Verbose] >     let rec traceRaw level fn =

00:03:11 #5900 [Verbose] > ...

00:03:11 #5901 [Verbose] >

00:03:11 #5902 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:11 #5903 [Verbose] > #if !INTERACTIVE

00:03:11 #5904 [Verbose] > namespace Polyglot

00:03:11 #5905 [Verbose] > #endif

00:03:11 #5906 [Verbose] >

00:03:11 #5907 [Verbose] > module CommonFSharp =

00:03:11 #5908 [Verbose] >

00:03:11 #5909 [Verbose] >     open Common

00:03:11 #5910 [Verbose] >

00:03:11 #5911 [Verbose] >     /// ## getUnionCaseName

00:03:11 #5912 [Verbose] >

00:03:11 #5913 [Verbose] >     let inline getUnionCaseName<'T> (x: 'T) =

00:03:11 #5914 [Verbose] >         match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

00:03:11 #5915 [Verbose] >         | case, _ -> case.Name

00:03:11 #5916 [Verbose] >

00:03:11 #5917 [Verbose] >

00:03:11 #5918 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:11 #5919 [Verbose] > #if !INTERACTIVE

00:03:11 #5920 [Verbose] > namespace Polyglot

00:03:11 #5921 [Verbose] > #endif

00:03:11 #5922 [Verbose] >

00:03:11 #5923 [Verbose] > module Async =

00:03:11 #5924 [Verbose] >

00:03:11 #5925 [Verbose] > #if !INTERACTIVE

00:03:11 #5926 [Verbose] >     open Lib

00:03:11 #5927 [Verbose] > #endif

00:03:11 #5928 [Verbose] >

00:03:11 #5929 [Verbose] >     open Common

00:03:11 #5930 [Verbose] >

00:03:11 #5931 [Verbose] >     /// ## choice

00:03:11 #5932 [Verbose] >

00:03:11 #5933 [Verbose] >     let inline choice asyncs = async {

00:03:11 #5934 [Verbose] >         let e = Event<_> ()

00:03:11 #5935 [Verbose] >         use cts = new System.Threading.CancellationTokenSource ()

00:03:11 #5936 [Verbose] >         let fn =

00:03:11 #5937 [Verbose] >             asyncs

00:03:11 #5938 [Verbose] >             |> Seq.map (fun a -> async {

00:03:11 #5939 [Verbose] >                 let! x = a

00:03:11 #5940 [Verbose] >                 e.Trigger x

00:03:11 #5941 [Verbose] >             })

00:03:11 #5942 [Verbose] >             |> Async.Parallel

00:03:11 #5943 [Verbose] >             |> Async.Ignore

00:03:11 #5944 [Verbose] >         Async.Start (fn, cts.Token)

00:03:11 #5945 [Verbose] >         let! result = Async.AwaitEvent e.Publish

00:03:11 #5946 [Verbose] >         cts.Cancel ()

00:03:11 #5947 [Verbose] >         return result

00:03:11 #5948 [Verbose] >     }

00:03:11 #5949 [Verbose] >

00:03:11 #5950 [Verbose] >     /// ## map

00:03:11 #5951 [Verbose] >

00:03:11 #5952 [Verbose] >     let inline map fn a = async {

00:03:11 #5953 [Verbose] >         let! x = a

00:03:11 #5954 [Verbose] >         return fn x

00:03:11 #5955 [Verbose] >     }

00:03:11 #5956 [Verbose] >

00:03:11 #5957 [Verbose] >     /// ## catch

00:03:11 #5958 [Verbose] >

00:03:11 #5959 [Verbose] >     let inline catch a =

00:03:11 #5960 [Verbose] >    ...

00:03:13 #5961 [Verbose] >

00:03:13 #5962 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:13 #5963 [Verbose] > #if !INTERACTIVE

00:03:13 #5964 [Verbose] > namespace Polyglot

00:03:13 #5965 [Verbose] > #endif

00:03:13 #5966 [Verbose] >

00:03:13 #5967 [Verbose] > module AsyncSeq =

00:03:13 #5968 [Verbose] >

00:03:13 #5969 [Verbose] > #if !INTERACTIVE

00:03:13 #5970 [Verbose] >     open Lib

00:03:13 #5971 [Verbose] > #endif

00:03:13 #5972 [Verbose] >

00:03:13 #5973 [Verbose] >     open Common

00:03:13 #5974 [Verbose] >

00:03:13 #5975 [Verbose] >     /// ## subscribeEvent

00:03:13 #5976 [Verbose] >

00:03:13 #5977 [Verbose] >     let inline subscribeEvent (event: IEvent<'H, 'A>) map =

00:03:13 #5978 [Verbose] >         let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,

00:03:13 #5979 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)

00:03:13 #5980 [Verbose] >         System.Reactive.Linq.Observable.Select (observable, fun event -> map

00:03:13 #5981 [Verbose] > event.EventArgs)

00:03:13 #5982 [Verbose] >         |> FSharp.Control.AsyncSeq.ofObservableBuffered

00:03:13 #5983 [Verbose] >

00:03:13 #5984 [Verbose] >     let subscribeToken (token : System.Threading.CancellationToken) =

00:03:13 #5985 [Verbose] >         let tcs = new System.Threading.Tasks.TaskCompletionSource ()

00:03:13 #5986 [Verbose] >         System.Action tcs.SetResult |> token.Register |> ignore

00:03:13 #5987 [Verbose] >         let start = System.DateTime.Now.Ticks

00:03:13 #5988 [Verbose] >         FSharp.Control.A...

00:03:13 #5989 [Verbose] >

00:03:13 #5990 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:13 #5991 [Verbose] > #if !INTERACTIVE

00:03:13 #5992 [Verbose] > namespace Polyglot

00:03:13 #5993 [Verbose] > #endif

00:03:13 #5994 [Verbose] >

00:03:13 #5995 [Verbose] > module Runtime =

00:03:13 #5996 [Verbose] >

00:03:13 #5997 [Verbose] > #if !INTERACTIVE

00:03:13 #5998 [Verbose] >     open Lib

00:03:13 #5999 [Verbose] > #endif

00:03:13 #6000 [Verbose] >

00:03:13 #6001 [Verbose] >     open Common

00:03:13 #6002 [Verbose] >

00:03:13 #6003 [Verbose] >     /// ## isWindows

00:03:13 #6004 [Verbose] >

00:03:13 #6005 [Verbose] >     let isWindows =

00:03:13 #6006 [Verbose] >         fun () ->

00:03:13 #6007 [Verbose] >             System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

00:03:13 #6008 [Verbose] >                 System.Runtime.InteropServices.OSPlatform.Windows

00:03:13 #6009 [Verbose] >         |> memoize

00:03:13 #6010 [Verbose] >

00:03:13 #6011 [Verbose] >     /// ## getExecutableSuffix

00:03:13 #6012 [Verbose] >

00:03:13 #6013 [Verbose] >     let inline getExecutableSuffix () =

00:03:13 #6014 [Verbose] >         if isWindows ()

00:03:13 #6015 [Verbose] >         then ".exe"

00:03:13 #6016 [Verbose] >         else ""

00:03:13 #6017 [Verbose] >

00:03:13 #6018 [Verbose] >     /// ## splitCommand

00:03:13 #6019 [Verbose] >

00:03:13 #6020 [Verbose] >     type private CommandParseStep =

00:03:13 #6021 [Verbose] >         | Start

00:03:13 #6022 [Verbose] >         | Path of quoted: bool

00:03:13 #6023 [Verbose] >         | Arguments

00:03:13 #6024 [Verbose] >

00:03:13 #6025 [Verbose] >     let splitCommand (command: string) =

00:03:13 #6026 [Verbose] >         let rec loop (path, args) chars step =

00:03:13 #6027 [Verbose] >             match chars, step with

00:03:13 #6028 [Verbose] >             | ('"' | '\'') ...

00:03:14 #6029 [Verbose] >

00:03:14 #6030 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:14 #6031 [Verbose] > #if !INTERACTIVE

00:03:14 #6032 [Verbose] > namespace Polyglot

00:03:14 #6033 [Verbose] > #endif

00:03:14 #6034 [Verbose] >

00:03:14 #6035 [Verbose] > module FileSystem =

00:03:14 #6036 [Verbose] >

00:03:14 #6037 [Verbose] > #if !INTERACTIVE

00:03:14 #6038 [Verbose] >     open Lib

00:03:14 #6039 [Verbose] > #endif

00:03:14 #6040 [Verbose] >

00:03:14 #6041 [Verbose] >     open Common

00:03:14 #6042 [Verbose] >     open SpiralFileSystem.Operators

00:03:14 #6043 [Verbose] >

00:03:14 #6044 [Verbose] >     /// ## readAllTextAsync

00:03:14 #6045 [Verbose] >

00:03:14 #6046 [Verbose] >     let inline readAllTextAsync path =

00:03:14 #6047 [Verbose] >         path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask

00:03:14 #6048 [Verbose] >

00:03:14 #6049 [Verbose] >     /// ## fileExistsContent

00:03:14 #6050 [Verbose] >

00:03:14 #6051 [Verbose] >     let inline fileExistsContent path content = async {

00:03:14 #6052 [Verbose] >         if path |> System.IO.File.Exists |> not

00:03:14 #6053 [Verbose] >         then return false

00:03:14 #6054 [Verbose] >         else

00:03:14 #6055 [Verbose] >             let! existingContent = path |> readAllTextAsync

00:03:14 #6056 [Verbose] >             return content = existingContent

00:03:14 #6057 [Verbose] >     }

00:03:14 #6058 [Verbose] >

00:03:14 #6059 [Verbose] >     /// ## writeAllTextAsync

00:03:14 #6060 [Verbose] >

00:03:14 #6061 [Verbose] >     let inline writeAllTextAsync path contents =

00:03:14 #6062 [Verbose] >         System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask

00:03:14 #6063 [Verbose] >

00:03:14 #6064 [Verbose] >     /// ## write...

00:03:17 #6065 [Verbose] >

00:03:17 #6066 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6067 [Verbose] > #if !INTERACTIVE

00:03:17 #6068 [Verbose] > open Lib

00:03:17 #6069 [Verbose] > #endif

00:03:17 #6070 [Verbose] >

00:03:17 #6071 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6072 [Verbose] > open Common

00:03:17 #6073 [Verbose] >

00:03:17 #6074 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6075 [Verbose] > //// test

00:03:17 #6076 [Verbose] >

00:03:17 #6077 [Verbose] > open SpiralFileSystem.Operators

00:03:17 #6078 [Verbose] >

00:03:17 #6079 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:17 #6080 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:17 #6081 [Verbose] > │ ## isWindows                                                                 │

00:03:17 #6082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6083 [Verbose] >

00:03:17 #6084 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6085 [Verbose] > let isWindows =

00:03:17 #6086 [Verbose] >     fun () ->

00:03:17 #6087 [Verbose] >         System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

00:03:17 #6088 [Verbose] >             System.Runtime.InteropServices.OSPlatform.Windows

00:03:17 #6089 [Verbose] >     |> memoize

00:03:17 #6090 [Verbose] >

00:03:17 #6091 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6092 [Verbose] > //// test

00:03:17 #6093 [Verbose] >

00:03:17 #6094 [Verbose] > isWindows ()

00:03:17 #6095 [Verbose] >

00:03:17 #6096 [Verbose] > ╭─[ 118.49ms - return value ]──────────────────────────────────────────────────╮

00:03:17 #6097 [Verbose] > │ <div class="dni-plaintext"><pre>True</pre></div><style>                      │

00:03:17 #6098 [Verbose] > │ .dni-code-hint {                                                             │

00:03:17 #6099 [Verbose] > │     font-style: italic;                                                      │

00:03:17 #6100 [Verbose] > │     overflow: hidden;                                                        │

00:03:17 #6101 [Verbose] > │     white-space: nowrap;                                                     │

00:03:17 #6102 [Verbose] > │ }                                                                            │

00:03:17 #6103 [Verbose] > │ .dni-treeview {                                                              │

00:03:17 #6104 [Verbose] > │     white-space: nowrap;                                                     │

00:03:17 #6105 [Verbose] > │ }                                                                            │

00:03:17 #6106 [Verbose] > │ .dni-treeview td {                                                           │

00:03:17 #6107 [Verbose] > │     vertical-align: top;                                                     │

00:03:17 #6108 [Verbose] > │     text-align: start;                                                       │

00:03:17 #6109 [Verbose] > │ }                                                                            │

00:03:17 #6110 [Verbose] > │ details.dni-treeview {                                                       │

00:03:17 #6111 [Verbose] > │     padding-left: 1em;                                                       │

00:03:17 #6112 [Verbose] > │ }                                                                            │

00:03:17 #6113 [Verbose] > │ table td {                                                                   │

00:03:17 #6114 [Verbose] > │     text-align: start;                                                       │

00:03:17 #6115 [Verbose] > │ }                                                                            │

00:03:17 #6116 [Verbose] > │ table tr {                                                                   │

00:03:17 #6117 [Verbose] > │     vertical-align: top;                                                     │

00:03:17 #6118 [Verbose] > │     margin: 0em 0px;                                                         │

00:03:17 #6119 [Verbose] > │ }                                                                            │

00:03:17 #6120 [Verbose] > │ table tr td pre                                                              │

00:03:17 #6121 [Verbose] > │ {                                                                            │

00:03:17 #6122 [Verbose] > │     vertical-align: top !important;                                          │

00:03:17 #6123 [Verbose] > │     margin: 0em 0px !important;                                              │

00:03:17 #6124 [Verbose] > │ }                                                                            │

00:03:17 #6125 [Verbose] > │ table th {                                                                   │

00:03:17 #6126 [Verbose] > │     text-align: start;                                                       │

00:03:17 #6127 [Verbose] > │ }                                                                            │

00:03:17 #6128 [Verbose] > │ </style>                                                                     │

00:03:17 #6129 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6130 [Verbose] >

00:03:17 #6131 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:17 #6132 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:17 #6133 [Verbose] > │ ## getExecutableSuffix                                                       │

00:03:17 #6134 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6135 [Verbose] >

00:03:17 #6136 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6137 [Verbose] > let inline getExecutableSuffix () =

00:03:17 #6138 [Verbose] >     if isWindows ()

00:03:17 #6139 [Verbose] >     then ".exe"

00:03:17 #6140 [Verbose] >     else ""

00:03:17 #6141 [Verbose] >

00:03:17 #6142 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6143 [Verbose] > //// test

00:03:17 #6144 [Verbose] >

00:03:17 #6145 [Verbose] > getExecutableSuffix ()

00:03:17 #6146 [Verbose] >

00:03:17 #6147 [Verbose] > ╭─[ 21.91ms - return value ]───────────────────────────────────────────────────╮

00:03:17 #6148 [Verbose] > │ .exe                                                                         │

00:03:17 #6149 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6150 [Verbose] >

00:03:17 #6151 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:17 #6152 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:17 #6153 [Verbose] > │ ## splitCommand                                                              │

00:03:17 #6154 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6155 [Verbose] >

00:03:17 #6156 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6157 [Verbose] > type private CommandParseStep =

00:03:17 #6158 [Verbose] >     | Start

00:03:17 #6159 [Verbose] >     | Path of quoted: bool

00:03:17 #6160 [Verbose] >     | Arguments

00:03:17 #6161 [Verbose] >

00:03:17 #6162 [Verbose] > let splitCommand (command: string) =

00:03:17 #6163 [Verbose] >     let rec loop (path, args) chars step =

00:03:17 #6164 [Verbose] >         match chars, step with

00:03:17 #6165 [Verbose] >         | ('"' | '\'') :: tail, _ when path = "" -> loop (path, args) tail (Path

00:03:17 #6166 [Verbose] > true)

00:03:17 #6167 [Verbose] >         | ('"' | '\'') :: tail, Path true -> loop (path, args) tail (Path false)

00:03:17 #6168 [Verbose] >         | ' ' :: tail, Path true -> loop ($"{path} ", args) tail (Path true)

00:03:17 #6169 [Verbose] >         | ' ' :: tail, (Start | Path _) -> loop (path, args) tail Arguments

00:03:17 #6170 [Verbose] >         | char :: tail, Arguments -> loop (path, $"{args}{char}") tail Arguments

00:03:17 #6171 [Verbose] >         | char :: tail, _ -> loop ($"{path}{char}", args) tail step

00:03:17 #6172 [Verbose] >         | _, _ -> path |> SpiralSm.replace @"\" "/", args

00:03:17 #6173 [Verbose] >     loop ("", "") (command |> Seq.toList) Start

00:03:17 #6174 [Verbose] >

00:03:17 #6175 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6176 [Verbose] > //// test

00:03:17 #6177 [Verbose] >

00:03:17 #6178 [Verbose] > splitCommand ""

00:03:17 #6179 [Verbose] > |> _assertEqual ("", "")

00:03:17 #6180 [Verbose] >

00:03:17 #6181 [Verbose] > splitCommand "/a/b/c"

00:03:17 #6182 [Verbose] > |> _assertEqual ("/a/b/c", "")

00:03:17 #6183 [Verbose] >

00:03:17 #6184 [Verbose] > splitCommand "cat file.txt"

00:03:17 #6185 [Verbose] > |> _assertEqual ("cat", "file.txt")

00:03:17 #6186 [Verbose] >

00:03:17 #6187 [Verbose] > splitCommand """..\..\file.exe file1.txt file2.txt"""

00:03:17 #6188 [Verbose] > |> _assertEqual ("../../file.exe", "file1.txt file2.txt")

00:03:17 #6189 [Verbose] >

00:03:17 #6190 [Verbose] > splitCommand @"c:\dir\file.exe ""file1.txt file2.txt"""

00:03:17 #6191 [Verbose] > |> _assertEqual ("c:/dir/file.exe", @"""file1.txt file2.txt""")

00:03:17 #6192 [Verbose] >

00:03:17 #6193 [Verbose] > splitCommand @"""..\..\dir name\file.exe"" ""file 1.txt"" file2.txt"

00:03:17 #6194 [Verbose] > |> _assertEqual ("../../dir name/file.exe", @"""file 1.txt"" file2.txt")

00:03:17 #6195 [Verbose] >

00:03:17 #6196 [Verbose] > splitCommand @"""..\..\file 1.exe"" -c \\""echo 1\\"""

00:03:17 #6197 [Verbose] > |> _assertEqual ("../../file 1.exe", @"-c \\""echo 1\\""")

00:03:17 #6198 [Verbose] >

00:03:17 #6199 [Verbose] > splitCommand @"..\..\file 1.exe -c \\""echo 1\\"""

00:03:17 #6200 [Verbose] > |> _assertEqual ("../../file", @"1.exe -c \\""echo 1\\""")

00:03:17 #6201 [Verbose] >

00:03:17 #6202 [Verbose] > ╭─[ 126.88ms - stdout ]────────────────────────────────────────────────────────╮

00:03:17 #6203 [Verbose] > │ ( ,  )                                                                       │

00:03:17 #6204 [Verbose] > │ ( /a/b/c,  )                                                                 │

00:03:17 #6205 [Verbose] > │ ( cat, file.txt )                                                            │

00:03:17 #6206 [Verbose] > │ ( ../../file.exe, file1.txt file2.txt )                                      │

00:03:17 #6207 [Verbose] > │ ( c:/dir/file.exe, "file1.txt file2.txt" )                                   │

00:03:17 #6208 [Verbose] > │ ( ../../dir name/file.exe, "file 1.txt" file2.txt )                          │

00:03:17 #6209 [Verbose] > │ ( ../../file 1.exe, -c \\"echo 1\\" )                                        │

00:03:17 #6210 [Verbose] > │ ( ../../file, 1.exe -c \\"echo 1\\" )                                        │

00:03:17 #6211 [Verbose] > │                                                                              │

00:03:17 #6212 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6213 [Verbose] >

00:03:17 #6214 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:17 #6215 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:17 #6216 [Verbose] > │ ## executeAsync                                                              │

00:03:17 #6217 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:17 #6218 [Verbose] >

00:03:17 #6219 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:17 #6220 [Verbose] > type ExecutionLine =

00:03:17 #6221 [Verbose] >     {

00:03:17 #6222 [Verbose] >         ProcessId : int

00:03:17 #6223 [Verbose] >         Line : string

00:03:17 #6224 [Verbose] >         Error : bool

00:03:17 #6225 [Verbose] >     }

00:03:17 #6226 [Verbose] >

00:03:17 #6227 [Verbose] > type ExecutionOptions =

00:03:17 #6228 [Verbose] >     {

00:03:17 #6229 [Verbose] >         Command : string

00:03:17 #6230 [Verbose] >         WorkingDirectory : string option

00:03:17 #6231 [Verbose] >         CancellationToken : System.Threading.CancellationToken option

00:03:17 #6232 [Verbose] >         OnLine : (ExecutionLine -> Async<unit>) option

00:03:17 #6233 [Verbose] >     }

00:03:17 #6234 [Verbose] >

00:03:17 #6235 [Verbose] > let inline executeWithOptionsAsync (options : ExecutionOptions) = async {

00:03:17 #6236 [Verbose] >     let fileName, arguments = options.Command |> splitCommand

00:03:17 #6237 [Verbose] >     let workingDirectory = options.WorkingDirectory |> Option.defaultValue ""

00:03:17 #6238 [Verbose] >

00:03:17 #6239 [Verbose] >     trace Debug (fun () -> $"executeAsync / options: {options}") getLocals

00:03:17 #6240 [Verbose] >

00:03:17 #6241 [Verbose] >     let startInfo = System.Diagnostics.ProcessStartInfo (

00:03:17 #6242 [Verbose] >         Arguments = arguments,

00:03:17 #6243 [Verbose] >         CreateNoWindow = true,

00:03:17 #6244 [Verbose] >         FileName = fileName,

00:03:17 #6245 [Verbose] >         RedirectStandardError = true,

00:03:17 #6246 [Verbose] >         RedirectStandardOutput = true,

00:03:17 #6247 [Verbose] >         StandardOutputEncoding = System.Text.Encoding.UTF8,

00:03:17 #6248 [Verbose] >         UseShellExecute = false,

00:03:17 #6249 [Verbose] >         WorkingDirectory = workingDirectory

00:03:17 #6250 [Verbose] >     )

00:03:17 #6251 [Verbose] >

00:03:17 #6252 [Verbose] >     use proc = new System.Diagnostics.Process (StartInfo = startInfo)

00:03:17 #6253 [Verbose] >     let output = System.Collections.Concurrent.ConcurrentStack<string> ()

00:03:17 #6254 [Verbose] >

00:03:17 #6255 [Verbose] >     let inline event error (e: System.Diagnostics.DataReceivedEventArgs) = async

00:03:17 #6256 [Verbose] > {

00:03:17 #6257 [Verbose] >         if e.Data <> null then

00:03:17 #6258 [Verbose] >             match options.OnLine with

00:03:17 #6259 [Verbose] >             | Some onLine ->

00:03:17 #6260 [Verbose] >                 do!

00:03:17 #6261 [Verbose] >                     onLine

00:03:17 #6262 [Verbose] >                         {

00:03:17 #6263 [Verbose] >                             ProcessId = proc.Id

00:03:17 #6264 [Verbose] >                             Line = e.Data

00:03:17 #6265 [Verbose] >                             Error = error

00:03:17 #6266 [Verbose] >                         }

00:03:17 #6267 [Verbose] >             | None -> ()

00:03:17 #6268 [Verbose] >

00:03:17 #6269 [Verbose] >             trace

00:03:17 #6270 [Verbose] >                 Verbose

00:03:17 #6271 [Verbose] >                 (fun () -> $"> {e.Data}")

00:03:17 #6272 [Verbose] >                 Common.getLocals

00:03:17 #6273 [Verbose] >

00:03:17 #6274 [Verbose] >             output.Push

00:03:17 #6275 [Verbose] >                 $"{

00:03:17 #6276 [Verbose] >                     if error then '[['.ToString() else System.String.Empty

00:03:17 #6277 [Verbose] >                 }{

00:03:17 #6278 [Verbose] >                     e.Data

00:03:17 #6279 [Verbose] >                 }{

00:03:17 #6280 [Verbose] >                     if error then ']]'.ToString() else System.String.Empty

00:03:17 #6281 [Verbose] >                 }"

00:03:17 #6282 [Verbose] >     }

00:03:17 #6283 [Verbose] >

00:03:17 #6284 [Verbose] >     proc.OutputDataReceived.Add (event false >> Async.StartImmediate)

00:03:17 #6285 [Verbose] >     proc.ErrorDataReceived.Add (event true >> Async.StartImmediate)

00:03:17 #6286 [Verbose] >

00:03:17 #6287 [Verbose] >     if proc.Start () |> not

00:03:17 #6288 [Verbose] >     then failwith $"executeAsync / proc.Start () error"

00:03:17 #6289 [Verbose] >

00:03:17 #6290 [Verbose] >     proc.BeginErrorReadLine ()

00:03:17 #6291 [Verbose] >     proc.BeginOutputReadLine ()

00:03:17 #6292 [Verbose] >

00:03:17 #6293 [Verbose] >     let! ct =

00:03:17 #6294 [Verbose] >         options.CancellationToken

00:03:17 #6295 [Verbose] >         |> Option.defaultValue System.Threading.CancellationToken.None

00:03:17 #6296 [Verbose] >         |> Async.mergeCancellationTokenWithDefaultAsync

00:03:17 #6297 [Verbose] >

00:03:17 #6298 [Verbose] >     use reg = ct.Register (fun _ ->

00:03:17 #6299 [Verbose] >         if not proc.HasExited then proc.Kill ()

00:03:17 #6300 [Verbose] >     )

00:03:17 #6301 [Verbose] >

00:03:17 #6302 [Verbose] >     let! exitCode = async {

00:03:17 #6303 [Verbose] >         try

00:03:17 #6304 [Verbose] >             do! proc.WaitForExitAsync ct |> Async.AwaitTask

00:03:17 #6305 [Verbose] >             return proc.ExitCode

00:03:17 #6306 [Verbose] >         with :? System.Threading.Tasks.TaskCanceledException as ex ->

00:03:17 #6307 [Verbose] >             trace Warning (fun () -> $"executeAsync / WaitForExitAsync / ex: {ex

00:03:17 #6308 [Verbose] > |> SpiralSm.format_exception}") getLocals

00:03:17 #6309 [Verbose] >             ex |> SpiralSm.format_exception |> output.Push

00:03:17 #6310 [Verbose] >             return System.Int32.MinValue

00:03:17 #6311 [Verbose] >     }

00:03:17 #6312 [Verbose] >

00:03:17 #6313 [Verbose] >     let output = output |> Seq.rev |> SpiralSm.concat "\n"

00:03:17 #6314 [Verbose] >

00:03:17 #6315 [Verbose] >     trace Debug (fun () ->

00:03:17 #6316 [Verbose] >         $"executeAsync / exitCode: {exitCode} / output.Length: {output.Length}"

00:03:17 #6317 [Verbose] >     ) getLocals

00:03:17 #6318 [Verbose] >

00:03:17 #6319 [Verbose] >     return exitCode, output

00:03:17 #6320 [Verbose] > }

00:03:17 #6321 [Verbose] >

00:03:17 #6322 [Verbose] > let inline executeAsync command =

00:03:17 #6323 [Verbose] >     executeWithOptionsAsync

00:03:17 #6324 [Verbose] >         {

00:03:17 #6325 [Verbose] >             Command = command

00:03:17 #6326 [Verbose] >             CancellationToken = None

00:03:17 #6327 [Verbose] >             OnLine = None

00:03:17 #6328 [Verbose] >             WorkingDirectory = None

00:03:17 #6329 [Verbose] >         }

00:03:18 #6330 [Verbose] >

00:03:18 #6331 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:18 #6332 [Verbose] > //// test

00:03:18 #6333 [Verbose] >

00:03:18 #6334 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()

00:03:18 #6335 [Verbose] > let fileName = "test.txt"

00:03:18 #6336 [Verbose] > let path = tempFolder </> fileName

00:03:18 #6337 [Verbose] >

00:03:18 #6338 [Verbose] > async {

00:03:18 #6339 [Verbose] >     let! exitCode, result = executeAsync @$"pwsh -c ""Get-Content {path}"""

00:03:18 #6340 [Verbose] >     exitCode |> _assertEqual 1

00:03:18 #6341 [Verbose] >     result |> _stringContains "not exist"

00:03:18 #6342 [Verbose] >

00:03:18 #6343 [Verbose] >     do! "0" |> FileSystem.writeAllTextAsync path

00:03:18 #6344 [Verbose] >

00:03:18 #6345 [Verbose] >     return!

00:03:18 #6346 [Verbose] >         executeWithOptionsAsync

00:03:18 #6347 [Verbose] >             {

00:03:18 #6348 [Verbose] >                 Command = @$"pwsh -c ""Get-Content {fileName}"""

00:03:18 #6349 [Verbose] >                 CancellationToken = None

00:03:18 #6350 [Verbose] >                 OnLine = None

00:03:18 #6351 [Verbose] >                 WorkingDirectory = Some tempFolder

00:03:18 #6352 [Verbose] >             }

00:03:18 #6353 [Verbose] >

00:03:18 #6354 [Verbose] > }

00:03:18 #6355 [Verbose] > |> Async.runWithTimeout 10000

00:03:18 #6356 [Verbose] > |> function

00:03:18 #6357 [Verbose] >     | Some (exitCode, output) ->

00:03:18 #6358 [Verbose] >         exitCode |> _assertEqual 0

00:03:18 #6359 [Verbose] >         output |> _assertEqual "0"

00:03:18 #6360 [Verbose] >         true

00:03:18 #6361 [Verbose] >     | _ -> false

00:03:18 #6362 [Verbose] > |> _assertEqual true

00:03:21 #6363 [Verbose] >

00:03:21 #6364 [Verbose] > ╭─[ 2.88s - stdout ]───────────────────────────────────────────────────────────╮

00:03:21 #6365 [Verbose] > │ 00:00:00 #1 [Debug] executeAsync / options: { Command =                      │

00:03:21 #6366 [Verbose] > │    "pwsh -c "Get-Content                                                     │

00:03:21 #6367 [Verbose] > │ C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f7 │

00:03:21 #6368 [Verbose] > │ cb59ba4\test.txt""                                                           │

00:03:21 #6369 [Verbose] > │   WorkingDirectory = None                                                    │

00:03:21 #6370 [Verbose] > │   CancellationToken = None                                                   │

00:03:21 #6371 [Verbose] > │   OnLine = None }                                                            │

00:03:21 #6372 [Verbose] > │ 00:00:00 #2 [Verbose] > Get-Content: Cannot find path              │

00:03:21 #6373 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f │

00:03:21 #6374 [Verbose] > │ 7cb59ba4\test.txt' because it does not exist.                              │

00:03:21 #6375 [Verbose] > │ 00:00:00 #3 [Debug] executeAsync / exitCode: 1 / output.Length: 171          │

00:03:21 #6376 [Verbose] > │ 1                                                                            │

00:03:21 #6377 [Verbose] > │ [Get-Content: Cannot find path                                     │

00:03:21 #6378 [Verbose] > │ 'C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f │

00:03:21 #6379 [Verbose] > │ 7cb59ba4\test.txt' because it does not exist.]                             │

00:03:21 #6380 [Verbose] > │ 00:00:00 #4 [Debug] executeAsync / options: { Command = "pwsh -c             │

00:03:21 #6381 [Verbose] > │ "Get-Content test.txt""                                                      │

00:03:21 #6382 [Verbose] > │   WorkingDirectory =                                                         │

00:03:21 #6383 [Verbose] > │    Some                                                                      │

00:03:21 #6384 [Verbose] > │                                                                              │

00:03:21 #6385 [Verbose] > │ "C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-3772-7207-732f │

00:03:21 #6386 [Verbose] > │ 7cb59ba4"                                                                    │

00:03:21 #6387 [Verbose] > │   CancellationToken = None                                                   │

00:03:21 #6388 [Verbose] > │   OnLine = None }                                                            │

00:03:21 #6389 [Verbose] > │ 00:00:01 #5 [Verbose] > 0                                                    │

00:03:21 #6390 [Verbose] > │ 00:00:02 #6 [Debug] executeAsync / exitCode: 0 / output.Length: 1            │

00:03:21 #6391 [Verbose] > │ 0                                                                            │

00:03:21 #6392 [Verbose] > │ 0                                                                            │

00:03:21 #6393 [Verbose] > │ True                                                                         │

00:03:21 #6394 [Verbose] > │                                                                              │

00:03:21 #6395 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6396 [Verbose] >

00:03:21 #6397 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:21 #6398 [Verbose] > //// test

00:03:21 #6399 [Verbose] >

00:03:21 #6400 [Verbose] > let tempFolder = SpiralFileSystem.create_temp_directory ()

00:03:21 #6401 [Verbose] > let path = tempFolder </> "test.txt"

00:03:21 #6402 [Verbose] >

00:03:21 #6403 [Verbose] > let command = @$"pwsh -c ""Get-Content {path}"""

00:03:21 #6404 [Verbose] >

00:03:21 #6405 [Verbose] > async {

00:03:21 #6406 [Verbose] >     do! "0" |> FileSystem.writeAllTextAsync path

00:03:21 #6407 [Verbose] >     let cts = new System.Threading.CancellationTokenSource ()

00:03:21 #6408 [Verbose] >     trace Debug (fun () -> "1") getLocals

00:03:21 #6409 [Verbose] >     let! result =

00:03:21 #6410 [Verbose] >         executeWithOptionsAsync

00:03:21 #6411 [Verbose] >             {

00:03:21 #6412 [Verbose] >                 Command = command

00:03:21 #6413 [Verbose] >                 CancellationToken = Some cts.Token

00:03:21 #6414 [Verbose] >                 OnLine = None

00:03:21 #6415 [Verbose] >                 WorkingDirectory = None

00:03:21 #6416 [Verbose] >             }

00:03:21 #6417 [Verbose] >         |> Async.StartChild

00:03:21 #6418 [Verbose] >     trace Debug (fun () -> "2") getLocals

00:03:21 #6419 [Verbose] >     do! Async.Sleep 100

00:03:21 #6420 [Verbose] >     trace Debug (fun () -> "3") getLocals

00:03:21 #6421 [Verbose] >     cts.Cancel ()

00:03:21 #6422 [Verbose] >     trace Debug (fun () -> "4") getLocals

00:03:21 #6423 [Verbose] >     let! exitCode, output = result

00:03:21 #6424 [Verbose] >     trace Debug (fun () -> "5") getLocals

00:03:21 #6425 [Verbose] >     return exitCode, output

00:03:21 #6426 [Verbose] > }

00:03:21 #6427 [Verbose] > |> Async.runWithTimeout 10000

00:03:21 #6428 [Verbose] > |> function

00:03:21 #6429 [Verbose] >     | Some (exitCode, output) ->

00:03:21 #6430 [Verbose] >         exitCode |> _assertEqual -2147483648

00:03:21 #6431 [Verbose] >         output |> _assertEqual "System.Threading.Tasks.TaskCanceledException: A

00:03:21 #6432 [Verbose] > task was canceled."

00:03:21 #6433 [Verbose] >

00:03:21 #6434 [Verbose] >         true

00:03:21 #6435 [Verbose] >     | _ -> false

00:03:21 #6436 [Verbose] > |> _assertEqual true

00:03:22 #6437 [Verbose] >

00:03:22 #6438 [Verbose] > ╭─[ 1.04s - stdout ]───────────────────────────────────────────────────────────╮

00:03:22 #6439 [Verbose] > │ 00:00:03 #7 [Debug] 1                                                        │

00:03:22 #6440 [Verbose] > │ 00:00:03 #9 [Debug] 2                                                        │

00:03:22 #6441 [Verbose] > │ 00:00:03 #8 [Debug] executeAsync / options: { Command =                      │

00:03:22 #6442 [Verbose] > │    "pwsh -c "Get-Content                                                     │

00:03:22 #6443 [Verbose] > │ C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1248-4079-7958-769be │

00:03:22 #6444 [Verbose] > │ 14e63ff\test.txt""                                                           │

00:03:22 #6445 [Verbose] > │   WorkingDirectory = None                                                    │

00:03:22 #6446 [Verbose] > │   CancellationToken = Some System.Threading.CancellationToken                │

00:03:22 #6447 [Verbose] > │   OnLine = None }                                                            │

00:03:22 #6448 [Verbose] > │ 00:00:03 #10 [Debug] 3                                                       │

00:03:22 #6449 [Verbose] > │ 00:00:03 #11 [Debug] 4                                                       │

00:03:22 #6450 [Verbose] > │ 00:00:03 #12 [Warning] executeAsync / WaitForExitAsync / ex:                 │

00:03:22 #6451 [Verbose] > │ System.Threading.Tasks.TaskCanceledException: A task was canceled.           │

00:03:22 #6452 [Verbose] > │ 00:00:03 #13 [Debug] executeAsync / exitCode: -2147483648 / output.Length:   │

00:03:22 #6453 [Verbose] > │ 66                                                                           │

00:03:22 #6454 [Verbose] > │ 00:00:03 #14 [Debug] 5                                                       │

00:03:22 #6455 [Verbose] > │ -2147483648                                                                  │

00:03:22 #6456 [Verbose] > │ System.Threading.Tasks.TaskCanceledException: A task was canceled.           │

00:03:22 #6457 [Verbose] > │ True                                                                         │

00:03:22 #6458 [Verbose] > │                                                                              │

00:03:22 #6459 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6460 [Verbose] >

00:03:22 #6461 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:22 #6462 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:22 #6463 [Verbose] > │ ## splitArgs                                                                 │

00:03:22 #6464 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6465 [Verbose] >

00:03:22 #6466 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:22 #6467 [Verbose] > let inline splitArgs commandLine =

00:03:22 #6468 [Verbose] >     commandLine

00:03:22 #6469 [Verbose] >     |> System.CommandLine.Parsing.CommandLineStringSplitter.Instance.Split

00:03:22 #6470 [Verbose] >

00:03:22 #6471 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:22 #6472 [Verbose] > //// test

00:03:22 #6473 [Verbose] >

00:03:22 #6474 [Verbose] > """a b "c d" e"""

00:03:22 #6475 [Verbose] > |> splitArgs

00:03:22 #6476 [Verbose] > |> Seq.toArray

00:03:22 #6477 [Verbose] > |> _assertEqual [[| "a"; "b"; "c d"; "e" |]]

00:03:22 #6478 [Verbose] >

00:03:22 #6479 [Verbose] > ╭─[ 44.77ms - stdout ]─────────────────────────────────────────────────────────╮

00:03:22 #6480 [Verbose] > │ [ a, b, c d, e ]                                                             │

00:03:22 #6481 [Verbose] > │                                                                              │

00:03:22 #6482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6483 [Verbose] >

00:03:22 #6484 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:22 #6485 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:22 #6486 [Verbose] > │ ## parseArgs                                                                 │

00:03:22 #6487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6488 [Verbose] >

00:03:22 #6489 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:22 #6490 [Verbose] > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =

00:03:22 #6491 [Verbose] >     let assemblyName =

00:03:22 #6492 [Verbose] > System.Reflection.Assembly.GetEntryAssembly().GetName().Name

00:03:22 #6493 [Verbose] >     let errorHandler : Argu.IExiter =

00:03:22 #6494 [Verbose] >         if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |>

00:03:22 #6495 [Verbose] > List.contains assemblyName

00:03:22 #6496 [Verbose] >         then Argu.ExceptionExiter ()

00:03:22 #6497 [Verbose] >         else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->

00:03:22 #6498 [Verbose] > Some System.ConsoleColor.Red)

00:03:22 #6499 [Verbose] >

00:03:22 #6500 [Verbose] >     let parser =

00:03:22 #6501 [Verbose] >         Argu.ArgumentParser.Create<'T> (

00:03:22 #6502 [Verbose] >             programName = $"{assemblyName}{getExecutableSuffix ()}",

00:03:22 #6503 [Verbose] >             errorHandler = errorHandler

00:03:22 #6504 [Verbose] >         )

00:03:22 #6505 [Verbose] >

00:03:22 #6506 [Verbose] >     parser.ParseCommandLine args

00:03:22 #6507 [Verbose] >

00:03:22 #6508 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:22 #6509 [Verbose] > //// test

00:03:22 #6510 [Verbose] >

00:03:22 #6511 [Verbose] > [[<RequireQualifiedAccess>]]

00:03:22 #6512 [Verbose] > type Arguments =

00:03:22 #6513 [Verbose] >     | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;

00:03:22 #6514 [Verbose] > Argu.ArguAttributes.Last>]]

00:03:22 #6515 [Verbose] >         Paths of paths : string list

00:03:22 #6516 [Verbose] >

00:03:22 #6517 [Verbose] >     interface Argu.IArgParserTemplate with

00:03:22 #6518 [Verbose] >         member s.Usage =

00:03:22 #6519 [Verbose] >             match s with

00:03:22 #6520 [Verbose] >             | Paths _ -> nameof Paths

00:03:22 #6521 [Verbose] >

00:03:22 #6522 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:22 #6523 [Verbose] > //// test

00:03:22 #6524 [Verbose] >

00:03:22 #6525 [Verbose] > Argu.ArgumentParser.Create<Arguments>().PrintUsage ()

00:03:23 #6526 [Verbose] >

00:03:23 #6527 [Verbose] > ╭─[ 153.83ms - return value ]──────────────────────────────────────────────────╮

00:03:23 #6528 [Verbose] > │ USAGE: dotnet-repl [--help] <paths>...                                       │

00:03:23 #6529 [Verbose] > │                                                                              │

00:03:23 #6530 [Verbose] > │ PATHS:                                                                       │

00:03:23 #6531 [Verbose] > │                                                                              │

00:03:23 #6532 [Verbose] > │     <paths>...            Paths                                              │

00:03:23 #6533 [Verbose] > │                                                                              │

00:03:23 #6534 [Verbose] > │ OPTIONS:                                                                     │

00:03:23 #6535 [Verbose] > │                                                                              │

00:03:23 #6536 [Verbose] > │     --help                display this list of options.                      │

00:03:23 #6537 [Verbose] > │                                                                              │

00:03:23 #6538 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6539 [Verbose] >

00:03:23 #6540 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:23 #6541 [Verbose] > //// test

00:03:23 #6542 [Verbose] >

00:03:23 #6543 [Verbose] > fun () -> parseArgs<Arguments> [[||]] |> ignore

00:03:23 #6544 [Verbose] > |> _throwsC (fun ex _ ->

00:03:23 #6545 [Verbose] >     SpiralSm.format_exception ex

00:03:23 #6546 [Verbose] >     |> _stringContains "Argu.ArguParseException: ERROR: missing parameter

00:03:23 #6547 [Verbose] > '<paths>...'."

00:03:23 #6548 [Verbose] > )

00:03:23 #6549 [Verbose] >

00:03:23 #6550 [Verbose] > ╭─[ 114.62ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6551 [Verbose] > │ FSI_0035+it@3-216                                                            │

00:03:23 #6552 [Verbose] > │ Argu.ArguParseException: ERROR: missing parameter '<paths>...'.              │

00:03:23 #6553 [Verbose] > │ USAGE: dotnet-repl.exe [--help] <paths>...                                   │

00:03:23 #6554 [Verbose] > │                                                                              │

00:03:23 #6555 [Verbose] > │ PATHS:                                                                       │

00:03:23 #6556 [Verbose] > │                                                                              │

00:03:23 #6557 [Verbose] > │     <paths>...            Paths                                              │

00:03:23 #6558 [Verbose] > │                                                                              │

00:03:23 #6559 [Verbose] > │ OPTIONS:                                                                     │

00:03:23 #6560 [Verbose] > │                                                                              │

00:03:23 #6561 [Verbose] > │     --help                display this list of options.                      │

00:03:23 #6562 [Verbose] > │                                                                              │

00:03:23 #6563 [Verbose] > │                                                                              │

00:03:23 #6564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6565 [Verbose] >

00:03:23 #6566 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:23 #6567 [Verbose] > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =

00:03:23 #6568 [Verbose] >     args

00:03:23 #6569 [Verbose] >     |> parseArgs<'T>

00:03:23 #6570 [Verbose] >     |> fun results -> results.GetAllResults ()

00:03:23 #6571 [Verbose] >

00:03:23 #6572 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:23 #6573 [Verbose] > //// test

00:03:23 #6574 [Verbose] >

00:03:23 #6575 [Verbose] > [[<RequireQualifiedAccess>]]

00:03:23 #6576 [Verbose] > type Arguments =

00:03:23 #6577 [Verbose] >     | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce;

00:03:23 #6578 [Verbose] > Argu.ArguAttributes.Last>]]

00:03:23 #6579 [Verbose] >         Paths of paths : string list

00:03:23 #6580 [Verbose] >

00:03:23 #6581 [Verbose] >     interface Argu.IArgParserTemplate with

00:03:23 #6582 [Verbose] >         member s.Usage =

00:03:23 #6583 [Verbose] >             match s with

00:03:23 #6584 [Verbose] >             | Paths _ -> nameof Paths

00:03:23 #6585 [Verbose] >

00:03:23 #6586 [Verbose] > parseAllArgs<Arguments> [[| "a b"; "c" |]]

00:03:23 #6587 [Verbose] > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]]

00:03:23 #6588 [Verbose] >

00:03:23 #6589 [Verbose] > ╭─[ 199.13ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6590 [Verbose] > │ FSharpList<Arguments>                                                        │

00:03:23 #6591 [Verbose] > │       - paths: [ a b, c ]                                                    │

00:03:23 #6592 [Verbose] > │                                                                              │

00:03:23 #6593 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6594 [Verbose] >

00:03:23 #6595 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:23 #6596 [Verbose] > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =

00:03:23 #6597 [Verbose] >     args

00:03:23 #6598 [Verbose] >     |> parseAllArgs<'T>

00:03:23 #6599 [Verbose] >     |> List.groupBy CommonFSharp.getUnionCaseName<'T>

00:03:23 #6600 [Verbose] >     |> Map.ofList

00:03:23 #6601 [Verbose] >

00:03:23 #6602 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:23 #6603 [Verbose] > //// test

00:03:23 #6604 [Verbose] >

00:03:23 #6605 [Verbose] > parseArgsMap<Arguments> [[| "a b"; "c" |]]

00:03:23 #6606 [Verbose] > |> _assertEqual (

00:03:23 #6607 [Verbose] >     [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]]

00:03:23 #6608 [Verbose] >     |> Map.ofList

00:03:23 #6609 [Verbose] > )

00:03:23 #6610 [Verbose] >

00:03:23 #6611 [Verbose] > ╭─[ 113.49ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6612 [Verbose] > │ FSharpMap<String,FSharpList<Arguments>>                                      │

00:03:23 #6613 [Verbose] > │       - Key: Paths                                                           │

00:03:23 #6614 [Verbose] > │         Value: FSharpList<Arguments>                                         │

00:03:23 #6615 [Verbose] > │           - paths: [ a b, c ]                                                │

00:03:23 #6616 [Verbose] > │                                                                              │

00:03:23 #6617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6618 [Verbose] > [NbConvertApp] Converting notebook Runtime.dib.ipynb to html

00:03:26 #6619 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:03:26 #6620 [Verbose] >   validate(nb)

00:03:27 #6621 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:03:27 #6622 [Verbose] >   return _pygments_highlight(

00:03:27 #6623 [Verbose] > [NbConvertApp] Writing 341052 bytes to Runtime.dib.html

00:03:28 #6624 [Debug] executeAsync / exitCode: 0 / output.Length: 39318

00:03:28 #6625 [Debug] main / executeCommand / exitCode: 0

00:03:28 #6626 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Toml.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:03:32 #6627 [Verbose] >

00:03:32 #6628 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:32 #6629 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:32 #6630 [Verbose] > │ # Toml (Polyglot)                                                            │

00:03:32 #6631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #6632 [Verbose] >

00:03:32 #6633 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:32 #6634 [Verbose] > #!import ../../lib/fsharp/Notebooks.dib

00:03:32 #6635 [Verbose] > #!import ../../lib/fsharp/Testing.dib

00:03:32 #6636 [Verbose] >

00:03:32 #6637 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:32 #6638 [Verbose] > #r

00:03:32 #6639 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:03:32 #6640 [Verbose] > spNetCore.Html.Abstractions.dll"

00:03:32 #6641 [Verbose] > #r

00:03:32 #6642 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:32 #6643 [Verbose] > otNet.Interactive.dll"

00:03:32 #6644 [Verbose] > #r

00:03:32 #6645 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:32 #6646 [Verbose] > otNet.Interactive.FSharp.dll"

00:03:32 #6647 [Verbose] > #r

00:03:32 #6648 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:32 #6649 [Verbose] > otNet.Interactive.Formatting.dll"

00:03:32 #6650 [Verbose] > open System

00:03:32 #6651 [Verbose] > open System.IO

00:03:32 #6652 [Verbose] > open System.Text

00:03:32 #6653 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:03:37 #6654 [Verbose] >

00:03:37 #6655 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:37 #6656 [Verbose] > #r

00:03:37 #6657 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:37 #6658 [Verbose] > otNet.Interactive.FSharp.dll"

00:03:37 #6659 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:03:37 #6660 [Verbose] > #r

00:03:37 #6661 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:03:37 #6662 [Verbose] > otNet.Interactive.dll"

00:03:37 #6663 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:03:37 #6664 [Verbose] >

00:03:37 #6665 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:37 #6666 [Verbose] > //// test

00:03:37 #6667 [Verbose] >

00:03:37 #6668 [Verbose] > Formatter.ListExpansionLimit <- 100

00:03:38 #6669 [Verbose] >

00:03:38 #6670 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:38 #6671 [Verbose] > #r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"

00:03:38 #6672 [Verbose] >

00:03:38 #6673 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:38 #6674 [Verbose] > //// test

00:03:38 #6675 [Verbose] >

00:03:38 #6676 [Verbose] > type AssertExceptionFormatter (ex) =

00:03:38 #6677 [Verbose] >     member _.Text =

00:03:38 #6678 [Verbose] >         ex.ToString()

00:03:38 #6679 [Verbose] >             .Replace("32m", "<span style=\"color: green;\">")

00:03:38 #6680 [Verbose] >             .Replace("36m", "</span>")

00:03:38 #6681 [Verbose] >             .Replace("31m", "<span style=\"color: red;\">")

00:03:38 #6682 [Verbose] >             .Replace("\n", "<br/>\n")

00:03:38 #6683 [Verbose] >

00:03:38 #6684 [Verbose] >

00:03:38 #6685 [Verbose] > Formatter.Register<AssertExceptionFormatter> ((fun (x :

00:03:38 #6686 [Verbose] > AssertExceptionFormatter) -> x.Text), "text/html")

00:03:39 #6687 [Verbose] >

00:03:39 #6688 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:39 #6689 [Verbose] > //// test

00:03:39 #6690 [Verbose] >

00:03:39 #6691 [Verbose] > let inline __expect fn log expected actual =

00:03:39 #6692 [Verbose] >     if log then printfn $"{actual.ToDisplayString ()}"

00:03:39 #6693 [Verbose] >     try

00:03:39 #6694 [Verbose] >         "Testing.__expect" |> fn actual expected

00:03:39 #6695 [Verbose] >     with :? Expecto.AssertException as ex ->

00:03:39 #6696 [Verbose] >         AssertExceptionFormatter(ex).Display () |> ignore

00:03:39 #6697 [Verbose] >         failwith (ex.GetType().FullName)

00:03:39 #6698 [Verbose] >

00:03:39 #6699 [Verbose] > let inline __contains log expected actual = __expect Expecto.Expect.contains log

00:03:39 #6700 [Verbose] > expected actual

00:03:39 #6701 [Verbose] > let inline _contains expected actual = __contains true expected actual

00:03:39 #6702 [Verbose] >

00:03:39 #6703 [Verbose] > let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

00:03:39 #6704 [Verbose] > expected actual

00:03:39 #6705 [Verbose] > let inline _assertEqual expected actual = __assertEqual true expected actual

00:03:39 #6706 [Verbose] >

00:03:39 #6707 [Verbose] > let inline __isGreaterThan log expected actual = __expect

00:03:39 #6708 [Verbose] > Expecto.Expect.isGreaterThan log ex...

00:03:39 #6709 [Verbose] >

00:03:39 #6710 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:39 #6711 [Verbose] > //// test

00:03:39 #6712 [Verbose] >

00:03:39 #6713 [Verbose] > let inline __isBetween log a b actual =

00:03:39 #6714 [Verbose] >     let inline isBetween actual (a, b) _ =

00:03:39 #6715 [Verbose] >         __isGreaterThanOrEqual log a actual

00:03:39 #6716 [Verbose] >         __isLessThanOrEqual log b actual

00:03:39 #6717 [Verbose] >     __expect isBetween log (a, b) actual

00:03:39 #6718 [Verbose] > let inline _isBetween a b actual = __isBetween true a b actual

00:03:40 #6719 [Verbose] >

00:03:40 #6720 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:40 #6721 [Verbose] > #r @"../../../../../../../.nuget/packages/tomlyn/0.17.0/lib/net7.0/Tomlyn.dll"

00:03:40 #6722 [Verbose] >

00:03:40 #6723 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:40 #6724 [Verbose] > #!import ../../lib/spiral/common.fsx

00:03:40 #6725 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:03:40 #6726 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:03:40 #6727 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:03:40 #6728 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:03:40 #6729 [Verbose] > #!import ../../lib/fsharp/Common.fs

00:03:40 #6730 [Verbose] >

00:03:40 #6731 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:40 #6732 [Verbose] > type [[<Struct>]] US0 =

00:03:40 #6733 [Verbose] >     | US0_0

00:03:40 #6734 [Verbose] >     | US0_1

00:03:40 #6735 [Verbose] >     | US0_2

00:03:40 #6736 [Verbose] >     | US0_3

00:03:40 #6737 [Verbose] > and [[<Struct>]] US1 =

00:03:40 #6738 [Verbose] >     | US1_0 of f0_0 : US0

00:03:40 #6739 [Verbose] >     | US1_1 of f1_0 : US0

00:03:40 #6740 [Verbose] > and [[<Struct>]] US2 =

00:03:40 #6741 [Verbose] >     | US2_0

00:03:40 #6742 [Verbose] >     | US2_1

00:03:40 #6743 [Verbose] > and [[<Struct>]] US3 =

00:03:40 #6744 [Verbose] >     | US3_0 of f0_0 : US2

00:03:40 #6745 [Verbose] >     | US3_1

00:03:40 #6746 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:03:40 #6747 [Verbose] >     let v1 : System.IDisposable option = None

00:03:40 #6748 [Verbose] >     let mutable _v1 = v1

00:03:40 #6749 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:03:40 #6750 [Verbose] >     let v2 : US0 = US0_0

00:03:40 #6751 [Verbose] >     let v3 : US1 = US1_0(v2)

00:03:40 #6752 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:03:40 #6753 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:03:40 #6754 [Verbose] >     v5

00:03:40 #6755 [Verbose] >     #endif

00:03:40 #6756 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:03:40 #6757 [Verbose] >     let v6 : US0 = US0_2

00:03:40 #6758 [Verbose] >     let v7 : US1 = US1_0(v6)

00:03:40 #6759 [Verbose] >     let v8 : string = $"new_dispos...

00:03:40 #6760 [Verbose] >

00:03:40 #6761 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:40 #6762 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:03:40 #6763 [Verbose] > and Mut1 = {mutable l0 : int32}

00:03:40 #6764 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:03:40 #6765 [Verbose] >     let v2 : bool = v1.Contains v0

00:03:40 #6766 [Verbose] >     v2

00:03:40 #6767 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:03:40 #6768 [Verbose] >     closure1(v0)

00:03:40 #6769 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:03:40 #6770 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:03:40 #6771 [Verbose] >     v2

00:03:40 #6772 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:03:40 #6773 [Verbose] >     closure3(v0)

00:03:40 #6774 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:03:40 #6775 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:03:40 #6776 [Verbose] >     v3

00:03:40 #6777 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:03:40 #6778 [Verbose] >     closure6(v0, v1)

00:03:40 #6779 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:03:40 #6780 [Verbose] >     closure5(v0)

00:03:40 #6781 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:03:40 #6782 [Verbose] >     let v2 : stri...

00:03:41 #6783 [Verbose] >

00:03:41 #6784 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:41 #6785 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:03:41 #6786 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:03:41 #6787 [Verbose] >     let v3 : string = v2 v0

00:03:41 #6788 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:03:41 #6789 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:03:41 #6790 [Verbose] >     v5

00:03:41 #6791 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:03:41 #6792 [Verbose] >     closure1(v0)

00:03:41 #6793 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:03:41 #6794 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:03:41 #6795 [Verbose] >     v3

00:03:41 #6796 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:03:41 #6797 [Verbose] >     closure5(v0, v1)

00:03:41 #6798 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:03:41 #6799 [Verbose] >     closure4(v0)

00:03:41 #6800 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:03:41 #6801 [Verbose] >     closure3()

00:03:41 #6802 [Verbose] > and closure2 (...

00:03:41 #6803 [Verbose] >

00:03:41 #6804 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:41 #6805 [Verbose] > #if FABLE_COMPILER // file_system.types

00:03:41 #6806 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:03:41 #6807 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:03:41 #6808 [Verbose] > base64_DecodeError = class end

00:03:41 #6809 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:03:41 #6810 [Verbose] > = class end

00:03:41 #6811 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:03:41 #6812 [Verbose] > = class end

00:03:41 #6813 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:03:41 #6814 [Verbose] > serde_json_Error = class end

00:03:41 #6815 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:03:41 #6816 [Verbose] > serde_json_Value = class end

00:03:41 #6817 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:03:41 #6818 [Verbose] > serde_wasm_bindgen_Error = class end

00:03:41 #6819 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:03:41 #6820 [Verbose] >

00:03:41 #6821 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:41 #6822 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:03:41 #6823 [Verbose] > module SpiralDateTime =

00:03:41 #6824 [Verbose] >     let format x =

00:03:41 #6825 [Verbose] > #if !INTERACTIVE

00:03:41 #6826 [Verbose] >         Date_time.format x

00:03:41 #6827 [Verbose] > #else

00:03:41 #6828 [Verbose] >         format x

00:03:41 #6829 [Verbose] > #endif

00:03:41 #6830 [Verbose] >

00:03:41 #6831 [Verbose] >     let format_iso8601 x =

00:03:41 #6832 [Verbose] > #if !INTERACTIVE

00:03:41 #6833 [Verbose] >         Date_time.format_iso8601 x

00:03:41 #6834 [Verbose] > #else

00:03:41 #6835 [Verbose] >         format_iso8601 x

00:03:41 #6836 [Verbose] > #endif

00:03:41 #6837 [Verbose] >

00:03:41 #6838 [Verbose] >     let new_guid_from_date_time x =

00:03:41 #6839 [Verbose] > #if !INTERACTIVE

00:03:41 #6840 [Verbose] >         Date_time.new_guid_from_date_time x

00:03:41 #6841 [Verbose] > #else

00:03:41 #6842 [Verbose] >         new_guid_from_date_time x

00:03:41 #6843 [Verbose] > #endif

00:03:41 #6844 [Verbose] >

00:03:41 #6845 [Verbose] > #endif

00:03:41 #6846 [Verbose] >

00:03:41 #6847 [Verbose] > module SpiralSm =

00:03:41 #6848 [Verbose] >     let concat x =

00:03:41 #6849 [Verbose] > #if !INTERACTIVE

00:03:41 #6850 [Verbose] >         Sm.concat x

00:03:41 #6851 [Verbose] > #else

00:03:41 #6852 [Verbose] >         concat x

00:03:41 #6853 [Verbose] > #endif

00:03:41 #6854 [Verbose] >

00:03:41 #6855 [Verbose] >     let contains x =

00:03:41 #6856 [Verbose] > #if !INTERACTIVE

00:03:41 #6857 [Verbose] >         Sm.contains x

00:03:41 #6858 [Verbose] > #else

00:03:41 #6859 [Verbose] >         contains x

00:03:41 #6860 [Verbose] > #endif

00:03:41 #6861 [Verbose] >

00:03:41 #6862 [Verbose] >     let ellipsis x =

00:03:41 #6863 [Verbose] > #if !INTERACTIVE

00:03:41 #6864 [Verbose] >         Sm.ellipsis x

00:03:41 #6865 [Verbose] > #else

00:03:41 #6866 [Verbose] >         ellipsis x

00:03:41 #6867 [Verbose] > #endif

00:03:41 #6868 [Verbose] >

00:03:41 #6869 [Verbose] >     let ellipsis_end x =

00:03:41 #6870 [Verbose] > #if...

00:03:42 #6871 [Verbose] >

00:03:42 #6872 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:03:42 #6873 [Verbose] > #if !INTERACTIVE

00:03:42 #6874 [Verbose] > namespace Polyglot

00:03:42 #6875 [Verbose] > #endif

00:03:42 #6876 [Verbose] >

00:03:42 #6877 [Verbose] > module Common =

00:03:42 #6878 [Verbose] >

00:03:42 #6879 [Verbose] > #if !INTERACTIVE

00:03:42 #6880 [Verbose] >     open Lib

00:03:42 #6881 [Verbose] > #endif

00:03:42 #6882 [Verbose] >

00:03:42 #6883 [Verbose] >     let nl = System.Environment.NewLine

00:03:42 #6884 [Verbose] >     let q = @""""

00:03:42 #6885 [Verbose] >

00:03:42 #6886 [Verbose] >     let inline cons head tail = head :: tail

00:03:42 #6887 [Verbose] >

00:03:42 #6888 [Verbose] >     /// ## memoize

00:03:42 #6889 [Verbose] >

00:03:42 #6890 [Verbose] >     let inline memoize fn =

00:03:42 #6891 [Verbose] >         let result = lazy fn ()

00:03:42 #6892 [Verbose] >         fun () -> result.Value

00:03:42 #6893 [Verbose] >

00:03:42 #6894 [Verbose] >     /// ## TraceLevel

00:03:42 #6895 [Verbose] >

00:03:42 #6896 [Verbose] >     type TraceLevel =

00:03:42 #6897 [Verbose] >         | Verbose

00:03:42 #6898 [Verbose] >         | Debug

00:03:42 #6899 [Verbose] >         | Info

00:03:42 #6900 [Verbose] >         | Warning

00:03:42 #6901 [Verbose] >         | Critical

00:03:42 #6902 [Verbose] >

00:03:42 #6903 [Verbose] >     let inline getLocals () = ""

00:03:42 #6904 [Verbose] >

00:03:42 #6905 [Verbose] >     let mutable traceEnabled = true

00:03:42 #6906 [Verbose] >     let mutable traceCount = 0

00:03:42 #6907 [Verbose] >     let mutable traceLevel = Verbose

00:03:42 #6908 [Verbose] >     let mutable traceDump = false

00:03:42 #6909 [Verbose] >

00:03:42 #6910 [Verbose] >     let testTraceLevel level =

00:03:42 #6911 [Verbose] >         traceEnabled && level >= traceLevel

00:03:42 #6912 [Verbose] >

00:03:42 #6913 [Verbose] >     /// ## traceRaw

00:03:42 #6914 [Verbose] >

00:03:42 #6915 [Verbose] >     let rec traceRaw level fn =

00:03:42 #6916 [Verbose] > ...

00:03:42 #6917 [Verbose] >

00:03:42 #6918 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:42 #6919 [Verbose] > open Common

00:03:42 #6920 [Verbose] >

00:03:42 #6921 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:42 #6922 [Verbose] > let inline (/./) (table: Tomlyn.Model.TomlTable) (key: string) :

00:03:42 #6923 [Verbose] > Tomlyn.Model.TomlTable =

00:03:42 #6924 [Verbose] >     table.[[key]] :?> Tomlyn.Model.TomlTable

00:03:42 #6925 [Verbose] >

00:03:42 #6926 [Verbose] > let inline (/../) (table: Tomlyn.Model.TomlTable) (key: string) : 'T seq =

00:03:42 #6927 [Verbose] >     table.[[key]] :?> Tomlyn.Model.TomlArray |> Seq.cast<'T>

00:03:42 #6928 [Verbose] >

00:03:42 #6929 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:03:42 #6930 [Verbose] > //// test

00:03:42 #6931 [Verbose] >

00:03:42 #6932 [Verbose] > let tomlContent =

00:03:42 #6933 [Verbose] >     """

00:03:42 #6934 [Verbose] > [[extension]]

00:03:42 #6935 [Verbose] > paths = [["/a", "/b"]]

00:03:42 #6936 [Verbose] > """

00:03:42 #6937 [Verbose] >

00:03:42 #6938 [Verbose] > let toml = Tomlyn.Toml.Parse tomlContent

00:03:42 #6939 [Verbose] > let tomlModel = Tomlyn.Toml.ToModel toml

00:03:42 #6940 [Verbose] >

00:03:42 #6941 [Verbose] > let paths : string seq = tomlModel /./ "extension" /../ "paths"

00:03:42 #6942 [Verbose] >

00:03:42 #6943 [Verbose] > paths

00:03:42 #6944 [Verbose] > |> Seq.toList

00:03:42 #6945 [Verbose] > |> _assertEqual [[ "/a"; "/b" ]]

00:03:42 #6946 [Verbose] >

00:03:42 #6947 [Verbose] > ╭─[ 132.54ms - stdout ]────────────────────────────────────────────────────────╮

00:03:42 #6948 [Verbose] > │ [ /a, /b ]                                                                   │

00:03:42 #6949 [Verbose] > │                                                                              │

00:03:42 #6950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:44 #6951 [Verbose] > [NbConvertApp] Converting notebook Toml.dib.ipynb to html

00:03:44 #6952 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:03:44 #6953 [Verbose] >   validate(nb)

00:03:46 #6954 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:03:46 #6955 [Verbose] >   return _pygments_highlight(

00:03:46 #6956 [Verbose] > [NbConvertApp] Writing 278296 bytes to Toml.dib.html

00:03:47 #6957 [Debug] executeAsync / exitCode: 0 / output.Length: 10897

00:03:47 #6958 [Debug] main / executeCommand / exitCode: 0

00:03:49 #6959 [Debug] runWithTimeoutChildAsync / timeout: 2000

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: CommonFSharp.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Networking.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: FileSystem.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Common.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Threading.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Crypto.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: AsyncSeq.dib

00:00:00 #2 [Debug] writeDibCode / output: Fs / path: Async.dib

00:00:00 #4 [Debug] parseDibCode / output: Fs / file: Networking.dib

00:00:00 #4 [Debug] parseDibCode / output: Fs / file: Async.dib

00:00:00 #8 [Debug] parseDibCode / output: Fs / file: Crypto.dib

00:00:00 #7 [Debug] parseDibCode / output: Fs / file: CommonFSharp.dib

00:00:00 #5 [Debug] parseDibCode / output: Fs / file: Threading.dib

00:00:00 #6 [Debug] parseDibCode / output: Fs / file: FileSystem.dib

00:00:00 #10 [Debug] parseDibCode / output: Fs / file: Common.dib

00:00:00 #9 [Debug] parseDibCode / output: Fs / file: AsyncSeq.dib

00:00:00 #11 [Debug] writeDibCode / output: Fs / path: Toml.dib

00:00:00 #11 [Debug] writeDibCode / output: Fs / path: Runtime.dib

00:00:00 #12 [Debug] parseDibCode / output: Fs / file: Toml.dib

00:00:00 #13 [Debug] parseDibCode / output: Fs / file: Runtime.dib

In [ ]:
{ . "$ScriptDir/../lib/rust/fable/build.ps1" } | Invoke-Block

── pwsh ────────────────────────────────────────────────────────────────────────

. ../../../scripts/nbs_header.ps1

. ../../../scripts/core.ps1



── pwsh ────────────────────────────────────────────────────────────────────────

dotnet fable --optimize --lang rs --extension .rs



╭─[ 1.15s - stdout ]───────────────────────────────────────────────────────────╮

│ Fable 4.14.0: F# to Rust compiler (status: alpha)                            │

│                                                                              │

│ Thanks to the contributor! @FrankBro                                         │

│ Stand with Ukraine! https://standwithukraine.com.ua/                         │

│                                                                              │

│ Parsing fable-library-rust.fsproj...                                         │

│ Retrieving project options from cache, in case of issues run `dotnet fable   │

│ clean` or try `--noCache` option.                                            │

│ Project and references (1 source files) parsed in 212ms                      │

│                                                                              │

│ Skipped compilation because all generated files are up-to-date!              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook build.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 272480 bytes to build.dib.html

In [ ]:
{ . "$ScriptDir/../apps/plot/build.ps1" } | Invoke-Block
   Compiling plot v0.0.1 (C:\home\git\polyglot\apps\plot)

    Finished `release` profile [optimized] target(s) in 13.45s

In [ ]:
{ . "$ScriptDir/../lib/spiral/build.ps1" -sequential 1 } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\spiral

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805

00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 testing.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:04 #12 [Verbose] >

00:00:04 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:04 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:04 #15 [Verbose] > │ # testing                                                                    │

00:00:04 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:04 #17 [Verbose] >

00:00:04 #18 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:04 #19 [Verbose] > inl __expect fn log b a =

00:00:04 #20 [Verbose] >     if log then

00:00:04 #21 [Verbose] >         a |> sm'.format_debug |> console.write_line

00:00:04 #22 [Verbose] >     inl result = fn a b

00:00:04 #23 [Verbose] >     inl result =

00:00:04 #24 [Verbose] >         result || join result

00:00:04 #25 [Verbose] >     if log

00:00:04 #26 [Verbose] >     then $"$\"__expect / actual: %A{!a} / expected: %A{!b}\""

00:00:04 #27 [Verbose] >     else "__expect"

00:00:04 #28 [Verbose] >     |> assert result

00:00:04 #29 [Verbose] >

00:00:04 #30 [Verbose] > inl __assert_approx_eq log e b a = __expect (fun a b => abs (b - a) < (e |>

00:00:04 #31 [Verbose] > optionm.defaultWith 0.00000001)) log b a

00:00:04 #32 [Verbose] > inl _assert_approx_eq e b a = __assert_approx_eq true e b a

00:00:04 #33 [Verbose] >

00:00:04 #34 [Verbose] > inl __assert_eq log b a = __expect (=) log b a

00:00:04 #35 [Verbose] > inl _assert_eq b a = __assert_eq true b a

00:00:04 #36 [Verbose] >

00:00:04 #37 [Verbose] > inl __assert_eq' log b a = __expect (=.) log b a

00:00:04 #38 [Verbose] > inl _assert_eq' b a = __assert_eq' true b a

00:00:04 #39 [Verbose] >

00:00:04 #40 [Verbose] > inl __assert_ne log b a = __expect (fun a b => a = b |> fun x => join x |> not)

00:00:04 #41 [Verbose] > log b a

00:00:04 #42 [Verbose] > inl _assert_ne b a = __assert_ne true b a

00:00:04 #43 [Verbose] >

00:00:04 #44 [Verbose] > inl __assert_gt log b a = __expect (>) log b a

00:00:04 #45 [Verbose] > inl _assert_gt b a = __assert_gt true b a

00:00:04 #46 [Verbose] >

00:00:04 #47 [Verbose] > inl __assert_ge log b a = __expect (>=) log b a

00:00:04 #48 [Verbose] > inl _assert_ge b a = __assert_ge true b a

00:00:04 #49 [Verbose] >

00:00:04 #50 [Verbose] > inl __assert_lt log b a = __expect (<) log b a

00:00:04 #51 [Verbose] > inl _assert_lt b a = __assert_lt true b a

00:00:04 #52 [Verbose] >

00:00:04 #53 [Verbose] > inl __assert_le log b a = __expect (<=) log b a

00:00:04 #54 [Verbose] > inl _assert_le b a = __assert_le true b a

00:00:04 #55 [Verbose] >

00:00:04 #56 [Verbose] > inl __contains forall t. log (b : t) a =

00:00:04 #57 [Verbose] >     __expect

00:00:04 #58 [Verbose] >         (fun a b => a |> $'Seq.tryFind' ((=) b) |> optionm'.unbox |> fun (x :

00:00:04 #59 [Verbose] > option t) => x <> None)

00:00:04 #60 [Verbose] >         log b a

00:00:04 #61 [Verbose] > inl _contains b a = __contains true b a

00:00:04 #62 [Verbose] >

00:00:04 #63 [Verbose] > inl _throws (fn : () -> ()) : option exn =

00:00:04 #64 [Verbose] >     inl none = None : option exn

00:00:04 #65 [Verbose] >     inl some (s : exn) = Some s

00:00:04 #66 [Verbose] >     $"try !fn (); !none with ex -> ex |> !some"

00:00:08 #67 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-3971-7137-71afeee86e42\main.spi

00:00:13 #68 [Verbose] >

00:00:13 #69 [Verbose] > ╭─[ 8.64s - stdout ]───────────────────────────────────────────────────────────╮

00:00:13 #70 [Verbose] > │ ()                                                                           │

00:00:13 #71 [Verbose] > │                                                                              │

00:00:13 #72 [Verbose] > │                                                                              │

00:00:13 #73 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:13 #74 [Verbose] >

00:00:13 #75 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:13 #76 [Verbose] > // // test

00:00:13 #77 [Verbose] >

00:00:13 #78 [Verbose] > 1f64

00:00:13 #79 [Verbose] > |> _assert_approx_eq (Some 3) 2

00:00:13 #80 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4552-5222-5426628c83e4\main.spi

00:00:14 #81 [Verbose] >

00:00:14 #82 [Verbose] > ╭─[ 1.33s - stdout ]───────────────────────────────────────────────────────────╮

00:00:14 #83 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:14 #84 [Verbose] > │     let v0 : string = $"%A{1.0}"                                             │

00:00:14 #85 [Verbose] > │     System.Console.WriteLine v0                                              │

00:00:14 #86 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1.0} / expected: %A{2.0}"      │

00:00:14 #87 [Verbose] > │     ()                                                                       │

00:00:14 #88 [Verbose] > │ method0()                                                                    │

00:00:14 #89 [Verbose] > │                                                                              │

00:00:14 #90 [Verbose] > │ 1.0                                                                          │

00:00:14 #91 [Verbose] > │                                                                              │

00:00:14 #92 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:14 #93 [Verbose] >

00:00:14 #94 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:14 #95 [Verbose] > // // test

00:00:14 #96 [Verbose] >

00:00:14 #97 [Verbose] > "abcd"

00:00:14 #98 [Verbose] > |> _contains 'b'

00:00:14 #99 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4685-8536-817e3d77b1fd\main.spi

00:00:15 #100 [Verbose] >

00:00:15 #101 [Verbose] > ╭─[ 1.18s - stdout ]───────────────────────────────────────────────────────────╮

00:00:15 #102 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:00:15 #103 [Verbose] > │     | US0_0 of f0_0 : char                                                   │

00:00:15 #104 [Verbose] > │     | US0_1                                                                  │

00:00:15 #105 [Verbose] > │ let rec closure0 () (v0 : char) : bool =                                     │

00:00:15 #106 [Verbose] > │     let v1 : bool = 'b' = v0                                                 │

00:00:15 #107 [Verbose] > │     v1                                                                       │

00:00:15 #108 [Verbose] > │ and closure1 () (v0 : char) : US0 =                                          │

00:00:15 #109 [Verbose] > │     US0_0(v0)                                                                │

00:00:15 #110 [Verbose] > │ and method1 () : (char -> US0) =                                             │

00:00:15 #111 [Verbose] > │     closure1()                                                               │

00:00:15 #112 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:00:15 #113 [Verbose] > │     v0                                                                       │

00:00:15 #114 [Verbose] > │ and method0 () : unit =                                                      │

00:00:15 #115 [Verbose] > │     let v0 : string = "abcd"                                                 │

00:00:15 #116 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:00:15 #117 [Verbose] > │     System.Console.WriteLine v1                                              │

00:00:15 #118 [Verbose] > │     let v2 : ((char -> bool) -> (string -> char option)) = Seq.tryFind       │

00:00:15 #119 [Verbose] > │     let v3 : (char -> bool) = closure0()                                     │

00:00:15 #120 [Verbose] > │     let v4 : (string -> char option) = v2 v3                                 │

00:00:15 #121 [Verbose] > │     let v5 : char option = v4 v0                                             │

00:00:15 #122 [Verbose] > │     let v6 : (char -> US0) = method1()                                       │

00:00:15 #123 [Verbose] > │     let v7 : US0 = US0_1                                                     │

00:00:15 #124 [Verbose] > │     let v8 : US0 = v5 |> Option.map v6 |> Option.defaultValue v7             │

00:00:15 #125 [Verbose] > │     let v10 : bool =                                                         │

00:00:15 #126 [Verbose] > │         match v8 with                                                        │

00:00:15 #127 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:00:15 #128 [Verbose] > │             true                                                             │

00:00:15 #129 [Verbose] > │         | _ ->                                                               │

00:00:15 #130 [Verbose] > │             false                                                            │

00:00:15 #131 [Verbose] > │     let v11 : bool = v10 <> true                                             │

00:00:15 #132 [Verbose] > │     let v13 : bool =                                                         │

00:00:15 #133 [Verbose] > │         if v11 then                                                          │

00:00:15 #134 [Verbose] > │             true                                                             │

00:00:15 #135 [Verbose] > │         else                                                                 │

00:00:15 #136 [Verbose] > │             method2(v11)                                                     │

00:00:15 #137 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v0} / expected: %A{'b'}"      │

00:00:15 #138 [Verbose] > │     let v15 : bool = v13 = false                                             │

00:00:15 #139 [Verbose] > │     if v15 then                                                              │

00:00:15 #140 [Verbose] > │         failwith<unit> v14                                                   │

00:00:15 #141 [Verbose] > │ method0()                                                                    │

00:00:15 #142 [Verbose] > │                                                                              │

00:00:15 #143 [Verbose] > │ "abcd"                                                                       │

00:00:15 #144 [Verbose] > │                                                                              │

00:00:15 #145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:15 #146 [Verbose] >

00:00:15 #147 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:15 #148 [Verbose] > // // test

00:00:15 #149 [Verbose] >

00:00:15 #150 [Verbose] > (dyn 1f64)

00:00:15 #151 [Verbose] > |> _assert_approx_eq (Some 3) 2

00:00:15 #152 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4806-0644-06d668a7d6a3\main.spi

00:00:16 #153 [Verbose] >

00:00:16 #154 [Verbose] > ╭─[ 406.32ms - stdout ]────────────────────────────────────────────────────────╮

00:00:16 #155 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:00:16 #156 [Verbose] > │     v0                                                                       │

00:00:16 #157 [Verbose] > │ and method0 () : unit =                                                      │

00:00:16 #158 [Verbose] > │     let v0 : float = 1.0                                                     │

00:00:16 #159 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:00:16 #160 [Verbose] > │     System.Console.WriteLine v1                                              │

00:00:16 #161 [Verbose] > │     let v2 : float = 2.0 - v0                                                │

00:00:16 #162 [Verbose] > │     let v3 : float =  -v2                                                    │

00:00:16 #163 [Verbose] > │     let v4 : bool = v2 >= v3                                                 │

00:00:16 #164 [Verbose] > │     let v5 : float =                                                         │

00:00:16 #165 [Verbose] > │         if v4 then                                                           │

00:00:16 #166 [Verbose] > │             v2                                                               │

00:00:16 #167 [Verbose] > │         else                                                                 │

00:00:16 #168 [Verbose] > │             v3                                                               │

00:00:16 #169 [Verbose] > │     let v6 : bool = v5 < 3.0                                                 │

00:00:16 #170 [Verbose] > │     let v8 : bool =                                                          │

00:00:16 #171 [Verbose] > │         if v6 then                                                           │

00:00:16 #172 [Verbose] > │             true                                                             │

00:00:16 #173 [Verbose] > │         else                                                                 │

00:00:16 #174 [Verbose] > │             method1(v6)                                                      │

00:00:16 #175 [Verbose] > │     let v9 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}"       │

00:00:16 #176 [Verbose] > │     let v10 : bool = v8 = false                                              │

00:00:16 #177 [Verbose] > │     if v10 then                                                              │

00:00:16 #178 [Verbose] > │         failwith<unit> v9                                                    │

00:00:16 #179 [Verbose] > │ method0()                                                                    │

00:00:16 #180 [Verbose] > │                                                                              │

00:00:16 #181 [Verbose] > │ 1.0                                                                          │

00:00:16 #182 [Verbose] > │                                                                              │

00:00:16 #183 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:16 #184 [Verbose] >

00:00:16 #185 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:16 #186 [Verbose] > inl print_and_return x =

00:00:16 #187 [Verbose] >     $"printfn $\"print_and_return / x: {!x}\""

00:00:16 #188 [Verbose] >     x

00:00:16 #189 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-4848-4813-4912ac8d7ade\main.spi

00:00:16 #190 [Verbose] >

00:00:16 #191 [Verbose] > ╭─[ 235.20ms - stdout ]────────────────────────────────────────────────────────╮

00:00:16 #192 [Verbose] > │ ()                                                                           │

00:00:16 #193 [Verbose] > │                                                                              │

00:00:16 #194 [Verbose] > │                                                                              │

00:00:16 #195 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #196 [Verbose] > [NbConvertApp] Converting notebook testing.dib.ipynb to html

00:00:18 #197 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:18 #198 [Verbose] >   validate(nb)

00:00:19 #199 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:19 #200 [Verbose] >   return _pygments_highlight(

00:00:19 #201 [Verbose] > [NbConvertApp] Writing 287068 bytes to testing.dib.html

00:00:20 #202 [Debug] executeAsync / exitCode: 0 / output.Length: 10984

00:00:20 #203 [Debug] main / executeCommand / exitCode: 0

00:00:20 #204 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 guid.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:23 #205 [Verbose] >

00:00:23 #206 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:23 #207 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:23 #208 [Verbose] > │ # guid                                                                       │

00:00:23 #209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:23 #210 [Verbose] >

00:00:23 #211 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:23 #212 [Verbose] > // // test

00:00:23 #213 [Verbose] >

00:00:23 #214 [Verbose] > open testing

00:00:27 #215 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1249-5881-8170-875617084364\main.spi

00:00:28 #216 [Verbose] >

00:00:28 #217 [Verbose] > ╭─[ 4.61s - stdout ]───────────────────────────────────────────────────────────╮

00:00:28 #218 [Verbose] > │ ()                                                                           │

00:00:28 #219 [Verbose] > │                                                                              │

00:00:28 #220 [Verbose] > │                                                                              │

00:00:28 #221 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #222 [Verbose] >

00:00:28 #223 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:28 #224 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:28 #225 [Verbose] > │ ## guid                                                                      │

00:00:28 #226 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #227 [Verbose] >

00:00:28 #228 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:28 #229 [Verbose] > nominal guid = $"System.Guid"

00:00:28 #230 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0068-6869-6c7d98316de4\main.spi

00:00:28 #231 [Verbose] >

00:00:28 #232 [Verbose] > ╭─[ 227.62ms - stdout ]────────────────────────────────────────────────────────╮

00:00:28 #233 [Verbose] > │ ()                                                                           │

00:00:28 #234 [Verbose] > │                                                                              │

00:00:28 #235 [Verbose] > │                                                                              │

00:00:28 #236 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #237 [Verbose] >

00:00:28 #238 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:28 #239 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:28 #240 [Verbose] > │ ## new_guid                                                                  │

00:00:28 #241 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #242 [Verbose] >

00:00:28 #243 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:28 #244 [Verbose] > inl new_guid (x : string) : guid =

00:00:28 #245 [Verbose] >     $'`guid !x '

00:00:28 #246 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0092-9232-93d9554f1ea4\main.spi

00:00:28 #247 [Verbose] >

00:00:28 #248 [Verbose] > ╭─[ 202.75ms - stdout ]────────────────────────────────────────────────────────╮

00:00:28 #249 [Verbose] > │ ()                                                                           │

00:00:28 #250 [Verbose] > │                                                                              │

00:00:28 #251 [Verbose] > │                                                                              │

00:00:28 #252 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #253 [Verbose] >

00:00:28 #254 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:28 #255 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:28 #256 [Verbose] > │ ## new_raw_guid                                                              │

00:00:28 #257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #258 [Verbose] >

00:00:28 #259 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:28 #260 [Verbose] > inl new_raw_guid () : guid =

00:00:28 #261 [Verbose] >     $"System.Guid.NewGuid ()"

00:00:28 #262 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0112-1250-1e63281579e0\main.spi

00:00:29 #263 [Verbose] >

00:00:29 #264 [Verbose] > ╭─[ 233.37ms - stdout ]────────────────────────────────────────────────────────╮

00:00:29 #265 [Verbose] > │ ()                                                                           │

00:00:29 #266 [Verbose] > │                                                                              │

00:00:29 #267 [Verbose] > │                                                                              │

00:00:29 #268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:29 #269 [Verbose] >

00:00:29 #270 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:29 #271 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:29 #272 [Verbose] > │ ## main                                                                      │

00:00:29 #273 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:29 #274 [Verbose] >

00:00:29 #275 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:29 #276 [Verbose] > inl main () =

00:00:29 #277 [Verbose] >     $"let new_guid x = !new_guid x" : ()

00:00:29 #278 [Verbose] >     $"let new_raw_guid x = !new_raw_guid x" : ()

00:00:29 #279 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-0136-3657-38c52541db1f\main.spi

00:00:29 #280 [Verbose] >

00:00:29 #281 [Verbose] > ╭─[ 906.20ms - stdout ]────────────────────────────────────────────────────────╮

00:00:29 #282 [Verbose] > │ let rec closure0 () (v0 : string) : System.Guid =                            │

00:00:29 #283 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:00:29 #284 [Verbose] > │     v1                                                                       │

00:00:30 #285 [Verbose] > │ and closure1 () () : System.Guid =                                           │

00:00:30 #286 [Verbose] > │     let v0 : System.Guid = System.Guid.NewGuid ()                            │

00:00:30 #287 [Verbose] > │     v0                                                                       │

00:00:30 #288 [Verbose] > │ let v0 : (string -> System.Guid) = closure0()                                │

00:00:30 #289 [Verbose] > │ let new_guid x = v0 x                                                        │

00:00:30 #290 [Verbose] > │ let v1 : (unit -> System.Guid) = closure1()                                  │

00:00:30 #291 [Verbose] > │ let new_raw_guid x = v1 x                                                    │

00:00:30 #292 [Verbose] > │ ()                                                                           │

00:00:30 #293 [Verbose] > │                                                                              │

00:00:30 #294 [Verbose] > │                                                                              │

00:00:30 #295 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:32 #296 [Verbose] > [NbConvertApp] Converting notebook guid.dib.ipynb to html

00:00:32 #297 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:32 #298 [Verbose] >   validate(nb)

00:00:32 #299 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:32 #300 [Verbose] >   return _pygments_highlight(

00:00:32 #301 [Verbose] > [NbConvertApp] Writing 278591 bytes to guid.dib.html

00:00:33 #302 [Debug] executeAsync / exitCode: 0 / output.Length: 5882

00:00:33 #303 [Debug] main / executeCommand / exitCode: 0

00:00:33 #304 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 common.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:36 #305 [Verbose] >

00:00:36 #306 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:36 #307 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:36 #308 [Verbose] > │ # common                                                                     │

00:00:36 #309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:36 #310 [Verbose] >

00:00:36 #311 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:36 #312 [Verbose] > inl array x = x

00:00:40 #313 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1240-4071-46f67bba23e4\main.spi

00:00:42 #314 [Verbose] >

00:00:42 #315 [Verbose] > ╭─[ 5.22s - stdout ]───────────────────────────────────────────────────────────╮

00:00:42 #316 [Verbose] > │ ()                                                                           │

00:00:42 #317 [Verbose] > │                                                                              │

00:00:42 #318 [Verbose] > │                                                                              │

00:00:42 #319 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #320 [Verbose] >

00:00:42 #321 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:42 #322 [Verbose] > // // test

00:00:42 #323 [Verbose] >

00:00:42 #324 [Verbose] > open testing

00:00:42 #325 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1439-3999-32ef3abf9443\main.spi

00:00:42 #326 [Verbose] >

00:00:42 #327 [Verbose] > ╭─[ 236.90ms - stdout ]────────────────────────────────────────────────────────╮

00:00:42 #328 [Verbose] > │ ()                                                                           │

00:00:42 #329 [Verbose] > │                                                                              │

00:00:42 #330 [Verbose] > │                                                                              │

00:00:42 #331 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #332 [Verbose] >

00:00:42 #333 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:42 #334 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:42 #335 [Verbose] > │ ## prototype                                                                 │

00:00:42 #336 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #337 [Verbose] >

00:00:42 #338 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:42 #339 [Verbose] > prototype (~:>) r : forall t. t -> r

00:00:42 #340 [Verbose] > prototype append t : t -> t -> t

00:00:42 #341 [Verbose] > prototype of_string t : string -> t

00:00:42 #342 [Verbose] > prototype to_string t : t -> string

00:00:42 #343 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1464-6438-605354979d6b\main.spi

00:00:42 #344 [Verbose] >

00:00:42 #345 [Verbose] > ╭─[ 254.57ms - stdout ]────────────────────────────────────────────────────────╮

00:00:42 #346 [Verbose] > │ ()                                                                           │

00:00:42 #347 [Verbose] > │                                                                              │

00:00:42 #348 [Verbose] > │                                                                              │

00:00:42 #349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #350 [Verbose] >

00:00:42 #351 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:42 #352 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:42 #353 [Verbose] > │ ## null                                                                      │

00:00:42 #354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #355 [Verbose] >

00:00:42 #356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:42 #357 [Verbose] > inl null forall t. () : t =

00:00:42 #358 [Verbose] >     $"null |> unbox<`t>"

00:00:42 #359 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1490-9020-9fead2f1fe27\main.spi

00:00:42 #360 [Verbose] >

00:00:42 #361 [Verbose] > ╭─[ 250.94ms - stdout ]────────────────────────────────────────────────────────╮

00:00:42 #362 [Verbose] > │ ()                                                                           │

00:00:42 #363 [Verbose] > │                                                                              │

00:00:42 #364 [Verbose] > │                                                                              │

00:00:42 #365 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #366 [Verbose] >

00:00:42 #367 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:42 #368 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:42 #369 [Verbose] > │ ## unativeint                                                                │

00:00:42 #370 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:42 #371 [Verbose] >

00:00:42 #372 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:42 #373 [Verbose] > nominal unativeint = $"unativeint"

00:00:42 #374 [Verbose] >

00:00:42 #375 [Verbose] > inl unativeint forall t {int}. (n : t) : unativeint =

00:00:42 #376 [Verbose] >     $"unativeint !n"

00:00:43 #377 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1515-1581-1498bfe3beb3\main.spi

00:00:43 #378 [Verbose] >

00:00:43 #379 [Verbose] > ╭─[ 267.45ms - stdout ]────────────────────────────────────────────────────────╮

00:00:43 #380 [Verbose] > │ ()                                                                           │

00:00:43 #381 [Verbose] > │                                                                              │

00:00:43 #382 [Verbose] > │                                                                              │

00:00:43 #383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #384 [Verbose] >

00:00:43 #385 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:43 #386 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:43 #387 [Verbose] > │ ## i32                                                                       │

00:00:43 #388 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #389 [Verbose] >

00:00:43 #390 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:43 #391 [Verbose] > inl i32 forall t. (x : t) : i32 =

00:00:43 #392 [Verbose] >     $"int32 !x"

00:00:43 #393 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1543-4343-43bad9843c4e\main.spi

00:00:43 #394 [Verbose] >

00:00:43 #395 [Verbose] > ╭─[ 239.21ms - stdout ]────────────────────────────────────────────────────────╮

00:00:43 #396 [Verbose] > │ ()                                                                           │

00:00:43 #397 [Verbose] > │                                                                              │

00:00:43 #398 [Verbose] > │                                                                              │

00:00:43 #399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #400 [Verbose] >

00:00:43 #401 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:43 #402 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:43 #403 [Verbose] > │ ## i64                                                                       │

00:00:43 #404 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #405 [Verbose] >

00:00:43 #406 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:43 #407 [Verbose] > inl i64 forall t. (x : t) : i64 =

00:00:43 #408 [Verbose] >     $"int64 !x"

00:00:43 #409 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1568-6816-6e6930614ab9\main.spi

00:00:43 #410 [Verbose] >

00:00:43 #411 [Verbose] > ╭─[ 240.69ms - stdout ]────────────────────────────────────────────────────────╮

00:00:43 #412 [Verbose] > │ ()                                                                           │

00:00:43 #413 [Verbose] > │                                                                              │

00:00:43 #414 [Verbose] > │                                                                              │

00:00:43 #415 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #416 [Verbose] >

00:00:43 #417 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:43 #418 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:43 #419 [Verbose] > │ ## f32                                                                       │

00:00:43 #420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #421 [Verbose] >

00:00:43 #422 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:43 #423 [Verbose] > inl f32 forall t. (x : t) : f32 =

00:00:43 #424 [Verbose] >     $"float32 !x"

00:00:43 #425 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1592-9259-95269d23d7b8\main.spi

00:00:43 #426 [Verbose] >

00:00:43 #427 [Verbose] > ╭─[ 240.83ms - stdout ]────────────────────────────────────────────────────────╮

00:00:43 #428 [Verbose] > │ ()                                                                           │

00:00:43 #429 [Verbose] > │                                                                              │

00:00:43 #430 [Verbose] > │                                                                              │

00:00:43 #431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #432 [Verbose] >

00:00:43 #433 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:43 #434 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:43 #435 [Verbose] > │ ## f64                                                                       │

00:00:43 #436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:43 #437 [Verbose] >

00:00:43 #438 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:43 #439 [Verbose] > inl f64 forall t. (x : t) : f64 =

00:00:43 #440 [Verbose] >     $"float !x"

00:00:44 #441 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1617-1703-1154a6ec7c31\main.spi

00:00:44 #442 [Verbose] >

00:00:44 #443 [Verbose] > ╭─[ 280.16ms - stdout ]────────────────────────────────────────────────────────╮

00:00:44 #444 [Verbose] > │ ()                                                                           │

00:00:44 #445 [Verbose] > │                                                                              │

00:00:44 #446 [Verbose] > │                                                                              │

00:00:44 #447 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:44 #448 [Verbose] >

00:00:44 #449 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:44 #450 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:44 #451 [Verbose] > │ ## pair                                                                      │

00:00:44 #452 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:44 #453 [Verbose] >

00:00:44 #454 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:44 #455 [Verbose] > type pair a b = $"(`a * `b)"

00:00:44 #456 [Verbose] >

00:00:44 #457 [Verbose] > inl pair x y =

00:00:44 #458 [Verbose] >     x, y

00:00:44 #459 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1645-4575-42aeebfa57af\main.spi

00:00:44 #460 [Verbose] >

00:00:44 #461 [Verbose] > ╭─[ 280.66ms - stdout ]────────────────────────────────────────────────────────╮

00:00:44 #462 [Verbose] > │ ()                                                                           │

00:00:44 #463 [Verbose] > │                                                                              │

00:00:44 #464 [Verbose] > │                                                                              │

00:00:44 #465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:44 #466 [Verbose] >

00:00:44 #467 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:44 #468 [Verbose] > // // test

00:00:44 #469 [Verbose] >

00:00:44 #470 [Verbose] > pair 1i32 2i32

00:00:44 #471 [Verbose] > |> _assert_eq (1, 2)

00:00:44 #472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1674-7424-7c3849ca654f\main.spi

00:00:45 #473 [Verbose] >

00:00:45 #474 [Verbose] > ╭─[ 1.23s - stdout ]───────────────────────────────────────────────────────────╮

00:00:45 #475 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:45 #476 [Verbose] > │     let v0 : string = $"%A{struct (1, 2)}"                                   │

00:00:45 #477 [Verbose] > │     System.Console.WriteLine v0                                              │

00:00:45 #478 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (1, 2)} / expected:     │

00:00:45 #479 [Verbose] > │ %A{struct (1, 2)}"                                                           │

00:00:45 #480 [Verbose] > │     ()                                                                       │

00:00:45 #481 [Verbose] > │ method0()                                                                    │

00:00:45 #482 [Verbose] > │                                                                              │

00:00:45 #483 [Verbose] > │ struct (1, 2)                                                                │

00:00:45 #484 [Verbose] > │                                                                              │

00:00:45 #485 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:45 #486 [Verbose] >

00:00:45 #487 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:45 #488 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:45 #489 [Verbose] > │ ## new_pair                                                                  │

00:00:45 #490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:45 #491 [Verbose] >

00:00:45 #492 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:45 #493 [Verbose] > inl new_pair forall a b. (a : a) (b : b) : pair a b =

00:00:45 #494 [Verbose] >     $"!a, !b"

00:00:45 #495 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1797-9796-96855bab909b\main.spi

00:00:45 #496 [Verbose] >

00:00:45 #497 [Verbose] > ╭─[ 209.60ms - stdout ]────────────────────────────────────────────────────────╮

00:00:45 #498 [Verbose] > │ ()                                                                           │

00:00:45 #499 [Verbose] > │                                                                              │

00:00:45 #500 [Verbose] > │                                                                              │

00:00:45 #501 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:45 #502 [Verbose] >

00:00:45 #503 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:45 #504 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:45 #505 [Verbose] > │ ## from_pair                                                                 │

00:00:45 #506 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:45 #507 [Verbose] >

00:00:45 #508 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:45 #509 [Verbose] > inl from_pair forall a b. (pair : pair a b) : a * b =

00:00:45 #510 [Verbose] >     $"let (a, b) = !pair"

00:00:45 #511 [Verbose] >     $"a", $"b"

00:00:46 #512 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1819-1946-1a4b5027d98c\main.spi

00:00:46 #513 [Verbose] >

00:00:46 #514 [Verbose] > ╭─[ 193.95ms - stdout ]────────────────────────────────────────────────────────╮

00:00:46 #515 [Verbose] > │ ()                                                                           │

00:00:46 #516 [Verbose] > │                                                                              │

00:00:46 #517 [Verbose] > │                                                                              │

00:00:46 #518 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:46 #519 [Verbose] >

00:00:46 #520 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:46 #521 [Verbose] > // // test

00:00:46 #522 [Verbose] >

00:00:46 #523 [Verbose] > new_pair "a" 1i32

00:00:46 #524 [Verbose] > |> from_pair

00:00:46 #525 [Verbose] > |> _assert_eq ("a", 1i32)

00:00:46 #526 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1839-3901-3aac7425a757\main.spi

00:00:46 #527 [Verbose] >

00:00:46 #528 [Verbose] > ╭─[ 386.26ms - stdout ]────────────────────────────────────────────────────────╮

00:00:46 #529 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:00:46 #530 [Verbose] > │     v0                                                                       │

00:00:46 #531 [Verbose] > │ and method0 () : unit =                                                      │

00:00:46 #532 [Verbose] > │     let v0 : string = "a"                                                    │

00:00:46 #533 [Verbose] > │     let v1 : (string * int32) = v0, 1                                        │

00:00:46 #534 [Verbose] > │     let (a, b) = v1                                                          │

00:00:46 #535 [Verbose] > │     let v2 : string = a                                                      │

00:00:46 #536 [Verbose] > │     let v3 : int32 = b                                                       │

00:00:46 #537 [Verbose] > │     let v4 : string = $"%A{struct (v2, v3)}"                                 │

00:00:46 #538 [Verbose] > │     System.Console.WriteLine v4                                              │

00:00:46 #539 [Verbose] > │     let v5 : bool = v2 = "a"                                                 │

00:00:46 #540 [Verbose] > │     let v7 : bool =                                                          │

00:00:46 #541 [Verbose] > │         if v5 then                                                           │

00:00:46 #542 [Verbose] > │             let v6 : bool = v3 = 1                                           │

00:00:46 #543 [Verbose] > │             v6                                                               │

00:00:46 #544 [Verbose] > │         else                                                                 │

00:00:46 #545 [Verbose] > │             false                                                            │

00:00:46 #546 [Verbose] > │     let v9 : bool =                                                          │

00:00:46 #547 [Verbose] > │         if v7 then                                                           │

00:00:46 #548 [Verbose] > │             true                                                             │

00:00:46 #549 [Verbose] > │         else                                                                 │

00:00:46 #550 [Verbose] > │             method1(v7)                                                      │

00:00:46 #551 [Verbose] > │     let v10 : string = $"__expect / actual: %A{struct (v2, v3)} / expected:  │

00:00:46 #552 [Verbose] > │ %A{struct (v0, 1)}"                                                          │

00:00:46 #553 [Verbose] > │     let v11 : bool = v9 = false                                              │

00:00:46 #554 [Verbose] > │     if v11 then                                                              │

00:00:46 #555 [Verbose] > │         failwith<unit> v10                                                   │

00:00:46 #556 [Verbose] > │ method0()                                                                    │

00:00:46 #557 [Verbose] > │                                                                              │

00:00:46 #558 [Verbose] > │ struct ("a", 1)                                                              │

00:00:46 #559 [Verbose] > │                                                                              │

00:00:46 #560 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:46 #561 [Verbose] >

00:00:46 #562 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:46 #563 [Verbose] > // // test

00:00:46 #564 [Verbose] >

00:00:46 #565 [Verbose] > new_pair "a" (new_pair 1i32 "b")

00:00:46 #566 [Verbose] > |> from_pair

00:00:46 #567 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1879-7915-7cfdb30554c2\main.spi

00:00:46 #568 [Verbose] >

00:00:46 #569 [Verbose] > ╭─[ 341.95ms - return value ]──────────────────────────────────────────────────╮

00:00:46 #570 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span                     │

00:00:46 #571 [Verbose] > │ class="dni-code-hint"><code>(a, (1,                                          │

00:00:46 #572 [Verbose] > │ b))</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><t │

00:00:46 #573 [Verbose] > │ d>Item1</td><td><div                                                         │

00:00:46 #574 [Verbose] > │ class="dni-plaintext"><pre>a</pre></div></td></tr><tr><td>Item2</td><td><det │

00:00:46 #575 [Verbose] > │ ails class="dni-treeview"><summary><span class="dni-code-hint"><code>(1,     │

00:00:46 #576 [Verbose] > │ b)</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td │

00:00:46 #577 [Verbose] > │ >Item1</td><td><div                                                          │

00:00:46 #578 [Verbose] > │ class="dni-plaintext"><pre>1</pre></div></td></tr><tr><td>Item2</td><td><div │

00:00:46 #579 [Verbose] > │ class="dni-plaintext"><pre>b</pre></div></td></tr></tbody></table></div></de │

00:00:46 #580 [Verbose] > │ tails></td></tr></tbody></table></div></details><style>                      │

00:00:46 #581 [Verbose] > │ .dni-code-hint {                                                             │

00:00:46 #582 [Verbose] > │     font-style: italic;                                                      │

00:00:46 #583 [Verbose] > │     overflow: hidden;                                                        │

00:00:46 #584 [Verbose] > │     white-space: nowrap;                                                     │

00:00:46 #585 [Verbose] > │ }                                                                            │

00:00:46 #586 [Verbose] > │ .dni-treev...                                                                │

00:00:46 #587 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:46 #588 [Verbose] >

00:00:46 #589 [Verbose] > ╭─[ 361.91ms - stdout ]────────────────────────────────────────────────────────╮

00:00:46 #590 [Verbose] > │ let rec method0 () : struct (string * (int32 * string)) =                    │

00:00:46 #591 [Verbose] > │     let v0 : string = "b"                                                    │

00:00:46 #592 [Verbose] > │     let v1 : (int32 * string) = 1, v0                                        │

00:00:46 #593 [Verbose] > │     let v2 : string = "a"                                                    │

00:00:46 #594 [Verbose] > │     let v3 : (string * (int32 * string)) = v2, v1                            │

00:00:46 #595 [Verbose] > │     let (a, b) = v3                                                          │

00:00:46 #596 [Verbose] > │     let v4 : string = a                                                      │

00:00:46 #597 [Verbose] > │     let v5 : (int32 * string) = b                                            │

00:00:46 #598 [Verbose] > │     struct (v4, v5)                                                          │

00:00:46 #599 [Verbose] > │ method0()                                                                    │

00:00:46 #600 [Verbose] > │                                                                              │

00:00:46 #601 [Verbose] > │                                                                              │

00:00:46 #602 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:46 #603 [Verbose] >

00:00:46 #604 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:46 #605 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:46 #606 [Verbose] > │ ## memoize                                                                   │

00:00:46 #607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:46 #608 [Verbose] >

00:00:46 #609 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:46 #610 [Verbose] > nominal lazy t = $'Lazy<`t>'

00:00:46 #611 [Verbose] >

00:00:46 #612 [Verbose] > inl memoize forall t. (fn : () -> t) : () -> t =

00:00:46 #613 [Verbose] >     inl result : lazy t = $'lazy !fn ()'

00:00:46 #614 [Verbose] >     fun () => $'!result.Value'

00:00:47 #615 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1916-1616-1c34f483dbad\main.spi

00:00:47 #616 [Verbose] >

00:00:47 #617 [Verbose] > ╭─[ 228.12ms - stdout ]────────────────────────────────────────────────────────╮

00:00:47 #618 [Verbose] > │ ()                                                                           │

00:00:47 #619 [Verbose] > │                                                                              │

00:00:47 #620 [Verbose] > │                                                                              │

00:00:47 #621 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:47 #622 [Verbose] >

00:00:47 #623 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:47 #624 [Verbose] > // // test

00:00:47 #625 [Verbose] >

00:00:47 #626 [Verbose] > inl count = mut 0i32

00:00:47 #627 [Verbose] > inl add =

00:00:47 #628 [Verbose] >     fun () => count <- *count + 1

00:00:47 #629 [Verbose] >     |> memoize

00:00:47 #630 [Verbose] >

00:00:47 #631 [Verbose] > add ()

00:00:47 #632 [Verbose] > add ()

00:00:47 #633 [Verbose] > add ()

00:00:47 #634 [Verbose] >

00:00:47 #635 [Verbose] > *count

00:00:47 #636 [Verbose] > |> _assert_eq 1

00:00:47 #637 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-1939-3964-3028e96f035c\main.spi

00:00:47 #638 [Verbose] >

00:00:47 #639 [Verbose] > ╭─[ 703.74ms - stdout ]────────────────────────────────────────────────────────╮

00:00:47 #640 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:00:47 #641 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │

00:00:47 #642 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:00:47 #643 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │

00:00:47 #644 [Verbose] > │     v0.l0 <- v2                                                              │

00:00:47 #645 [Verbose] > │     ()                                                                       │

00:00:47 #646 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:00:47 #647 [Verbose] > │     v0                                                                       │

00:00:47 #648 [Verbose] > │ and method0 () : unit =                                                      │

00:00:47 #649 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:00:47 #650 [Verbose] > │     let v1 : (unit -> unit) = closure0(v0)                                   │

00:00:47 #651 [Verbose] > │     let v2 : Lazy<unit> = lazy v1 ()                                         │

00:00:47 #652 [Verbose] > │     v2.Value                                                                 │

00:00:47 #653 [Verbose] > │     v2.Value                                                                 │

00:00:47 #654 [Verbose] > │     v2.Value                                                                 │

00:00:47 #655 [Verbose] > │     let v3 : int32 = v0.l0                                                   │

00:00:47 #656 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:00:47 #657 [Verbose] > │     System.Console.WriteLine v4                                              │

00:00:47 #658 [Verbose] > │     let v5 : bool = v3 = 1                                                   │

00:00:47 #659 [Verbose] > │     let v7 : bool =                                                          │

00:00:47 #660 [Verbose] > │         if v5 then                                                           │

00:00:47 #661 [Verbose] > │             true                                                             │

00:00:47 #662 [Verbose] > │         else                                                                 │

00:00:47 #663 [Verbose] > │             method1(v5)                                                      │

00:00:47 #664 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{1}"         │

00:00:47 #665 [Verbose] > │     let v9 : bool = v7 = false                                               │

00:00:47 #666 [Verbose] > │     if v9 then                                                               │

00:00:47 #667 [Verbose] > │         failwith<unit> v8                                                    │

00:00:47 #668 [Verbose] > │ method0()                                                                    │

00:00:47 #669 [Verbose] > │                                                                              │

00:00:47 #670 [Verbose] > │ 1                                                                            │

00:00:47 #671 [Verbose] > │                                                                              │

00:00:47 #672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:47 #673 [Verbose] >

00:00:47 #674 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:47 #675 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:47 #676 [Verbose] > │ ## trace_level                                                               │

00:00:47 #677 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:47 #678 [Verbose] >

00:00:47 #679 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:47 #680 [Verbose] > union trace_level =

00:00:47 #681 [Verbose] >     | Verbose

00:00:47 #682 [Verbose] >     | Debug

00:00:47 #683 [Verbose] >     | Info

00:00:47 #684 [Verbose] >     | Warning

00:00:47 #685 [Verbose] >     | Critical

00:00:47 #686 [Verbose] >

00:00:47 #687 [Verbose] > instance to_string trace_level = function

00:00:47 #688 [Verbose] >     | Verbose => "Verbose"

00:00:47 #689 [Verbose] >     | Debug => "Debug"

00:00:47 #690 [Verbose] >     | Info => "Info"

00:00:47 #691 [Verbose] >     | Warning => "Warning"

00:00:47 #692 [Verbose] >     | Critical => "Critical"

00:00:47 #693 [Verbose] >

00:00:47 #694 [Verbose] > instance of_string trace_level = function

00:00:47 #695 [Verbose] >     | "Verbose" => Verbose

00:00:47 #696 [Verbose] >     | "Debug" => Debug

00:00:47 #697 [Verbose] >     | "Info" => Info

00:00:47 #698 [Verbose] >     | "Warning" => Warning

00:00:47 #699 [Verbose] >     | "Critical" => Critical

00:00:47 #700 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2011-1156-1ae2fe0224d1\main.spi

00:00:48 #701 [Verbose] >

00:00:48 #702 [Verbose] > ╭─[ 241.60ms - stdout ]────────────────────────────────────────────────────────╮

00:00:48 #703 [Verbose] > │ ()                                                                           │

00:00:48 #704 [Verbose] > │                                                                              │

00:00:48 #705 [Verbose] > │                                                                              │

00:00:48 #706 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #707 [Verbose] >

00:00:48 #708 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:48 #709 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:48 #710 [Verbose] > │ ## get_locals                                                                │

00:00:48 #711 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #712 [Verbose] >

00:00:48 #713 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:48 #714 [Verbose] > inl get_locals () = ""

00:00:48 #715 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2036-3624-318a11c8f542\main.spi

00:00:48 #716 [Verbose] >

00:00:48 #717 [Verbose] > ╭─[ 214.81ms - stdout ]────────────────────────────────────────────────────────╮

00:00:48 #718 [Verbose] > │ ()                                                                           │

00:00:48 #719 [Verbose] > │                                                                              │

00:00:48 #720 [Verbose] > │                                                                              │

00:00:48 #721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #722 [Verbose] >

00:00:48 #723 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:48 #724 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:48 #725 [Verbose] > │ ## trace_state                                                               │

00:00:48 #726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #727 [Verbose] >

00:00:48 #728 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:48 #729 [Verbose] > inl trace_state () =

00:00:48 #730 [Verbose] >     inl result =

00:00:48 #731 [Verbose] >         fun () =>

00:00:48 #732 [Verbose] >             {

00:00:48 #733 [Verbose] >                 enabled = mut true

00:00:48 #734 [Verbose] >                 count = mut 0i64

00:00:48 #735 [Verbose] >                 level = mut Debug

00:00:48 #736 [Verbose] >                 dump = mut false

00:00:48 #737 [Verbose] >             }

00:00:48 #738 [Verbose] >         |> memoize

00:00:48 #739 [Verbose] >     result ()

00:00:48 #740 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2058-5855-538acb5837f8\main.spi

00:00:48 #741 [Verbose] >

00:00:48 #742 [Verbose] > ╭─[ 258.26ms - stdout ]────────────────────────────────────────────────────────╮

00:00:48 #743 [Verbose] > │ ()                                                                           │

00:00:48 #744 [Verbose] > │                                                                              │

00:00:48 #745 [Verbose] > │                                                                              │

00:00:48 #746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #747 [Verbose] >

00:00:48 #748 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:48 #749 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:48 #750 [Verbose] > │ ## test_trace_level                                                          │

00:00:48 #751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #752 [Verbose] >

00:00:48 #753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:48 #754 [Verbose] > inl test_trace_level level =

00:00:48 #755 [Verbose] >     inl state = trace_state ()

00:00:48 #756 [Verbose] >     inl level' = *state.level

00:00:48 #757 [Verbose] >     *state.enabled && $'!level >= !level' '

00:00:48 #758 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2084-8489-8bcf52471caf\main.spi

00:00:48 #759 [Verbose] >

00:00:48 #760 [Verbose] > ╭─[ 209.31ms - stdout ]────────────────────────────────────────────────────────╮

00:00:48 #761 [Verbose] > │ ()                                                                           │

00:00:48 #762 [Verbose] > │                                                                              │

00:00:48 #763 [Verbose] > │                                                                              │

00:00:48 #764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #765 [Verbose] >

00:00:48 #766 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:48 #767 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:48 #768 [Verbose] > │ ## any                                                                       │

00:00:48 #769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:48 #770 [Verbose] >

00:00:48 #771 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:48 #772 [Verbose] > nominal any = $"obj"

00:00:48 #773 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2106-0625-07570744904e\main.spi

00:00:49 #774 [Verbose] >

00:00:49 #775 [Verbose] > ╭─[ 232.50ms - stdout ]────────────────────────────────────────────────────────╮

00:00:49 #776 [Verbose] > │ ()                                                                           │

00:00:49 #777 [Verbose] > │                                                                              │

00:00:49 #778 [Verbose] > │                                                                              │

00:00:49 #779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #780 [Verbose] >

00:00:49 #781 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:49 #782 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:49 #783 [Verbose] > │ ## to_any                                                                    │

00:00:49 #784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #785 [Verbose] >

00:00:49 #786 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:49 #787 [Verbose] > inl to_any forall t. (obj : t) : any =

00:00:49 #788 [Verbose] >     $"!obj"

00:00:49 #789 [Verbose] >

00:00:49 #790 [Verbose] > instance (~:>) any = to_any

00:00:49 #791 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2130-3020-32c62943cfbf\main.spi

00:00:49 #792 [Verbose] >

00:00:49 #793 [Verbose] > ╭─[ 209.92ms - stdout ]────────────────────────────────────────────────────────╮

00:00:49 #794 [Verbose] > │ ()                                                                           │

00:00:49 #795 [Verbose] > │                                                                              │

00:00:49 #796 [Verbose] > │                                                                              │

00:00:49 #797 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #798 [Verbose] >

00:00:49 #799 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:49 #800 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:49 #801 [Verbose] > │ ## (/@)                                                                      │

00:00:49 #802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #803 [Verbose] >

00:00:49 #804 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:49 #805 [Verbose] > inl (/@) a b =

00:00:49 #806 [Verbose] >     b |> append a

00:00:49 #807 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2151-5162-50caa003a904\main.spi

00:00:49 #808 [Verbose] >

00:00:49 #809 [Verbose] > ╭─[ 263.10ms - stdout ]────────────────────────────────────────────────────────╮

00:00:49 #810 [Verbose] > │ ()                                                                           │

00:00:49 #811 [Verbose] > │                                                                              │

00:00:49 #812 [Verbose] > │                                                                              │

00:00:49 #813 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #814 [Verbose] >

00:00:49 #815 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:49 #816 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:49 #817 [Verbose] > │ ## unbox                                                                     │

00:00:49 #818 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #819 [Verbose] >

00:00:49 #820 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:49 #821 [Verbose] > inl unbox forall t u. (x : t) : u =

00:00:49 #822 [Verbose] >     $"!x |> unbox<`u>"

00:00:49 #823 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2178-7857-738e543cadd9\main.spi

00:00:49 #824 [Verbose] >

00:00:49 #825 [Verbose] > ╭─[ 215.05ms - stdout ]────────────────────────────────────────────────────────╮

00:00:49 #826 [Verbose] > │ ()                                                                           │

00:00:49 #827 [Verbose] > │                                                                              │

00:00:49 #828 [Verbose] > │                                                                              │

00:00:49 #829 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #830 [Verbose] >

00:00:49 #831 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:49 #832 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:49 #833 [Verbose] > │ ## (+.)                                                                      │

00:00:49 #834 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #835 [Verbose] >

00:00:49 #836 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:49 #837 [Verbose] > inl (+.) forall t. (a : t) (b : t) : t =

00:00:49 #838 [Verbose] >     $"!a + !b"

00:00:49 #839 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2200-0070-0ce37c907f00\main.spi

00:00:49 #840 [Verbose] >

00:00:49 #841 [Verbose] > ╭─[ 223.16ms - stdout ]────────────────────────────────────────────────────────╮

00:00:49 #842 [Verbose] > │ ()                                                                           │

00:00:49 #843 [Verbose] > │                                                                              │

00:00:49 #844 [Verbose] > │                                                                              │

00:00:49 #845 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #846 [Verbose] >

00:00:49 #847 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:49 #848 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:49 #849 [Verbose] > │ ## (-.)                                                                      │

00:00:49 #850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:49 #851 [Verbose] >

00:00:49 #852 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:49 #853 [Verbose] > inl (-.) forall t. (a : t) (b : t) : t =

00:00:49 #854 [Verbose] >     $"!a - !b"

00:00:50 #855 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2223-2345-26fd887f5ea9\main.spi

00:00:50 #856 [Verbose] >

00:00:50 #857 [Verbose] > ╭─[ 245.94ms - stdout ]────────────────────────────────────────────────────────╮

00:00:50 #858 [Verbose] > │ ()                                                                           │

00:00:50 #859 [Verbose] > │                                                                              │

00:00:50 #860 [Verbose] > │                                                                              │

00:00:50 #861 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #862 [Verbose] >

00:00:50 #863 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:50 #864 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:50 #865 [Verbose] > │ ## (*.)                                                                      │

00:00:50 #866 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #867 [Verbose] >

00:00:50 #868 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:50 #869 [Verbose] > inl (*.) forall t. (a : t) (b : t) : t =

00:00:50 #870 [Verbose] >     $"!a * !b"

00:00:50 #871 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2248-4862-4f8ec927a85a\main.spi

00:00:50 #872 [Verbose] >

00:00:50 #873 [Verbose] > ╭─[ 244.44ms - stdout ]────────────────────────────────────────────────────────╮

00:00:50 #874 [Verbose] > │ ()                                                                           │

00:00:50 #875 [Verbose] > │                                                                              │

00:00:50 #876 [Verbose] > │                                                                              │

00:00:50 #877 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #878 [Verbose] >

00:00:50 #879 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:50 #880 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:50 #881 [Verbose] > │ ## (/.)                                                                      │

00:00:50 #882 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #883 [Verbose] >

00:00:50 #884 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:50 #885 [Verbose] > inl (/.) forall t. (a : t) (b : t) : t =

00:00:50 #886 [Verbose] >     $"!a / !b"

00:00:50 #887 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2273-7358-77b9589ffe7a\main.spi

00:00:50 #888 [Verbose] >

00:00:50 #889 [Verbose] > ╭─[ 261.29ms - stdout ]────────────────────────────────────────────────────────╮

00:00:50 #890 [Verbose] > │ ()                                                                           │

00:00:50 #891 [Verbose] > │                                                                              │

00:00:50 #892 [Verbose] > │                                                                              │

00:00:50 #893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #894 [Verbose] >

00:00:50 #895 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:50 #896 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:50 #897 [Verbose] > │ ## (=.)                                                                      │

00:00:50 #898 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #899 [Verbose] >

00:00:50 #900 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:50 #901 [Verbose] > inl (=.) forall t. (a : t) (b : t) : bool =

00:00:50 #902 [Verbose] >     $"!a = !b"

00:00:50 #903 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2300-0035-04d100ff392f\main.spi

00:00:50 #904 [Verbose] >

00:00:50 #905 [Verbose] > ╭─[ 228.75ms - stdout ]────────────────────────────────────────────────────────╮

00:00:50 #906 [Verbose] > │ ()                                                                           │

00:00:50 #907 [Verbose] > │                                                                              │

00:00:50 #908 [Verbose] > │                                                                              │

00:00:50 #909 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #910 [Verbose] >

00:00:50 #911 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:50 #912 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:50 #913 [Verbose] > │ ## (||>)                                                                     │

00:00:50 #914 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #915 [Verbose] >

00:00:50 #916 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:50 #917 [Verbose] > inl (||>) (arg1, arg2) fn =

00:00:50 #918 [Verbose] >     arg2 |> fn arg1

00:00:51 #919 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2323-2375-298f5772a57e\main.spi

00:00:51 #920 [Verbose] >

00:00:51 #921 [Verbose] > ╭─[ 244.97ms - stdout ]────────────────────────────────────────────────────────╮

00:00:51 #922 [Verbose] > │ ()                                                                           │

00:00:51 #923 [Verbose] > │                                                                              │

00:00:51 #924 [Verbose] > │                                                                              │

00:00:51 #925 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:51 #926 [Verbose] >

00:00:51 #927 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:51 #928 [Verbose] > // // test

00:00:51 #929 [Verbose] >

00:00:51 #930 [Verbose] > (3i32, 2i32)

00:00:51 #931 [Verbose] > ||> fun a b => a - b

00:00:51 #932 [Verbose] > |> _assert_eq 1

00:00:51 #933 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2348-4854-417b79f5ecc8\main.spi

00:00:51 #934 [Verbose] >

00:00:51 #935 [Verbose] > ╭─[ 566.89ms - stdout ]────────────────────────────────────────────────────────╮

00:00:51 #936 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:51 #937 [Verbose] > │     let v0 : string = $"%A{1}"                                               │

00:00:51 #938 [Verbose] > │     System.Console.WriteLine v0                                              │

00:00:51 #939 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1} / expected: %A{1}"          │

00:00:51 #940 [Verbose] > │     ()                                                                       │

00:00:51 #941 [Verbose] > │ method0()                                                                    │

00:00:51 #942 [Verbose] > │                                                                              │

00:00:51 #943 [Verbose] > │ 1                                                                            │

00:00:51 #944 [Verbose] > │                                                                              │

00:00:51 #945 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:51 #946 [Verbose] >

00:00:51 #947 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:51 #948 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:51 #949 [Verbose] > │ ## flip                                                                      │

00:00:51 #950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:51 #951 [Verbose] >

00:00:51 #952 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:51 #953 [Verbose] > inl flip fn a b =

00:00:51 #954 [Verbose] >     fn b a

00:00:51 #955 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2406-0632-034bf590d0b2\main.spi

00:00:52 #956 [Verbose] >

00:00:52 #957 [Verbose] > ╭─[ 233.05ms - stdout ]────────────────────────────────────────────────────────╮

00:00:52 #958 [Verbose] > │ ()                                                                           │

00:00:52 #959 [Verbose] > │                                                                              │

00:00:52 #960 [Verbose] > │                                                                              │

00:00:52 #961 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:52 #962 [Verbose] >

00:00:52 #963 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:52 #964 [Verbose] > // // test

00:00:52 #965 [Verbose] >

00:00:52 #966 [Verbose] > (1i32, 2i32)

00:00:52 #967 [Verbose] > ||> flip pair

00:00:52 #968 [Verbose] > |> _assert_eq (2, 1)

00:00:52 #969 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2429-2972-26315c7f3bba\main.spi

00:00:52 #970 [Verbose] >

00:00:52 #971 [Verbose] > ╭─[ 244.69ms - stdout ]────────────────────────────────────────────────────────╮

00:00:52 #972 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:52 #973 [Verbose] > │     let v0 : string = $"%A{struct (2, 1)}"                                   │

00:00:52 #974 [Verbose] > │     System.Console.WriteLine v0                                              │

00:00:52 #975 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (2, 1)} / expected:     │

00:00:52 #976 [Verbose] > │ %A{struct (2, 1)}"                                                           │

00:00:52 #977 [Verbose] > │     ()                                                                       │

00:00:52 #978 [Verbose] > │ method0()                                                                    │

00:00:52 #979 [Verbose] > │                                                                              │

00:00:52 #980 [Verbose] > │ struct (2, 1)                                                                │

00:00:52 #981 [Verbose] > │                                                                              │

00:00:52 #982 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:52 #983 [Verbose] >

00:00:52 #984 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:52 #985 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:52 #986 [Verbose] > │ ## join_body                                                                 │

00:00:52 #987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:52 #988 [Verbose] >

00:00:52 #989 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:52 #990 [Verbose] > inl join_body body acc x =

00:00:52 #991 [Verbose] >     if var_is x |> not

00:00:52 #992 [Verbose] >     then body acc x

00:00:52 #993 [Verbose] >     else

00:00:52 #994 [Verbose] >         inl acc = dyn acc

00:00:52 #995 [Verbose] >         join body acc x

00:00:52 #996 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2455-5575-5d847488eb31\main.spi

00:00:52 #997 [Verbose] >

00:00:52 #998 [Verbose] > ╭─[ 237.25ms - stdout ]────────────────────────────────────────────────────────╮

00:00:52 #999 [Verbose] > │ ()                                                                           │

00:00:52 #1000 [Verbose] > │                                                                              │

00:00:52 #1001 [Verbose] > │                                                                              │

00:00:52 #1002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:52 #1003 [Verbose] >

00:00:52 #1004 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:52 #1005 [Verbose] > // // test

00:00:52 #1006 [Verbose] >

00:00:52 #1007 [Verbose] > inl rec fold_list f s = function

00:00:52 #1008 [Verbose] >     | Cons (x, x') => fold_list f (f s x) x'

00:00:52 #1009 [Verbose] >     | Nil => s

00:00:52 #1010 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2479-7945-7d36ae3202c6\main.spi

00:00:52 #1011 [Verbose] >

00:00:52 #1012 [Verbose] > ╭─[ 241.05ms - stdout ]────────────────────────────────────────────────────────╮

00:00:52 #1013 [Verbose] > │ ()                                                                           │

00:00:52 #1014 [Verbose] > │                                                                              │

00:00:52 #1015 [Verbose] > │                                                                              │

00:00:52 #1016 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:52 #1017 [Verbose] >

00:00:52 #1018 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:52 #1019 [Verbose] > // // test

00:00:52 #1020 [Verbose] >

00:00:52 #1021 [Verbose] > [[ 5i32; 4; join 3; 2; 1 ]]

00:00:52 #1022 [Verbose] > |> fold_list (+) 0

00:00:52 #1023 [Verbose] > |> _assert_eq 15

00:00:52 #1024 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2504-0401-0c9ebc64db23\main.spi

00:00:53 #1025 [Verbose] >

00:00:53 #1026 [Verbose] > ╭─[ 384.10ms - stdout ]────────────────────────────────────────────────────────╮

00:00:53 #1027 [Verbose] > │ let rec method1 () : int32 =                                                 │

00:00:53 #1028 [Verbose] > │     3                                                                        │

00:00:53 #1029 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:00:53 #1030 [Verbose] > │     v0                                                                       │

00:00:53 #1031 [Verbose] > │ and method0 () : unit =                                                      │

00:00:53 #1032 [Verbose] > │     let v0 : int32 = method1()                                               │

00:00:53 #1033 [Verbose] > │     let v1 : int32 = 9 + v0                                                  │

00:00:53 #1034 [Verbose] > │     let v2 : int32 = v1 + 2                                                  │

00:00:53 #1035 [Verbose] > │     let v3 : int32 = v2 + 1                                                  │

00:00:53 #1036 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:00:53 #1037 [Verbose] > │     System.Console.WriteLine v4                                              │

00:00:53 #1038 [Verbose] > │     let v5 : bool = v3 = 15                                                  │

00:00:53 #1039 [Verbose] > │     let v7 : bool =                                                          │

00:00:53 #1040 [Verbose] > │         if v5 then                                                           │

00:00:53 #1041 [Verbose] > │             true                                                             │

00:00:53 #1042 [Verbose] > │         else                                                                 │

00:00:53 #1043 [Verbose] > │             method2(v5)                                                      │

00:00:53 #1044 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}"        │

00:00:53 #1045 [Verbose] > │     let v9 : bool = v7 = false                                               │

00:00:53 #1046 [Verbose] > │     if v9 then                                                               │

00:00:53 #1047 [Verbose] > │         failwith<unit> v8                                                    │

00:00:53 #1048 [Verbose] > │ method0()                                                                    │

00:00:53 #1049 [Verbose] > │                                                                              │

00:00:53 #1050 [Verbose] > │ 15                                                                           │

00:00:53 #1051 [Verbose] > │                                                                              │

00:00:53 #1052 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #1053 [Verbose] >

00:00:53 #1054 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:53 #1055 [Verbose] > // // test

00:00:53 #1056 [Verbose] >

00:00:53 #1057 [Verbose] > [[ 5i32; 4; join 3; 2; 1 ]]

00:00:53 #1058 [Verbose] > |> fold_list (join_body (+)) 0

00:00:53 #1059 [Verbose] > |> _assert_eq 15

00:00:53 #1060 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2544-4463-44de49237106\main.spi

00:00:53 #1061 [Verbose] >

00:00:53 #1062 [Verbose] > ╭─[ 251.92ms - stdout ]────────────────────────────────────────────────────────╮

00:00:53 #1063 [Verbose] > │ let rec method1 () : int32 =                                                 │

00:00:53 #1064 [Verbose] > │     3                                                                        │

00:00:53 #1065 [Verbose] > │ and method2 (v0 : int32, v1 : int32) : int32 =                               │

00:00:53 #1066 [Verbose] > │     let v2 : int32 = v1 + v0                                                 │

00:00:53 #1067 [Verbose] > │     v2                                                                       │

00:00:53 #1068 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:00:53 #1069 [Verbose] > │     v0                                                                       │

00:00:53 #1070 [Verbose] > │ and method0 () : unit =                                                      │

00:00:53 #1071 [Verbose] > │     let v0 : int32 = method1()                                               │

00:00:53 #1072 [Verbose] > │     let v1 : int32 = 9                                                       │

00:00:53 #1073 [Verbose] > │     let v2 : int32 = method2(v0, v1)                                         │

00:00:53 #1074 [Verbose] > │     let v3 : int32 = v2 + 2                                                  │

00:00:53 #1075 [Verbose] > │     let v4 : int32 = v3 + 1                                                  │

00:00:53 #1076 [Verbose] > │     let v5 : string = $"%A{v4}"                                              │

00:00:53 #1077 [Verbose] > │     System.Console.WriteLine v5                                              │

00:00:53 #1078 [Verbose] > │     let v6 : bool = v4 = 15                                                  │

00:00:53 #1079 [Verbose] > │     let v8 : bool =                                                          │

00:00:53 #1080 [Verbose] > │         if v6 then                                                           │

00:00:53 #1081 [Verbose] > │             true                                                             │

00:00:53 #1082 [Verbose] > │         else                                                                 │

00:00:53 #1083 [Verbose] > │             method3(v6)                                                      │

00:00:53 #1084 [Verbose] > │     let v9 : string = $"__expect / actual: %A{v4} / expected: %A{15}"        │

00:00:53 #1085 [Verbose] > │     let v10 : bool = v8 = false                                              │

00:00:53 #1086 [Verbose] > │     if v10 then                                                              │

00:00:53 #1087 [Verbose] > │         failwith<unit> v9                                                    │

00:00:53 #1088 [Verbose] > │ method0()                                                                    │

00:00:53 #1089 [Verbose] > │                                                                              │

00:00:53 #1090 [Verbose] > │ 15                                                                           │

00:00:53 #1091 [Verbose] > │                                                                              │

00:00:53 #1092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #1093 [Verbose] >

00:00:53 #1094 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:53 #1095 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:53 #1096 [Verbose] > │ ## join_body_unit                                                            │

00:00:53 #1097 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #1098 [Verbose] >

00:00:53 #1099 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:53 #1100 [Verbose] > inl join_body_unit body d x =

00:00:53 #1101 [Verbose] >     if var_is d |> not

00:00:53 #1102 [Verbose] >     then body x

00:00:53 #1103 [Verbose] >     else

00:00:53 #1104 [Verbose] >         inl x = dyn x

00:00:53 #1105 [Verbose] >         join body x

00:00:53 #1106 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2572-7226-7a32a0a5b94d\main.spi

00:00:53 #1107 [Verbose] >

00:00:53 #1108 [Verbose] > ╭─[ 214.39ms - stdout ]────────────────────────────────────────────────────────╮

00:00:53 #1109 [Verbose] > │ ()                                                                           │

00:00:53 #1110 [Verbose] > │                                                                              │

00:00:53 #1111 [Verbose] > │                                                                              │

00:00:53 #1112 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #1113 [Verbose] >

00:00:53 #1114 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:53 #1115 [Verbose] > // // test

00:00:53 #1116 [Verbose] >

00:00:53 #1117 [Verbose] > [[ 5i32; 4; join 3; 2; 1 ]]

00:00:53 #1118 [Verbose] > |> fold_list (fun acc n => join_body_unit ((+) acc) n n) 0

00:00:53 #1119 [Verbose] > |> _assert_eq 15

00:00:53 #1120 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2593-9395-9c471e33c6be\main.spi

00:00:53 #1121 [Verbose] >

00:00:53 #1122 [Verbose] > ╭─[ 255.60ms - stdout ]────────────────────────────────────────────────────────╮

00:00:53 #1123 [Verbose] > │ let rec method1 () : int32 =                                                 │

00:00:53 #1124 [Verbose] > │     3                                                                        │

00:00:53 #1125 [Verbose] > │ and method2 (v0 : int32) : int32 =                                           │

00:00:53 #1126 [Verbose] > │     let v1 : int32 = 9 + v0                                                  │

00:00:53 #1127 [Verbose] > │     v1                                                                       │

00:00:53 #1128 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:00:53 #1129 [Verbose] > │     v0                                                                       │

00:00:53 #1130 [Verbose] > │ and method0 () : unit =                                                      │

00:00:53 #1131 [Verbose] > │     let v0 : int32 = method1()                                               │

00:00:53 #1132 [Verbose] > │     let v1 : int32 = method2(v0)                                             │

00:00:53 #1133 [Verbose] > │     let v2 : int32 = v1 + 2                                                  │

00:00:53 #1134 [Verbose] > │     let v3 : int32 = v2 + 1                                                  │

00:00:53 #1135 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:00:53 #1136 [Verbose] > │     System.Console.WriteLine v4                                              │

00:00:53 #1137 [Verbose] > │     let v5 : bool = v3 = 15                                                  │

00:00:53 #1138 [Verbose] > │     let v7 : bool =                                                          │

00:00:53 #1139 [Verbose] > │         if v5 then                                                           │

00:00:53 #1140 [Verbose] > │             true                                                             │

00:00:53 #1141 [Verbose] > │         else                                                                 │

00:00:53 #1142 [Verbose] > │             method3(v5)                                                      │

00:00:53 #1143 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{15}"        │

00:00:53 #1144 [Verbose] > │     let v9 : bool = v7 = false                                               │

00:00:53 #1145 [Verbose] > │     if v9 then                                                               │

00:00:53 #1146 [Verbose] > │         failwith<unit> v8                                                    │

00:00:53 #1147 [Verbose] > │ method0()                                                                    │

00:00:53 #1148 [Verbose] > │                                                                              │

00:00:53 #1149 [Verbose] > │ 15                                                                           │

00:00:53 #1150 [Verbose] > │                                                                              │

00:00:53 #1151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #1152 [Verbose] >

00:00:53 #1153 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:53 #1154 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:53 #1155 [Verbose] > │ ## run_target                                                                │

00:00:53 #1156 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:53 #1157 [Verbose] >

00:00:53 #1158 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:53 #1159 [Verbose] > union target_runtime =

00:00:53 #1160 [Verbose] >     | Native

00:00:53 #1161 [Verbose] >     | Fable

00:00:53 #1162 [Verbose] >     | Wasm

00:00:53 #1163 [Verbose] >     | Contract

00:00:53 #1164 [Verbose] >

00:00:53 #1165 [Verbose] > union target =

00:00:53 #1166 [Verbose] >     | Rust : target_runtime

00:00:53 #1167 [Verbose] >     | Fsharp : target_runtime

00:00:53 #1168 [Verbose] >

00:00:53 #1169 [Verbose] > inl run_target forall t. (fn : target -> (() -> t)) : t =

00:00:53 #1170 [Verbose] >     inl result : optionm'.option' t = $'None'

00:00:53 #1171 [Verbose] >     $"let mutable _!result = !result"

00:00:53 #1172 [Verbose] >     $"#if FABLE_COMPILER_RUST && \!WASM && \!CONTRACT"

00:00:53 #1173 [Verbose] >     fn (Rust Native) () |> fun x => $"!x"

00:00:53 #1174 [Verbose] >     $"#endif"

00:00:53 #1175 [Verbose] >     $"#if FABLE_COMPILER_RUST && WASM"

00:00:53 #1176 [Verbose] >     fn (Rust Wasm) () |> fun x => $"!x"

00:00:53 #1177 [Verbose] >     $"#endif"

00:00:53 #1178 [Verbose] >     $"#if FABLE_COMPILER_RUST && CONTRACT"

00:00:53 #1179 [Verbose] >     fn (Rust Contract) () |> fun x => $"!x"

00:00:53 #1180 [Verbose] >     $"#endif"

00:00:53 #1181 [Verbose] >     $"#if \!FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"

00:00:53 #1182 [Verbose] >     fn (Fsharp Native) () |> fun x => $"!x"

00:00:53 #1183 [Verbose] >     $"#endif"

00:00:53 #1184 [Verbose] >     $"#if FABLE_COMPILER && \!FABLE_COMPILER_RUST && \!WASM"

00:00:53 #1185 [Verbose] >     fn (Fsharp Fable) () |> fun x => $"!x"

00:00:53 #1186 [Verbose] >     $"#endif"

00:00:53 #1187 [Verbose] >     $"#if \!FABLE_COMPILER_RUST && WASM"

00:00:53 #1188 [Verbose] >     fn (Fsharp Wasm) () |> fun x => $"!x"

00:00:53 #1189 [Verbose] >     $"#endif"

00:00:53 #1190 [Verbose] >     $"|> fun x -> _!result <- Some x"

00:00:53 #1191 [Verbose] >     $"_!result |> Option.get"

00:00:54 #1192 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2621-2197-220e1d39d8ad\main.spi

00:00:54 #1193 [Verbose] >

00:00:54 #1194 [Verbose] > ╭─[ 217.59ms - stdout ]────────────────────────────────────────────────────────╮

00:00:54 #1195 [Verbose] > │ ()                                                                           │

00:00:54 #1196 [Verbose] > │                                                                              │

00:00:54 #1197 [Verbose] > │                                                                              │

00:00:54 #1198 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:54 #1199 [Verbose] >

00:00:54 #1200 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:54 #1201 [Verbose] > // // test

00:00:54 #1202 [Verbose] >

00:00:54 #1203 [Verbose] > run_target function

00:00:54 #1204 [Verbose] >     | Fsharp (Native) => fun () => $"1uy"

00:00:54 #1205 [Verbose] >     | _ => fun () => $"2uy"

00:00:54 #1206 [Verbose] > |> _assert_eq 1u8

00:00:54 #1207 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2643-4377-46d2766b7a7b\main.spi

00:00:54 #1208 [Verbose] >

00:00:54 #1209 [Verbose] > ╭─[ 311.84ms - stdout ]────────────────────────────────────────────────────────╮

00:00:54 #1210 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:00:54 #1211 [Verbose] > │     v0                                                                       │

00:00:54 #1212 [Verbose] > │ and method0 () : unit =                                                      │

00:00:54 #1213 [Verbose] > │     let v0 : uint8 option = None                                             │

00:00:54 #1214 [Verbose] > │     let mutable _v0 = v0                                                     │

00:00:54 #1215 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:00:54 #1216 [Verbose] > │     let v1 : uint8 = 2uy                                                     │

00:00:54 #1217 [Verbose] > │     v1                                                                       │

00:00:54 #1218 [Verbose] > │     #endif                                                                   │

00:00:54 #1219 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:00:54 #1220 [Verbose] > │     let v2 : uint8 = 2uy                                                     │

00:00:54 #1221 [Verbose] > │     v2                                                                       │

00:00:54 #1222 [Verbose] > │     #endif                                                                   │

00:00:54 #1223 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:00:54 #1224 [Verbose] > │     let v3 : uint8 = 2uy                                                     │

00:00:54 #1225 [Verbose] > │     v3                                                                       │

00:00:54 #1226 [Verbose] > │     #endif                                                                   │

00:00:54 #1227 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:00:54 #1228 [Verbose] > │     let v4 : uint8 = 1uy                                                     │

00:00:54 #1229 [Verbose] > │     v4                                                                       │

00:00:54 #1230 [Verbose] > │     #endif                                                                   │

00:00:54 #1231 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:00:54 #1232 [Verbose] > │     let v5 : uint8 = 2uy                                                     │

00:00:54 #1233 [Verbose] > │     v5                                                                       │

00:00:54 #1234 [Verbose] > │     #endif                                                                   │

00:00:54 #1235 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:00:54 #1236 [Verbose] > │     let v6 : uint8 = 2uy                                                     │

00:00:54 #1237 [Verbose] > │     v6                                                                       │

00:00:54 #1238 [Verbose] > │     #endif                                                                   │

00:00:54 #1239 [Verbose] > │     |> fun x -> _v0 <- Some x                                                │

00:00:54 #1240 [Verbose] > │     let v7 : uint8 = _v0 |> Option.get                                       │

00:00:54 #1241 [Verbose] > │     let v8 : string = $"%A{v7}"                                              │

00:00:54 #1242 [Verbose] > │     System.Console.WriteLine v8                                              │

00:00:54 #1243 [Verbose] > │     let v9 : bool = v7 = 1uy                                                 │

00:00:54 #1244 [Verbose] > │     let v11 : bool =                                                         │

00:00:54 #1245 [Verbose] > │         if v9 then                                                           │

00:00:54 #1246 [Verbose] > │             true                                                             │

00:00:54 #1247 [Verbose] > │         else                                                                 │

00:00:54 #1248 [Verbose] > │             method1(v9)                                                      │

00:00:54 #1249 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v7} / expected: %A{1uy}"      │

00:00:54 #1250 [Verbose] > │     let v13 : bool = v11 = false                                             │

00:00:54 #1251 [Verbose] > │     if v13 then                                                              │

00:00:54 #1252 [Verbose] > │         failwith<unit> v12                                                   │

00:00:54 #1253 [Verbose] > │ method0()                                                                    │

00:00:54 #1254 [Verbose] > │                                                                              │

00:00:54 #1255 [Verbose] > │ 1uy                                                                          │

00:00:54 #1256 [Verbose] > │                                                                              │

00:00:54 #1257 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:54 #1258 [Verbose] >

00:00:54 #1259 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:54 #1260 [Verbose] > // // test

00:00:54 #1261 [Verbose] > // // rust=

00:00:54 #1262 [Verbose] >

00:00:54 #1263 [Verbose] > run_target function

00:00:54 #1264 [Verbose] >     | Rust (Native) => fun () => $"1uy"

00:00:54 #1265 [Verbose] >     | _ => fun () => $"2uy"

00:00:54 #1266 [Verbose] > |> (=) 1u8

00:00:54 #1267 [Verbose] > |> _assert_eq true

00:00:54 #1268 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-2677-7733-788d85722f1a\main.spi

00:01:05 #1269 [Verbose] >

00:01:05 #1270 [Verbose] > ╭─[ 11.10s - return value ]────────────────────────────────────────────────────╮

00:01:05 #1271 [Verbose] > │ .rs output:                                                                  │

00:01:05 #1272 [Verbose] > │ true                                                                         │

00:01:05 #1273 [Verbose] > │                                                                              │

00:01:05 #1274 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:05 #1275 [Verbose] >

00:01:05 #1276 [Verbose] > ╭─[ 11.10s - stdout ]──────────────────────────────────────────────────────────╮

00:01:05 #1277 [Verbose] > │                                                                              │

00:01:05 #1278 [Verbose] > │ .fsx:                                                                        │

00:01:05 #1279 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:01:05 #1280 [Verbose] > │     v0                                                                       │

00:01:05 #1281 [Verbose] > │ and method0 () : unit =                                                      │

00:01:05 #1282 [Verbose] > │     let v0 : uint8 option = None                                             │

00:01:05 #1283 [Verbose] > │     let mutable _v0 = v0                                                     │

00:01:05 #1284 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:05 #1285 [Verbose] > │     let v1 : uint8 = 1uy                                                     │

00:01:05 #1286 [Verbose] > │     v1                                                                       │

00:01:05 #1287 [Verbose] > │     #endif                                                                   │

00:01:05 #1288 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:05 #1289 [Verbose] > │     let v2 : uint8 = 2uy                                                     │

00:01:05 #1290 [Verbose] > │     v2                                                                       │

00:01:05 #1291 [Verbose] > │     #endif                                                                   │

00:01:05 #1292 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:05 #1293 [Verbose] > │     let v3 : uint8 = 2uy                                                     │

00:01:05 #1294 [Verbose] > │     v3                                                                       │

00:01:05 #1295 [Verbose] > │     #endif                                                                   │

00:01:05 #1296 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:05 #1297 [Verbose] > │     let v4 : uint8 = 2uy                                                     │

00:01:05 #1298 [Verbose] > │     v4                                                                       │

00:01:05 #1299 [Verbose] > │     #endif                                                                   │

00:01:05 #1300 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:05 #1301 [Verbose] > │     let v5 : uint8 = 2uy                                                     │

00:01:05 #1302 [Verbose] > │     v5                                                                       │

00:01:05 #1303 [Verbose] > │     #endif                                                                   │

00:01:05 #1304 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:05 #1305 [Verbose] > │     let v6 : uint8 = 2uy                                                     │

00:01:05 #1306 [Verbose] > │     v6                                                                       │

00:01:05 #1307 [Verbose] > │     #endif                                                                   │

00:01:05 #1308 [Verbose] > │     |> fun x -> _v0 <- Some x                                                │

00:01:05 #1309 [Verbose] > │     let v7 : uint8 = _v0 |> Option.get                                       │

00:01:05 #1310 [Verbose] > │     let v8 : bool = 1uy = v7                                                 │

00:01:05 #1311 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │

00:01:05 #1312 [Verbose] > │     System.Console.WriteLine v9                                              │

00:01:05 #1313 [Verbose] > │     let v11 : bool =                                                         │

00:01:05 #1314 [Verbose] > │         if v8 then                                                           │

00:01:05 #1315 [Verbose] > │             true                                                             │

00:01:05 #1316 [Verbose] > │         else                                                                 │

00:01:05 #1317 [Verbose] > │             method1(v8)                                                      │

00:01:05 #1318 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v8} / expected: %A{true}"     │

00:01:05 #1319 [Verbose] > │     let v13 : bool = v11 = false                                             │

00:01:05 #1320 [Verbose] > │     if v13 then                                                              │

00:01:05 #1321 [Verbose] > │         failwith<unit> v12                                                   │

00:01:05 #1322 [Verbose] > │ method0()                                                                    │

00:01:05 #1323 [Verbose] > │                                                                              │

00:01:05 #1324 [Verbose] > │                                                                              │

00:01:05 #1325 [Verbose] > │ .rs:                                                                         │

00:01:05 #1326 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:01:05 #1327 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:01:05 #1328 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:01:05 #1329 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:01:05 #1330 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:01:05 #1331 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:01:05 #1332 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:01:05 #1333 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:01:05 #1334 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:01:05 #1335 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:01:05 #1336 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:01:05 #1337 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:01:05 #1338 [Verbose] > │         use super::*;                                                        │

00:01:05 #1339 [Verbose] > │         use fable_library_rust::Native_::MutCell;                            │

00:01:05 #1340 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:01:05 #1341 [Verbose] > │         use fable_library_rust::Option_::getValue;                           │

00:01:05 #1342 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:01:05 #1343 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │

00:01:05 #1344 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:01:05 #1345 [Verbose] > │         pub fn method1(v0: bool) -> bool { v0 }                              │

00:01:05 #1346 [Verbose] > │         pub fn method0() {                                                   │

00:01:05 #1347 [Verbose] > │             let _v0: MutCell<Option<u8>> = MutCell::new(None::<u8>);         │

00:01:05 #1348 [Verbose] > │             _v0.set(Some(1_u8));                                             │

00:01:05 #1349 [Verbose] > │             {                                                                │

00:01:05 #1350 [Verbose] > │                 let v8: bool = 1_u8 == getValue(_v0.get().clone());          │

00:01:05 #1351 [Verbose] > │                 let v9: string = sprintf!("{:?}", v8);                       │

00:01:05 #1352 [Verbose] > │                 printfn!("{0}", v9);                                         │

00:01:05 #1353 [Verbose] > │                 if (if v8 { true } else { Spiral_eval::method1(v8) }) ==     │

00:01:05 #1354 [Verbose] > │ false                                                                        │

00:01:05 #1355 [Verbose] > │                    {                                                         │

00:01:05 #1356 [Verbose] > │                     panic!("{}",                                             │

00:01:05 #1357 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │

00:01:05 #1358 [Verbose] > │ {:?}", v8, true));                                                           │

00:01:05 #1359 [Verbose] > │                 }                                                            │

00:01:05 #1360 [Verbose] > │             }                                                                │

00:01:05 #1361 [Verbose] > │         }                                                                    │

00:01:05 #1362 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:01:05 #1363 [Verbose] > │     }                                                                        │

00:01:05 #1364 [Verbose] > │ }                                                                            │

00:01:05 #1365 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:01:05 #1366 [Verbose] > │                                                                              │

00:01:05 #1367 [Verbose] > │                                                                              │

00:01:05 #1368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:05 #1369 [Verbose] >

00:01:05 #1370 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:05 #1371 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:05 #1372 [Verbose] > │ ## nameof                                                                    │

00:01:05 #1373 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:05 #1374 [Verbose] >

00:01:05 #1375 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:05 #1376 [Verbose] > inl nameof x : string =

00:01:05 #1377 [Verbose] >     $"nameof !x"

00:01:05 #1378 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3793-9311-967e0bb08362\main.spi

00:01:05 #1379 [Verbose] >

00:01:05 #1380 [Verbose] > ╭─[ 212.68ms - stdout ]────────────────────────────────────────────────────────╮

00:01:05 #1381 [Verbose] > │ ()                                                                           │

00:01:05 #1382 [Verbose] > │                                                                              │

00:01:05 #1383 [Verbose] > │                                                                              │

00:01:05 #1384 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:05 #1385 [Verbose] >

00:01:05 #1386 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:05 #1387 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:05 #1388 [Verbose] > │ ## get_environment_variable                                                  │

00:01:05 #1389 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:05 #1390 [Verbose] >

00:01:05 #1391 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:05 #1392 [Verbose] > inl get_environment_variable (var : string) : string =

00:01:05 #1393 [Verbose] >     $"System.Environment.GetEnvironmentVariable !var"

00:01:06 #1394 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3814-1453-133ae78cd8de\main.spi

00:01:06 #1395 [Verbose] >

00:01:06 #1396 [Verbose] > ╭─[ 323.17ms - stdout ]────────────────────────────────────────────────────────╮

00:01:06 #1397 [Verbose] > │ ()                                                                           │

00:01:06 #1398 [Verbose] > │                                                                              │

00:01:06 #1399 [Verbose] > │                                                                              │

00:01:06 #1400 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:06 #1401 [Verbose] >

00:01:06 #1402 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:06 #1403 [Verbose] > // // test

00:01:06 #1404 [Verbose] >

00:01:06 #1405 [Verbose] > fun () => failwith "test"

00:01:06 #1406 [Verbose] > |> _throws

00:01:06 #1407 [Verbose] > |> optionm.map sm'.format_exception

00:01:06 #1408 [Verbose] > |> _assert_eq (Some "System.Exception: test")

00:01:06 #1409 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3847-4713-4b7e737be5f6\main.spi

00:01:07 #1410 [Verbose] >

00:01:07 #1411 [Verbose] > ╭─[ 890.10ms - stdout ]────────────────────────────────────────────────────────╮

00:01:07 #1412 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:01:07 #1413 [Verbose] > │     | US0_0 of f0_0 : exn                                                    │

00:01:07 #1414 [Verbose] > │     | US0_1                                                                  │

00:01:07 #1415 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:07 #1416 [Verbose] > │     | US1_0 of f0_0 : string                                                 │

00:01:07 #1417 [Verbose] > │     | US1_1                                                                  │

00:01:07 #1418 [Verbose] > │ let rec closure0 () () : unit =                                              │

00:01:07 #1419 [Verbose] > │     failwith<unit> "test"                                                    │

00:01:07 #1420 [Verbose] > │ and closure1 () (v0 : exn) : US0 =                                           │

00:01:07 #1421 [Verbose] > │     US0_0(v0)                                                                │

00:01:07 #1422 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:07 #1423 [Verbose] > │     v0                                                                       │

00:01:07 #1424 [Verbose] > │ and method0 () : unit =                                                      │

00:01:07 #1425 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:01:07 #1426 [Verbose] > │     let v1 : US0 = US0_1                                                     │

00:01:07 #1427 [Verbose] > │     let v2 : (exn -> US0) = closure1()                                       │

00:01:07 #1428 [Verbose] > │     let v3 : US0 = try v0 (); v1 with ex -> ex |> v2                         │

00:01:07 #1429 [Verbose] > │     let v16 : US1 =                                                          │

00:01:07 #1430 [Verbose] > │         match v3 with                                                        │

00:01:07 #1431 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:01:07 #1432 [Verbose] > │             US1_1                                                            │

00:01:07 #1433 [Verbose] > │         | US0_0(v4) -> (* Some *)                                            │

00:01:07 #1434 [Verbose] > │             let v5 : string option = None                                    │

00:01:07 #1435 [Verbose] > │             let mutable _v5 = v5                                             │

00:01:07 #1436 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:07 #1437 [Verbose] > │             let v6 : string = $"%A{v4}"                                      │

00:01:07 #1438 [Verbose] > │             v6                                                               │

00:01:07 #1439 [Verbose] > │             #endif                                                           │

00:01:07 #1440 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:07 #1441 [Verbose] > │             let v7 : string = $"%A{v4}"                                      │

00:01:07 #1442 [Verbose] > │             v7                                                               │

00:01:07 #1443 [Verbose] > │             #endif                                                           │

00:01:07 #1444 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:07 #1445 [Verbose] > │             let v8 : string = $"%A{v4}"                                      │

00:01:07 #1446 [Verbose] > │             v8                                                               │

00:01:07 #1447 [Verbose] > │             #endif                                                           │

00:01:07 #1448 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:07 #1449 [Verbose] > │             let v9 : string = $"{v4.GetType ()}: {v4.Message}"               │

00:01:07 #1450 [Verbose] > │             v9                                                               │

00:01:07 #1451 [Verbose] > │             #endif                                                           │

00:01:07 #1452 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:07 #1453 [Verbose] > │             let v10 : string = $"%A{v4}"                                     │

00:01:07 #1454 [Verbose] > │             v10                                                              │

00:01:07 #1455 [Verbose] > │             #endif                                                           │

00:01:07 #1456 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:07 #1457 [Verbose] > │             let v11 : string = $"%A{v4}"                                     │

00:01:07 #1458 [Verbose] > │             v11                                                              │

00:01:07 #1459 [Verbose] > │             #endif                                                           │

00:01:07 #1460 [Verbose] > │             |> fun x -> _v5 <- Some x                                        │

00:01:07 #1461 [Verbose] > │             let v12 : string = _v5 |> Option.get                             │

00:01:07 #1462 [Verbose] > │             US1_0(v12)                                                       │

00:01:07 #1463 [Verbose] > │     let v17 : string = $"%A{v16}"                                            │

00:01:07 #1464 [Verbose] > │     System.Console.WriteLine v17                                             │

00:01:07 #1465 [Verbose] > │     let v22 : bool =                                                         │

00:01:07 #1466 [Verbose] > │         match v16 with                                                       │

00:01:07 #1467 [Verbose] > │         | US1_0(v20) -> (* Some *)                                           │

00:01:07 #1468 [Verbose] > │             let v21 : bool = v20 = "System.Exception: test"                  │

00:01:07 #1469 [Verbose] > │             v21                                                              │

00:01:07 #1470 [Verbose] > │         | _ ->                                                               │

00:01:07 #1471 [Verbose] > │             false                                                            │

00:01:07 #1472 [Verbose] > │     let v24 : bool =                                                         │

00:01:07 #1473 [Verbose] > │         if v22 then                                                          │

00:01:07 #1474 [Verbose] > │             true                                                             │

00:01:07 #1475 [Verbose] > │         else                                                                 │

00:01:07 #1476 [Verbose] > │             method1(v22)                                                     │

00:01:07 #1477 [Verbose] > │     let v25 : string = "System.Exception: test"                              │

00:01:07 #1478 [Verbose] > │     let v26 : US1 = US1_0(v25)                                               │

00:01:07 #1479 [Verbose] > │     let v27 : string = $"__expect / actual: %A{v16} / expected: %A{v26}"     │

00:01:07 #1480 [Verbose] > │     let v28 : bool = v24 = false                                             │

00:01:07 #1481 [Verbose] > │     if v28 then                                                              │

00:01:07 #1482 [Verbose] > │         failwith<unit> v27                                                   │

00:01:07 #1483 [Verbose] > │ method0()                                                                    │

00:01:07 #1484 [Verbose] > │                                                                              │

00:01:07 #1485 [Verbose] > │ US1_0 "System.Exception: test"                                               │

00:01:07 #1486 [Verbose] > │                                                                              │

00:01:07 #1487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1488 [Verbose] >

00:01:07 #1489 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:07 #1490 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:07 #1491 [Verbose] > │ ## disposable                                                                │

00:01:07 #1492 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1493 [Verbose] >

00:01:07 #1494 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:07 #1495 [Verbose] > nominal disposable = $"System.IDisposable"

00:01:07 #1496 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3941-4139-4e5787634fb7\main.spi

00:01:07 #1497 [Verbose] >

00:01:07 #1498 [Verbose] > ╭─[ 276.52ms - stdout ]────────────────────────────────────────────────────────╮

00:01:07 #1499 [Verbose] > │ ()                                                                           │

00:01:07 #1500 [Verbose] > │                                                                              │

00:01:07 #1501 [Verbose] > │                                                                              │

00:01:07 #1502 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1503 [Verbose] >

00:01:07 #1504 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:07 #1505 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:07 #1506 [Verbose] > │ ## use_disposable                                                            │

00:01:07 #1507 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1508 [Verbose] >

00:01:07 #1509 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:07 #1510 [Verbose] > inl use_disposable (disposable : disposable) : disposable =

00:01:07 #1511 [Verbose] >     $"use !disposable = !disposable" : ()

00:01:07 #1512 [Verbose] >     $"!disposable"

00:01:07 #1513 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3969-6932-624f7901592b\main.spi

00:01:07 #1514 [Verbose] >

00:01:07 #1515 [Verbose] > ╭─[ 273.38ms - stdout ]────────────────────────────────────────────────────────╮

00:01:07 #1516 [Verbose] > │ ()                                                                           │

00:01:07 #1517 [Verbose] > │                                                                              │

00:01:07 #1518 [Verbose] > │                                                                              │

00:01:07 #1519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1520 [Verbose] >

00:01:07 #1521 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:07 #1522 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:07 #1523 [Verbose] > │ ## new_disposable                                                            │

00:01:07 #1524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1525 [Verbose] >

00:01:07 #1526 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:07 #1527 [Verbose] > inl new_disposable (fn : () -> ()) : disposable =

00:01:07 #1528 [Verbose] >     run_target function

00:01:07 #1529 [Verbose] >         | Fsharp _ => fun () => $'{ new System.IDisposable with member _.Dispose

00:01:07 #1530 [Verbose] > () = !fn () }'

00:01:07 #1531 [Verbose] >         // | Rust _ =>

00:01:07 #1532 [Verbose] >         //     fun () =>

00:01:07 #1533 [Verbose] >                 // $'{ new System.IDisposable with member _.Dispose () =

00:01:07 #1534 [Verbose] > Fable.Core.RustInterop.emitRustExpr () "!fn()" }'

00:01:07 #1535 [Verbose] >         | target => fun () => failwith $'$"new_disposable / target: {!target}"'

00:01:07 #1536 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-3997-9737-9e7cd5357409\main.spi

00:01:07 #1537 [Verbose] >

00:01:07 #1538 [Verbose] > ╭─[ 245.47ms - stdout ]────────────────────────────────────────────────────────╮

00:01:07 #1539 [Verbose] > │ ()                                                                           │

00:01:07 #1540 [Verbose] > │                                                                              │

00:01:07 #1541 [Verbose] > │                                                                              │

00:01:07 #1542 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:07 #1543 [Verbose] >

00:01:07 #1544 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:07 #1545 [Verbose] > // // test

00:01:07 #1546 [Verbose] >

00:01:07 #1547 [Verbose] > inl new_disposable_test = mut 0i32

00:01:07 #1548 [Verbose] > new_disposable (fun () => new_disposable_test <- *new_disposable_test + 1)

00:01:07 #1549 [Verbose] > |> $'_.Dispose()'

00:01:07 #1550 [Verbose] > *new_disposable_test |> _assert_eq 1

00:01:08 #1551 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4022-2212-2420fdfd7e1d\main.spi

00:01:08 #1552 [Verbose] >

00:01:08 #1553 [Verbose] > ╭─[ 688.96ms - stdout ]────────────────────────────────────────────────────────╮

00:01:08 #1554 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:08 #1555 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:08 #1556 [Verbose] > │     | US0_0                                                                  │

00:01:08 #1557 [Verbose] > │     | US0_1                                                                  │

00:01:08 #1558 [Verbose] > │     | US0_2                                                                  │

00:01:08 #1559 [Verbose] > │     | US0_3                                                                  │

00:01:08 #1560 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:08 #1561 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:08 #1562 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │

00:01:08 #1563 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │

00:01:08 #1564 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:08 #1565 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │

00:01:08 #1566 [Verbose] > │     v0.l0 <- v2                                                              │

00:01:08 #1567 [Verbose] > │     ()                                                                       │

00:01:08 #1568 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:08 #1569 [Verbose] > │     v0                                                                       │

00:01:08 #1570 [Verbose] > │ and method0 () : unit =                                                      │

00:01:08 #1571 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:08 #1572 [Verbose] > │     let v1 : System.IDisposable option = None                                │

00:01:08 #1573 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:08 #1574 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:08 #1575 [Verbose] > │     let v2 : US0 = US0_0                                                     │

00:01:08 #1576 [Verbose] > │     let v3 : US1 = US1_0(v2)                                                 │

00:01:08 #1577 [Verbose] > │     let v4 : string = $"new_disposable / target: {v3}"                       │

00:01:08 #1578 [Verbose] > │     let v5 : System.IDisposable = failwith<System.IDisposable> v4            │

00:01:08 #1579 [Verbose] > │     v5                                                                       │

00:01:08 #1580 [Verbose] > │     #endif                                                                   │

00:01:08 #1581 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:08 #1582 [Verbose] > │     let v6 : US0 = US0_2                                                     │

00:01:08 #1583 [Verbose] > │     let v7 : US1 = US1_0(v6)                                                 │

00:01:08 #1584 [Verbose] > │     let v8 : string = $"new_disposable / target: {v7}"                       │

00:01:08 #1585 [Verbose] > │     let v9 : System.IDisposable = failwith<System.IDisposable> v8            │

00:01:08 #1586 [Verbose] > │     v9                                                                       │

00:01:08 #1587 [Verbose] > │     #endif                                                                   │

00:01:08 #1588 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:08 #1589 [Verbose] > │     let v10 : US0 = US0_3                                                    │

00:01:08 #1590 [Verbose] > │     let v11 : US1 = US1_0(v10)                                               │

00:01:08 #1591 [Verbose] > │     let v12 : string = $"new_disposable / target: {v11}"                     │

00:01:08 #1592 [Verbose] > │     let v13 : System.IDisposable = failwith<System.IDisposable> v12          │

00:01:08 #1593 [Verbose] > │     v13                                                                      │

00:01:08 #1594 [Verbose] > │     #endif                                                                   │

00:01:08 #1595 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:08 #1596 [Verbose] > │     let v14 : (unit -> unit) = closure0(v0)                                  │

00:01:08 #1597 [Verbose] > │     let v15 : System.IDisposable = { new System.IDisposable with member      │

00:01:08 #1598 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:08 #1599 [Verbose] > │     v15                                                                      │

00:01:08 #1600 [Verbose] > │     #endif                                                                   │

00:01:08 #1601 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:08 #1602 [Verbose] > │     let v16 : System.IDisposable = { new System.IDisposable with member      │

00:01:08 #1603 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:08 #1604 [Verbose] > │     v16                                                                      │

00:01:08 #1605 [Verbose] > │     #endif                                                                   │

00:01:08 #1606 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:08 #1607 [Verbose] > │     let v17 : System.IDisposable = { new System.IDisposable with member      │

00:01:08 #1608 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:08 #1609 [Verbose] > │     v17                                                                      │

00:01:08 #1610 [Verbose] > │     #endif                                                                   │

00:01:08 #1611 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:08 #1612 [Verbose] > │     let v18 : System.IDisposable = _v1 |> Option.get                         │

00:01:08 #1613 [Verbose] > │     let v19 : (System.IDisposable -> unit) = _.Dispose()                     │

00:01:08 #1614 [Verbose] > │     v19 v18                                                                  │

00:01:08 #1615 [Verbose] > │     let v20 : int32 = v0.l0                                                  │

00:01:08 #1616 [Verbose] > │     let v21 : string = $"%A{v20}"                                            │

00:01:08 #1617 [Verbose] > │     System.Console.WriteLine v21                                             │

00:01:08 #1618 [Verbose] > │     let v22 : bool = v20 = 1                                                 │

00:01:08 #1619 [Verbose] > │     let v24 : bool =                                                         │

00:01:08 #1620 [Verbose] > │         if v22 then                                                          │

00:01:08 #1621 [Verbose] > │             true                                                             │

00:01:08 #1622 [Verbose] > │         else                                                                 │

00:01:08 #1623 [Verbose] > │             method1(v22)                                                     │

00:01:08 #1624 [Verbose] > │     let v25 : string = $"__expect / actual: %A{v20} / expected: %A{1}"       │

00:01:08 #1625 [Verbose] > │     let v26 : bool = v24 = false                                             │

00:01:08 #1626 [Verbose] > │     if v26 then                                                              │

00:01:08 #1627 [Verbose] > │         failwith<unit> v25                                                   │

00:01:08 #1628 [Verbose] > │ method0()                                                                    │

00:01:08 #1629 [Verbose] > │                                                                              │

00:01:08 #1630 [Verbose] > │ 1                                                                            │

00:01:08 #1631 [Verbose] > │                                                                              │

00:01:08 #1632 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:08 #1633 [Verbose] >

00:01:08 #1634 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:08 #1635 [Verbose] > // // test

00:01:08 #1636 [Verbose] >

00:01:08 #1637 [Verbose] > inl new_disposable_test = mut 0i32

00:01:08 #1638 [Verbose] > fun () =>

00:01:08 #1639 [Verbose] >     new_disposable fun () => new_disposable_test <- *new_disposable_test + 1

00:01:08 #1640 [Verbose] >     |> use_disposable

00:01:08 #1641 [Verbose] >     |> ignore

00:01:08 #1642 [Verbose] > |> async.new_task

00:01:08 #1643 [Verbose] > |> async.await_task

00:01:08 #1644 [Verbose] > |> async.run_synchronously

00:01:08 #1645 [Verbose] > *new_disposable_test |> _assert_eq 1

00:01:08 #1646 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4097-9717-90e2fda89387\main.spi

00:01:09 #1647 [Verbose] >

00:01:09 #1648 [Verbose] > ╭─[ 858.77ms - stdout ]────────────────────────────────────────────────────────╮

00:01:09 #1649 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:09 #1650 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:09 #1651 [Verbose] > │     | US0_0                                                                  │

00:01:09 #1652 [Verbose] > │     | US0_1                                                                  │

00:01:09 #1653 [Verbose] > │     | US0_2                                                                  │

00:01:09 #1654 [Verbose] > │     | US0_3                                                                  │

00:01:09 #1655 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:09 #1656 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:09 #1657 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │

00:01:09 #1658 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │

00:01:09 #1659 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:09 #1660 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │

00:01:09 #1661 [Verbose] > │     v0.l0 <- v2                                                              │

00:01:09 #1662 [Verbose] > │     ()                                                                       │

00:01:09 #1663 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:09 #1664 [Verbose] > │     v0                                                                       │

00:01:09 #1665 [Verbose] > │ and method0 () : unit =                                                      │

00:01:09 #1666 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:09 #1667 [Verbose] > │     let mutable result = None                                                │

00:01:09 #1668 [Verbose] > │     task {                                                                   │

00:01:09 #1669 [Verbose] > │     let v1 : System.IDisposable option = None                                │

00:01:09 #1670 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:09 #1671 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:09 #1672 [Verbose] > │     let v2 : US0 = US0_0                                                     │

00:01:09 #1673 [Verbose] > │     let v3 : US1 = US1_0(v2)                                                 │

00:01:09 #1674 [Verbose] > │     let v4 : string = $"new_disposable / target: {v3}"                       │

00:01:09 #1675 [Verbose] > │     let v5 : System.IDisposable = failwith<System.IDisposable> v4            │

00:01:09 #1676 [Verbose] > │     v5                                                                       │

00:01:09 #1677 [Verbose] > │     #endif                                                                   │

00:01:09 #1678 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:09 #1679 [Verbose] > │     let v6 : US0 = US0_2                                                     │

00:01:09 #1680 [Verbose] > │     let v7 : US1 = US1_0(v6)                                                 │

00:01:09 #1681 [Verbose] > │     let v8 : string = $"new_disposable / target: {v7}"                       │

00:01:09 #1682 [Verbose] > │     let v9 : System.IDisposable = failwith<System.IDisposable> v8            │

00:01:09 #1683 [Verbose] > │     v9                                                                       │

00:01:09 #1684 [Verbose] > │     #endif                                                                   │

00:01:09 #1685 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:09 #1686 [Verbose] > │     let v10 : US0 = US0_3                                                    │

00:01:09 #1687 [Verbose] > │     let v11 : US1 = US1_0(v10)                                               │

00:01:09 #1688 [Verbose] > │     let v12 : string = $"new_disposable / target: {v11}"                     │

00:01:09 #1689 [Verbose] > │     let v13 : System.IDisposable = failwith<System.IDisposable> v12          │

00:01:09 #1690 [Verbose] > │     v13                                                                      │

00:01:09 #1691 [Verbose] > │     #endif                                                                   │

00:01:09 #1692 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:09 #1693 [Verbose] > │     let v14 : (unit -> unit) = closure0(v0)                                  │

00:01:09 #1694 [Verbose] > │     let v15 : System.IDisposable = { new System.IDisposable with member      │

00:01:09 #1695 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:09 #1696 [Verbose] > │     v15                                                                      │

00:01:09 #1697 [Verbose] > │     #endif                                                                   │

00:01:09 #1698 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:09 #1699 [Verbose] > │     let v16 : System.IDisposable = { new System.IDisposable with member      │

00:01:09 #1700 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:09 #1701 [Verbose] > │     v16                                                                      │

00:01:09 #1702 [Verbose] > │     #endif                                                                   │

00:01:09 #1703 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:09 #1704 [Verbose] > │     let v17 : System.IDisposable = { new System.IDisposable with member      │

00:01:09 #1705 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:09 #1706 [Verbose] > │     v17                                                                      │

00:01:09 #1707 [Verbose] > │     #endif                                                                   │

00:01:09 #1708 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:09 #1709 [Verbose] > │     let v18 : System.IDisposable = _v1 |> Option.get                         │

00:01:09 #1710 [Verbose] > │     use v18 = v18                                                            │

00:01:09 #1711 [Verbose] > │     let v19 : System.IDisposable = v18                                       │

00:01:09 #1712 [Verbose] > │     return ()                                                                │

00:01:09 #1713 [Verbose] > │     }                                                                        │

00:01:09 #1714 [Verbose] > │     |> fun x -> result <- Some x                                             │

00:01:09 #1715 [Verbose] > │     let v20 : System.Threading.Tasks.Task<unit> = result |> Option.get       │

00:01:09 #1716 [Verbose] > │     let v21 : (System.Threading.Tasks.Task<unit> -> Async<unit>) =           │

00:01:09 #1717 [Verbose] > │ Async.AwaitTask                                                              │

00:01:09 #1718 [Verbose] > │     let v22 : Async<unit> = v21 v20                                          │

00:01:09 #1719 [Verbose] > │     let v23 : (Async<unit> -> unit) = Async.RunSynchronously                 │

00:01:09 #1720 [Verbose] > │     v23 v22                                                                  │

00:01:09 #1721 [Verbose] > │     let v24 : int32 = v0.l0                                                  │

00:01:09 #1722 [Verbose] > │     let v25 : string = $"%A{v24}"                                            │

00:01:09 #1723 [Verbose] > │     System.Console.WriteLine v25                                             │

00:01:09 #1724 [Verbose] > │     let v26 : bool = v24 = 1                                                 │

00:01:09 #1725 [Verbose] > │     let v28 : bool =                                                         │

00:01:09 #1726 [Verbose] > │         if v26 then                                                          │

00:01:09 #1727 [Verbose] > │             true                                                             │

00:01:09 #1728 [Verbose] > │         else                                                                 │

00:01:09 #1729 [Verbose] > │             method1(v26)                                                     │

00:01:09 #1730 [Verbose] > │     let v29 : string = $"__expect / actual: %A{v24} / expected: %A{1}"       │

00:01:09 #1731 [Verbose] > │     let v30 : bool = v28 = false                                             │

00:01:09 #1732 [Verbose] > │     if v30 then                                                              │

00:01:09 #1733 [Verbose] > │         failwith<unit> v29                                                   │

00:01:09 #1734 [Verbose] > │ method0()                                                                    │

00:01:09 #1735 [Verbose] > │                                                                              │

00:01:09 #1736 [Verbose] > │ 1                                                                            │

00:01:09 #1737 [Verbose] > │                                                                              │

00:01:09 #1738 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:09 #1739 [Verbose] >

00:01:09 #1740 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:09 #1741 [Verbose] > // // test

00:01:09 #1742 [Verbose] >

00:01:09 #1743 [Verbose] > inl new_disposable_test = mut 0i32

00:01:09 #1744 [Verbose] > fun () =>

00:01:09 #1745 [Verbose] >     new_disposable fun () => new_disposable_test <- *new_disposable_test + 1

00:01:09 #1746 [Verbose] >     |> use_disposable

00:01:09 #1747 [Verbose] >     |> ignore

00:01:09 #1748 [Verbose] > |> async.new_async

00:01:09 #1749 [Verbose] > |> async.run_synchronously

00:01:09 #1750 [Verbose] > *new_disposable_test |> _assert_eq 1

00:01:09 #1751 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4189-8925-8c9b35754fb1\main.spi

00:01:10 #1752 [Verbose] >

00:01:10 #1753 [Verbose] > ╭─[ 503.52ms - stdout ]────────────────────────────────────────────────────────╮

00:01:10 #1754 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:10 #1755 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:10 #1756 [Verbose] > │     | US0_0                                                                  │

00:01:10 #1757 [Verbose] > │     | US0_1                                                                  │

00:01:10 #1758 [Verbose] > │     | US0_2                                                                  │

00:01:10 #1759 [Verbose] > │     | US0_3                                                                  │

00:01:10 #1760 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:10 #1761 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:10 #1762 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │

00:01:10 #1763 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │

00:01:10 #1764 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:10 #1765 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │

00:01:10 #1766 [Verbose] > │     v0.l0 <- v2                                                              │

00:01:10 #1767 [Verbose] > │     ()                                                                       │

00:01:10 #1768 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:10 #1769 [Verbose] > │     v0                                                                       │

00:01:10 #1770 [Verbose] > │ and method0 () : unit =                                                      │

00:01:10 #1771 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:10 #1772 [Verbose] > │     let mutable result = None                                                │

00:01:10 #1773 [Verbose] > │     async {                                                                  │

00:01:10 #1774 [Verbose] > │     let v1 : System.IDisposable option = None                                │

00:01:10 #1775 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:10 #1776 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:10 #1777 [Verbose] > │     let v2 : US0 = US0_0                                                     │

00:01:10 #1778 [Verbose] > │     let v3 : US1 = US1_0(v2)                                                 │

00:01:10 #1779 [Verbose] > │     let v4 : string = $"new_disposable / target: {v3}"                       │

00:01:10 #1780 [Verbose] > │     let v5 : System.IDisposable = failwith<System.IDisposable> v4            │

00:01:10 #1781 [Verbose] > │     v5                                                                       │

00:01:10 #1782 [Verbose] > │     #endif                                                                   │

00:01:10 #1783 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:10 #1784 [Verbose] > │     let v6 : US0 = US0_2                                                     │

00:01:10 #1785 [Verbose] > │     let v7 : US1 = US1_0(v6)                                                 │

00:01:10 #1786 [Verbose] > │     let v8 : string = $"new_disposable / target: {v7}"                       │

00:01:10 #1787 [Verbose] > │     let v9 : System.IDisposable = failwith<System.IDisposable> v8            │

00:01:10 #1788 [Verbose] > │     v9                                                                       │

00:01:10 #1789 [Verbose] > │     #endif                                                                   │

00:01:10 #1790 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:10 #1791 [Verbose] > │     let v10 : US0 = US0_3                                                    │

00:01:10 #1792 [Verbose] > │     let v11 : US1 = US1_0(v10)                                               │

00:01:10 #1793 [Verbose] > │     let v12 : string = $"new_disposable / target: {v11}"                     │

00:01:10 #1794 [Verbose] > │     let v13 : System.IDisposable = failwith<System.IDisposable> v12          │

00:01:10 #1795 [Verbose] > │     v13                                                                      │

00:01:10 #1796 [Verbose] > │     #endif                                                                   │

00:01:10 #1797 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:10 #1798 [Verbose] > │     let v14 : (unit -> unit) = closure0(v0)                                  │

00:01:10 #1799 [Verbose] > │     let v15 : System.IDisposable = { new System.IDisposable with member      │

00:01:10 #1800 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:10 #1801 [Verbose] > │     v15                                                                      │

00:01:10 #1802 [Verbose] > │     #endif                                                                   │

00:01:10 #1803 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:10 #1804 [Verbose] > │     let v16 : System.IDisposable = { new System.IDisposable with member      │

00:01:10 #1805 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:10 #1806 [Verbose] > │     v16                                                                      │

00:01:10 #1807 [Verbose] > │     #endif                                                                   │

00:01:10 #1808 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:10 #1809 [Verbose] > │     let v17 : System.IDisposable = { new System.IDisposable with member      │

00:01:10 #1810 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:10 #1811 [Verbose] > │     v17                                                                      │

00:01:10 #1812 [Verbose] > │     #endif                                                                   │

00:01:10 #1813 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:10 #1814 [Verbose] > │     let v18 : System.IDisposable = _v1 |> Option.get                         │

00:01:10 #1815 [Verbose] > │     use v18 = v18                                                            │

00:01:10 #1816 [Verbose] > │     let v19 : System.IDisposable = v18                                       │

00:01:10 #1817 [Verbose] > │     return ()                                                                │

00:01:10 #1818 [Verbose] > │     }                                                                        │

00:01:10 #1819 [Verbose] > │     |> fun x -> result <- Some x                                             │

00:01:10 #1820 [Verbose] > │     let v20 : Async<unit> = result |> Option.get                             │

00:01:10 #1821 [Verbose] > │     let v21 : (Async<unit> -> unit) = Async.RunSynchronously                 │

00:01:10 #1822 [Verbose] > │     v21 v20                                                                  │

00:01:10 #1823 [Verbose] > │     let v22 : int32 = v0.l0                                                  │

00:01:10 #1824 [Verbose] > │     let v23 : string = $"%A{v22}"                                            │

00:01:10 #1825 [Verbose] > │     System.Console.WriteLine v23                                             │

00:01:10 #1826 [Verbose] > │     let v24 : bool = v22 = 1                                                 │

00:01:10 #1827 [Verbose] > │     let v26 : bool =                                                         │

00:01:10 #1828 [Verbose] > │         if v24 then                                                          │

00:01:10 #1829 [Verbose] > │             true                                                             │

00:01:10 #1830 [Verbose] > │         else                                                                 │

00:01:10 #1831 [Verbose] > │             method1(v24)                                                     │

00:01:10 #1832 [Verbose] > │     let v27 : string = $"__expect / actual: %A{v22} / expected: %A{1}"       │

00:01:10 #1833 [Verbose] > │     let v28 : bool = v26 = false                                             │

00:01:10 #1834 [Verbose] > │     if v28 then                                                              │

00:01:10 #1835 [Verbose] > │         failwith<unit> v27                                                   │

00:01:10 #1836 [Verbose] > │ method0()                                                                    │

00:01:10 #1837 [Verbose] > │                                                                              │

00:01:10 #1838 [Verbose] > │ 1                                                                            │

00:01:10 #1839 [Verbose] > │                                                                              │

00:01:10 #1840 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:10 #1841 [Verbose] >

00:01:10 #1842 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:10 #1843 [Verbose] > // // test

00:01:10 #1844 [Verbose] >

00:01:10 #1845 [Verbose] > inl new_disposable_test = mut 0i32

00:01:10 #1846 [Verbose] > fun () =>

00:01:10 #1847 [Verbose] >     new_disposable fun () => new_disposable_test <- *new_disposable_test + 1

00:01:10 #1848 [Verbose] >     |> ignore

00:01:10 #1849 [Verbose] > |> async.new_async

00:01:10 #1850 [Verbose] > |> async.run_synchronously

00:01:10 #1851 [Verbose] > *new_disposable_test |> _assert_eq 0

00:01:10 #1852 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4246-4644-43627188859b\main.spi

00:01:10 #1853 [Verbose] >

00:01:10 #1854 [Verbose] > ╭─[ 570.17ms - stdout ]────────────────────────────────────────────────────────╮

00:01:10 #1855 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:10 #1856 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:10 #1857 [Verbose] > │     | US0_0                                                                  │

00:01:10 #1858 [Verbose] > │     | US0_1                                                                  │

00:01:10 #1859 [Verbose] > │     | US0_2                                                                  │

00:01:10 #1860 [Verbose] > │     | US0_3                                                                  │

00:01:10 #1861 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:10 #1862 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:10 #1863 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │

00:01:10 #1864 [Verbose] > │ let rec closure0 (v0 : Mut0) () : unit =                                     │

00:01:10 #1865 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:10 #1866 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │

00:01:10 #1867 [Verbose] > │     v0.l0 <- v2                                                              │

00:01:10 #1868 [Verbose] > │     ()                                                                       │

00:01:10 #1869 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:10 #1870 [Verbose] > │     v0                                                                       │

00:01:10 #1871 [Verbose] > │ and method0 () : unit =                                                      │

00:01:10 #1872 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:10 #1873 [Verbose] > │     let mutable result = None                                                │

00:01:10 #1874 [Verbose] > │     async {                                                                  │

00:01:10 #1875 [Verbose] > │     let v1 : System.IDisposable option = None                                │

00:01:10 #1876 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:10 #1877 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:10 #1878 [Verbose] > │     let v2 : US0 = US0_0                                                     │

00:01:10 #1879 [Verbose] > │     let v3 : US1 = US1_0(v2)                                                 │

00:01:10 #1880 [Verbose] > │     let v4 : string = $"new_disposable / target: {v3}"                       │

00:01:10 #1881 [Verbose] > │     let v5 : System.IDisposable = failwith<System.IDisposable> v4            │

00:01:10 #1882 [Verbose] > │     v5                                                                       │

00:01:10 #1883 [Verbose] > │     #endif                                                                   │

00:01:10 #1884 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:10 #1885 [Verbose] > │     let v6 : US0 = US0_2                                                     │

00:01:10 #1886 [Verbose] > │     let v7 : US1 = US1_0(v6)                                                 │

00:01:10 #1887 [Verbose] > │     let v8 : string = $"new_disposable / target: {v7}"                       │

00:01:10 #1888 [Verbose] > │     let v9 : System.IDisposable = failwith<System.IDisposable> v8            │

00:01:10 #1889 [Verbose] > │     v9                                                                       │

00:01:10 #1890 [Verbose] > │     #endif                                                                   │

00:01:10 #1891 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:10 #1892 [Verbose] > │     let v10 : US0 = US0_3                                                    │

00:01:10 #1893 [Verbose] > │     let v11 : US1 = US1_0(v10)                                               │

00:01:10 #1894 [Verbose] > │     let v12 : string = $"new_disposable / target: {v11}"                     │

00:01:10 #1895 [Verbose] > │     let v13 : System.IDisposable = failwith<System.IDisposable> v12          │

00:01:10 #1896 [Verbose] > │     v13                                                                      │

00:01:10 #1897 [Verbose] > │     #endif                                                                   │

00:01:10 #1898 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:10 #1899 [Verbose] > │     let v14 : (unit -> unit) = closure0(v0)                                  │

00:01:10 #1900 [Verbose] > │     let v15 : System.IDisposable = { new System.IDisposable with member      │

00:01:10 #1901 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:10 #1902 [Verbose] > │     v15                                                                      │

00:01:10 #1903 [Verbose] > │     #endif                                                                   │

00:01:10 #1904 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:10 #1905 [Verbose] > │     let v16 : System.IDisposable = { new System.IDisposable with member      │

00:01:10 #1906 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:10 #1907 [Verbose] > │     v16                                                                      │

00:01:10 #1908 [Verbose] > │     #endif                                                                   │

00:01:10 #1909 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:10 #1910 [Verbose] > │     let v17 : System.IDisposable = { new System.IDisposable with member      │

00:01:10 #1911 [Verbose] > │ _.Dispose () = v14 () }                                                      │

00:01:10 #1912 [Verbose] > │     v17                                                                      │

00:01:10 #1913 [Verbose] > │     #endif                                                                   │

00:01:10 #1914 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:10 #1915 [Verbose] > │     let v18 : System.IDisposable = _v1 |> Option.get                         │

00:01:10 #1916 [Verbose] > │     return ()                                                                │

00:01:10 #1917 [Verbose] > │     }                                                                        │

00:01:10 #1918 [Verbose] > │     |> fun x -> result <- Some x                                             │

00:01:10 #1919 [Verbose] > │     let v19 : Async<unit> = result |> Option.get                             │

00:01:10 #1920 [Verbose] > │     let v20 : (Async<unit> -> unit) = Async.RunSynchronously                 │

00:01:10 #1921 [Verbose] > │     v20 v19                                                                  │

00:01:10 #1922 [Verbose] > │     let v21 : int32 = v0.l0                                                  │

00:01:10 #1923 [Verbose] > │     let v22 : string = $"%A{v21}"                                            │

00:01:10 #1924 [Verbose] > │     System.Console.WriteLine v22                                             │

00:01:10 #1925 [Verbose] > │     let v23 : bool = v21 = 0                                                 │

00:01:10 #1926 [Verbose] > │     let v25 : bool =                                                         │

00:01:10 #1927 [Verbose] > │         if v23 then                                                          │

00:01:10 #1928 [Verbose] > │             true                                                             │

00:01:10 #1929 [Verbose] > │         else                                                                 │

00:01:10 #1930 [Verbose] > │             method1(v23)                                                     │

00:01:10 #1931 [Verbose] > │     let v26 : string = $"__expect / actual: %A{v21} / expected: %A{0}"       │

00:01:10 #1932 [Verbose] > │     let v27 : bool = v25 = false                                             │

00:01:10 #1933 [Verbose] > │     if v27 then                                                              │

00:01:10 #1934 [Verbose] > │         failwith<unit> v26                                                   │

00:01:10 #1935 [Verbose] > │ method0()                                                                    │

00:01:10 #1936 [Verbose] > │                                                                              │

00:01:10 #1937 [Verbose] > │ 0                                                                            │

00:01:10 #1938 [Verbose] > │                                                                              │

00:01:10 #1939 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:10 #1940 [Verbose] >

00:01:10 #1941 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:10 #1942 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:10 #1943 [Verbose] > │ ## exn                                                                       │

00:01:10 #1944 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:10 #1945 [Verbose] >

00:01:10 #1946 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:10 #1947 [Verbose] > nominal exn = $"exn"

00:01:11 #1948 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4308-0886-074dfd396d6a\main.spi

00:01:11 #1949 [Verbose] >

00:01:11 #1950 [Verbose] > ╭─[ 584.00ms - stdout ]────────────────────────────────────────────────────────╮

00:01:11 #1951 [Verbose] > │ ()                                                                           │

00:01:11 #1952 [Verbose] > │                                                                              │

00:01:11 #1953 [Verbose] > │                                                                              │

00:01:11 #1954 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #1955 [Verbose] >

00:01:11 #1956 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:11 #1957 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:11 #1958 [Verbose] > │ ## try                                                                       │

00:01:11 #1959 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #1960 [Verbose] >

00:01:11 #1961 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:11 #1962 [Verbose] > inl try forall t. (fn : () -> t) (ex_fn : exn -> ()) : option t =

00:01:11 #1963 [Verbose] >     inl none = None : option t

00:01:11 #1964 [Verbose] >     inl some (s : t) = Some s

00:01:11 #1965 [Verbose] >     $'try !fn () |> !some with ex -> !ex_fn ex; !none '

00:01:11 #1966 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4367-6778-6408da12d6ec\main.spi

00:01:11 #1967 [Verbose] >

00:01:11 #1968 [Verbose] > ╭─[ 227.36ms - stdout ]────────────────────────────────────────────────────────╮

00:01:11 #1969 [Verbose] > │ ()                                                                           │

00:01:11 #1970 [Verbose] > │                                                                              │

00:01:11 #1971 [Verbose] > │                                                                              │

00:01:11 #1972 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #1973 [Verbose] >

00:01:11 #1974 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:11 #1975 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:11 #1976 [Verbose] > │ ## sleep                                                                     │

00:01:11 #1977 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #1978 [Verbose] >

00:01:11 #1979 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:11 #1980 [Verbose] > inl sleep (n : i32) : () =

00:01:11 #1981 [Verbose] >     run_target function

00:01:11 #1982 [Verbose] >         | Fsharp (Native) => fun () => $'System.Threading.Thread.Sleep' n

00:01:11 #1983 [Verbose] >         | _ => fun () => ()

00:01:11 #1984 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4391-9108-94db06f55eca\main.spi

00:01:11 #1985 [Verbose] >

00:01:11 #1986 [Verbose] > ╭─[ 192.90ms - stdout ]────────────────────────────────────────────────────────╮

00:01:11 #1987 [Verbose] > │ ()                                                                           │

00:01:11 #1988 [Verbose] > │                                                                              │

00:01:11 #1989 [Verbose] > │                                                                              │

00:01:11 #1990 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #1991 [Verbose] >

00:01:11 #1992 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:11 #1993 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:11 #1994 [Verbose] > │ ## retry_fn                                                                  │

00:01:11 #1995 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:11 #1996 [Verbose] >

00:01:11 #1997 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:11 #1998 [Verbose] > inl retry_fn forall t. retries (fn : () -> t) : option t =

00:01:11 #1999 [Verbose] >     let rec loop retry =

00:01:11 #2000 [Verbose] >         try

00:01:11 #2001 [Verbose] >             fun () =>

00:01:11 #2002 [Verbose] >                 if retry < retries

00:01:11 #2003 [Verbose] >                 then fn () |> Some

00:01:11 #2004 [Verbose] >                 else None

00:01:11 #2005 [Verbose] >             fun ex =>

00:01:11 #2006 [Verbose] >                 let getLocals () = $"retry: {retry} / ex: {ex |>

00:01:11 #2007 [Verbose] > SpiralSm.format_exception} / {getLocals ()}"

00:01:11 #2008 [Verbose] >                 // trace Warning (fun () => "retry_fn") getLocals

00:01:11 #2009 [Verbose] >                 sleep 1

00:01:11 #2010 [Verbose] >         |> function

00:01:11 #2011 [Verbose] >             | Some x => x

00:01:11 #2012 [Verbose] >             | None => loop (retry + 1)

00:01:11 #2013 [Verbose] >     loop 0

00:01:11 #2014 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4410-1081-133e9ab33dfb\main.spi

00:01:12 #2015 [Verbose] >

00:01:12 #2016 [Verbose] > ╭─[ 248.59ms - stdout ]────────────────────────────────────────────────────────╮

00:01:12 #2017 [Verbose] > │ ()                                                                           │

00:01:12 #2018 [Verbose] > │                                                                              │

00:01:12 #2019 [Verbose] > │                                                                              │

00:01:12 #2020 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:12 #2021 [Verbose] >

00:01:12 #2022 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:12 #2023 [Verbose] > // // test

00:01:12 #2024 [Verbose] >

00:01:12 #2025 [Verbose] > inl retry_fn_test = mut 0i32

00:01:12 #2026 [Verbose] > fun () =>

00:01:12 #2027 [Verbose] >     retry_fn_test <- *retry_fn_test + 1

00:01:12 #2028 [Verbose] >     *retry_fn_test

00:01:12 #2029 [Verbose] > |> retry_fn 3i32

00:01:12 #2030 [Verbose] > |> _assert_eq (Some 1i32)

00:01:12 #2031 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4435-3588-3f7693ef1a42\main.spi

00:01:12 #2032 [Verbose] >

00:01:12 #2033 [Verbose] > ╭─[ 324.74ms - stdout ]────────────────────────────────────────────────────────╮

00:01:12 #2034 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:12 #2035 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:12 #2036 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:01:12 #2037 [Verbose] > │     | US0_1                                                                  │

00:01:12 #2038 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:12 #2039 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:12 #2040 [Verbose] > │     | US1_1                                                                  │

00:01:12 #2041 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 =                          │

00:01:12 #2042 [Verbose] > │     let v2 : bool = v1 < 3                                                   │

00:01:12 #2043 [Verbose] > │     if v2 then                                                               │

00:01:12 #2044 [Verbose] > │         let v3 : int32 = v0.l0                                               │

00:01:12 #2045 [Verbose] > │         let v4 : int32 = v3 + 1                                              │

00:01:12 #2046 [Verbose] > │         v0.l0 <- v4                                                          │

00:01:12 #2047 [Verbose] > │         let v5 : int32 = v0.l0                                               │

00:01:12 #2048 [Verbose] > │         US0_0(v5)                                                            │

00:01:12 #2049 [Verbose] > │     else                                                                     │

00:01:12 #2050 [Verbose] > │         US0_1                                                                │

00:01:12 #2051 [Verbose] > │ and closure1 () (v0 : US0) : US1 =                                           │

00:01:12 #2052 [Verbose] > │     US1_0(v0)                                                                │

00:01:12 #2053 [Verbose] > │ and closure2 () (v0 : exn) : unit =                                          │

00:01:12 #2054 [Verbose] > │     let v1 : unit option = None                                              │

00:01:12 #2055 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:12 #2056 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:12 #2057 [Verbose] > │     ()                                                                       │

00:01:12 #2058 [Verbose] > │     #endif                                                                   │

00:01:12 #2059 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:12 #2060 [Verbose] > │     ()                                                                       │

00:01:12 #2061 [Verbose] > │     #endif                                                                   │

00:01:12 #2062 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:12 #2063 [Verbose] > │     ()                                                                       │

00:01:12 #2064 [Verbose] > │     #endif                                                                   │

00:01:12 #2065 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:12 #2066 [Verbose] > │     let v2 : (int32 -> unit) = System.Threading.Thread.Sleep                 │

00:01:12 #2067 [Verbose] > │     v2 1                                                                     │

00:01:12 #2068 [Verbose] > │     ()                                                                       │

00:01:12 #2069 [Verbose] > │     #endif                                                                   │

00:01:12 #2070 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:12 #2071 [Verbose] > │     ()                                                                       │

00:01:12 #2072 [Verbose] > │     #endif                                                                   │

00:01:12 #2073 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:12 #2074 [Verbose] > │     ()                                                                       │

00:01:12 #2075 [Verbose] > │     #endif                                                                   │

00:01:12 #2076 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:12 #2077 [Verbose] > │     _v1 |> Option.get                                                        │

00:01:12 #2078 [Verbose] > │     ()                                                                       │

00:01:12 #2079 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 =                                  │

00:01:12 #2080 [Verbose] > │     let v2 : (unit -> US0) = closure0(v0, v1)                                │

00:01:12 #2081 [Verbose] > │     let v3 : (US0 -> US1) = closure1()                                       │

00:01:12 #2082 [Verbose] > │     let v4 : (exn -> unit) = closure2()                                      │

00:01:12 #2083 [Verbose] > │     let v5 : US1 = US1_1                                                     │

00:01:12 #2084 [Verbose] > │     let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5                      │

00:01:12 #2085 [Verbose] > │     match v6 with                                                            │

00:01:12 #2086 [Verbose] > │     | US1_1 -> (* None *)                                                    │

00:01:12 #2087 [Verbose] > │         let v8 : int32 = v1 + 1                                              │

00:01:12 #2088 [Verbose] > │         method1(v0, v8)                                                      │

00:01:12 #2089 [Verbose] > │     | US1_0(v7) -> (* Some *)                                                │

00:01:12 #2090 [Verbose] > │         v7                                                                   │

00:01:12 #2091 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:01:12 #2092 [Verbose] > │     v0                                                                       │

00:01:12 #2093 [Verbose] > │ and method0 () : unit =                                                      │

00:01:12 #2094 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:12 #2095 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:12 #2096 [Verbose] > │     let v2 : US0 = method1(v0, v1)                                           │

00:01:12 #2097 [Verbose] > │     let v3 : string = $"%A{v2}"                                              │

00:01:12 #2098 [Verbose] > │     System.Console.WriteLine v3                                              │

00:01:12 #2099 [Verbose] > │     let v7 : bool =                                                          │

00:01:12 #2100 [Verbose] > │         match v2 with                                                        │

00:01:12 #2101 [Verbose] > │         | US0_0(v5) -> (* Some *)                                            │

00:01:12 #2102 [Verbose] > │             let v6 : bool = v5 = 1                                           │

00:01:12 #2103 [Verbose] > │             v6                                                               │

00:01:12 #2104 [Verbose] > │         | _ ->                                                               │

00:01:12 #2105 [Verbose] > │             false                                                            │

00:01:12 #2106 [Verbose] > │     let v9 : bool =                                                          │

00:01:12 #2107 [Verbose] > │         if v7 then                                                           │

00:01:12 #2108 [Verbose] > │             true                                                             │

00:01:12 #2109 [Verbose] > │         else                                                                 │

00:01:12 #2110 [Verbose] > │             method2(v7)                                                      │

00:01:12 #2111 [Verbose] > │     let v10 : US0 = US0_0(1)                                                 │

00:01:12 #2112 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}"      │

00:01:12 #2113 [Verbose] > │     let v12 : bool = v9 = false                                              │

00:01:12 #2114 [Verbose] > │     if v12 then                                                              │

00:01:12 #2115 [Verbose] > │         failwith<unit> v11                                                   │

00:01:12 #2116 [Verbose] > │ method0()                                                                    │

00:01:12 #2117 [Verbose] > │                                                                              │

00:01:12 #2118 [Verbose] > │ US0_0 1                                                                      │

00:01:12 #2119 [Verbose] > │                                                                              │

00:01:12 #2120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:12 #2121 [Verbose] >

00:01:12 #2122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:12 #2123 [Verbose] > // // test

00:01:12 #2124 [Verbose] >

00:01:12 #2125 [Verbose] > inl retry_fn_test = mut 0i32

00:01:12 #2126 [Verbose] > fun () =>

00:01:12 #2127 [Verbose] >     if *retry_fn_test >= 2

00:01:12 #2128 [Verbose] >     then *retry_fn_test

00:01:12 #2129 [Verbose] >     else

00:01:12 #2130 [Verbose] >         retry_fn_test <- *retry_fn_test + 1

00:01:12 #2131 [Verbose] >         failwith "test"

00:01:12 #2132 [Verbose] > |> retry_fn 3i32

00:01:12 #2133 [Verbose] > |> _assert_eq (Some 2i32)

00:01:12 #2134 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4473-7303-7e5f9064adf2\main.spi

00:01:12 #2135 [Verbose] >

00:01:12 #2136 [Verbose] > ╭─[ 356.63ms - stdout ]────────────────────────────────────────────────────────╮

00:01:12 #2137 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:12 #2138 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:12 #2139 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:01:12 #2140 [Verbose] > │     | US0_1                                                                  │

00:01:12 #2141 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:12 #2142 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:12 #2143 [Verbose] > │     | US1_1                                                                  │

00:01:12 #2144 [Verbose] > │ let rec closure0 (v0 : Mut0, v1 : int32) () : US0 =                          │

00:01:12 #2145 [Verbose] > │     let v2 : bool = v1 < 3                                                   │

00:01:12 #2146 [Verbose] > │     if v2 then                                                               │

00:01:12 #2147 [Verbose] > │         let v3 : int32 = v0.l0                                               │

00:01:12 #2148 [Verbose] > │         let v4 : bool = v3 >= 2                                              │

00:01:12 #2149 [Verbose] > │         let v9 : int32 =                                                     │

00:01:12 #2150 [Verbose] > │             if v4 then                                                       │

00:01:12 #2151 [Verbose] > │                 let v5 : int32 = v0.l0                                       │

00:01:12 #2152 [Verbose] > │                 v5                                                           │

00:01:12 #2153 [Verbose] > │             else                                                             │

00:01:12 #2154 [Verbose] > │                 let v6 : int32 = v0.l0                                       │

00:01:12 #2155 [Verbose] > │                 let v7 : int32 = v6 + 1                                      │

00:01:12 #2156 [Verbose] > │                 v0.l0 <- v7                                                  │

00:01:12 #2157 [Verbose] > │                 failwith<int32> "test"                                       │

00:01:12 #2158 [Verbose] > │         US0_0(v9)                                                            │

00:01:12 #2159 [Verbose] > │     else                                                                     │

00:01:12 #2160 [Verbose] > │         US0_1                                                                │

00:01:12 #2161 [Verbose] > │ and closure1 () (v0 : US0) : US1 =                                           │

00:01:12 #2162 [Verbose] > │     US1_0(v0)                                                                │

00:01:12 #2163 [Verbose] > │ and closure2 () (v0 : exn) : unit =                                          │

00:01:12 #2164 [Verbose] > │     let v1 : unit option = None                                              │

00:01:12 #2165 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:12 #2166 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:12 #2167 [Verbose] > │     ()                                                                       │

00:01:12 #2168 [Verbose] > │     #endif                                                                   │

00:01:12 #2169 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:12 #2170 [Verbose] > │     ()                                                                       │

00:01:12 #2171 [Verbose] > │     #endif                                                                   │

00:01:12 #2172 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:12 #2173 [Verbose] > │     ()                                                                       │

00:01:12 #2174 [Verbose] > │     #endif                                                                   │

00:01:12 #2175 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:12 #2176 [Verbose] > │     let v2 : (int32 -> unit) = System.Threading.Thread.Sleep                 │

00:01:12 #2177 [Verbose] > │     v2 1                                                                     │

00:01:12 #2178 [Verbose] > │     ()                                                                       │

00:01:12 #2179 [Verbose] > │     #endif                                                                   │

00:01:12 #2180 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:12 #2181 [Verbose] > │     ()                                                                       │

00:01:12 #2182 [Verbose] > │     #endif                                                                   │

00:01:12 #2183 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:12 #2184 [Verbose] > │     ()                                                                       │

00:01:12 #2185 [Verbose] > │     #endif                                                                   │

00:01:12 #2186 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:12 #2187 [Verbose] > │     _v1 |> Option.get                                                        │

00:01:12 #2188 [Verbose] > │     ()                                                                       │

00:01:12 #2189 [Verbose] > │ and method1 (v0 : Mut0, v1 : int32) : US0 =                                  │

00:01:12 #2190 [Verbose] > │     let v2 : (unit -> US0) = closure0(v0, v1)                                │

00:01:12 #2191 [Verbose] > │     let v3 : (US0 -> US1) = closure1()                                       │

00:01:12 #2192 [Verbose] > │     let v4 : (exn -> unit) = closure2()                                      │

00:01:12 #2193 [Verbose] > │     let v5 : US1 = US1_1                                                     │

00:01:12 #2194 [Verbose] > │     let v6 : US1 = try v2 () |> v3 with ex -> v4 ex; v5                      │

00:01:12 #2195 [Verbose] > │     match v6 with                                                            │

00:01:12 #2196 [Verbose] > │     | US1_1 -> (* None *)                                                    │

00:01:12 #2197 [Verbose] > │         let v8 : int32 = v1 + 1                                              │

00:01:12 #2198 [Verbose] > │         method1(v0, v8)                                                      │

00:01:12 #2199 [Verbose] > │     | US1_0(v7) -> (* Some *)                                                │

00:01:12 #2200 [Verbose] > │         v7                                                                   │

00:01:12 #2201 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:01:12 #2202 [Verbose] > │     v0                                                                       │

00:01:12 #2203 [Verbose] > │ and method0 () : unit =                                                      │

00:01:12 #2204 [Verbose] > │     let v0 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:12 #2205 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:12 #2206 [Verbose] > │     let v2 : US0 = method1(v0, v1)                                           │

00:01:12 #2207 [Verbose] > │     let v3 : string = $"%A{v2}"                                              │

00:01:12 #2208 [Verbose] > │     System.Console.WriteLine v3                                              │

00:01:12 #2209 [Verbose] > │     let v7 : bool =                                                          │

00:01:12 #2210 [Verbose] > │         match v2 with                                                        │

00:01:12 #2211 [Verbose] > │         | US0_0(v5) -> (* Some *)                                            │

00:01:12 #2212 [Verbose] > │             let v6 : bool = v5 = 2                                           │

00:01:12 #2213 [Verbose] > │             v6                                                               │

00:01:12 #2214 [Verbose] > │         | _ ->                                                               │

00:01:12 #2215 [Verbose] > │             false                                                            │

00:01:12 #2216 [Verbose] > │     let v9 : bool =                                                          │

00:01:12 #2217 [Verbose] > │         if v7 then                                                           │

00:01:12 #2218 [Verbose] > │             true                                                             │

00:01:12 #2219 [Verbose] > │         else                                                                 │

00:01:12 #2220 [Verbose] > │             method2(v7)                                                      │

00:01:12 #2221 [Verbose] > │     let v10 : US0 = US0_0(2)                                                 │

00:01:12 #2222 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v2} / expected: %A{v10}"      │

00:01:12 #2223 [Verbose] > │     let v12 : bool = v9 = false                                              │

00:01:12 #2224 [Verbose] > │     if v12 then                                                              │

00:01:12 #2225 [Verbose] > │         failwith<unit> v11                                                   │

00:01:12 #2226 [Verbose] > │ method0()                                                                    │

00:01:12 #2227 [Verbose] > │                                                                              │

00:01:12 #2228 [Verbose] > │ US0_0 2                                                                      │

00:01:12 #2229 [Verbose] > │                                                                              │

00:01:12 #2230 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:12 #2231 [Verbose] >

00:01:12 #2232 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:12 #2233 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:12 #2234 [Verbose] > │ ## main                                                                      │

00:01:12 #2235 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:12 #2236 [Verbose] >

00:01:12 #2237 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:12 #2238 [Verbose] > inl main () =

00:01:12 #2239 [Verbose] >     inl retry_fn (r : i32) (x : () -> _) : optionm'.option' () =

00:01:12 #2240 [Verbose] >         retry_fn r x |> optionm'.box

00:01:12 #2241 [Verbose] >     $"let new_disposable x = !new_disposable x" : ()

00:01:12 #2242 [Verbose] >     $"let retry_fn x = !retry_fn x" : ()

00:01:13 #2243 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-4514-1451-16a04e6683b4\main.spi

00:01:13 #2244 [Verbose] >

00:01:13 #2245 [Verbose] > ╭─[ 383.56ms - stdout ]────────────────────────────────────────────────────────╮

00:01:13 #2246 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:01:13 #2247 [Verbose] > │     | US0_0                                                                  │

00:01:13 #2248 [Verbose] > │     | US0_1                                                                  │

00:01:13 #2249 [Verbose] > │     | US0_2                                                                  │

00:01:13 #2250 [Verbose] > │     | US0_3                                                                  │

00:01:13 #2251 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:13 #2252 [Verbose] > │     | US1_0 of f0_0 : US0                                                    │

00:01:13 #2253 [Verbose] > │     | US1_1 of f1_0 : US0                                                    │

00:01:13 #2254 [Verbose] > │ and [<Struct>] US2 =                                                         │

00:01:13 #2255 [Verbose] > │     | US2_0                                                                  │

00:01:13 #2256 [Verbose] > │     | US2_1                                                                  │

00:01:13 #2257 [Verbose] > │ and [<Struct>] US3 =                                                         │

00:01:13 #2258 [Verbose] > │     | US3_0 of f0_0 : US2                                                    │

00:01:13 #2259 [Verbose] > │     | US3_1                                                                  │

00:01:13 #2260 [Verbose] > │ let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =             │

00:01:13 #2261 [Verbose] > │     let v1 : System.IDisposable option = None                                │

00:01:13 #2262 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:13 #2263 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:13 #2264 [Verbose] > │     let v2 : US0 = US0_0                                                     │

00:01:13 #2265 [Verbose] > │     let v3 : US1 = US1_0(v2)                                                 │

00:01:13 #2266 [Verbose] > │     let v4 : string = $"new_disposable / target: {v3}"                       │

00:01:13 #2267 [Verbose] > │     let v5 : System.IDisposable = failwith<System.IDisposable> v4            │

00:01:13 #2268 [Verbose] > │     v5                                                                       │

00:01:13 #2269 [Verbose] > │     #endif                                                                   │

00:01:13 #2270 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:13 #2271 [Verbose] > │     let v6 : US0 = US0_2                                                     │

00:01:13 #2272 [Verbose] > │     let v7 : US1 = US1_0(v6)                                                 │

00:01:13 #2273 [Verbose] > │     let v8 : string = $"new_disposable / target: {v7}"                       │

00:01:13 #2274 [Verbose] > │     let v9 : System.IDisposable = failwith<System.IDisposable> v8            │

00:01:13 #2275 [Verbose] > │     v9                                                                       │

00:01:13 #2276 [Verbose] > │     #endif                                                                   │

00:01:13 #2277 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:13 #2278 [Verbose] > │     let v10 : US0 = US0_3                                                    │

00:01:13 #2279 [Verbose] > │     let v11 : US1 = US1_0(v10)                                               │

00:01:13 #2280 [Verbose] > │     let v12 : string = $"new_disposable / target: {v11}"                     │

00:01:13 #2281 [Verbose] > │     let v13 : System.IDisposable = failwith<System.IDisposable> v12          │

00:01:13 #2282 [Verbose] > │     v13                                                                      │

00:01:13 #2283 [Verbose] > │     #endif                                                                   │

00:01:13 #2284 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:13 #2285 [Verbose] > │     let v14 : System.IDisposable = { new System.IDisposable with member      │

00:01:13 #2286 [Verbose] > │ _.Dispose () = v0 () }                                                       │

00:01:13 #2287 [Verbose] > │     v14                                                                      │

00:01:13 #2288 [Verbose] > │     #endif                                                                   │

00:01:13 #2289 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:13 #2290 [Verbose] > │     let v15 : System.IDisposable = { new System.IDisposable with member      │

00:01:13 #2291 [Verbose] > │ _.Dispose () = v0 () }                                                       │

00:01:13 #2292 [Verbose] > │     v15                                                                      │

00:01:13 #2293 [Verbose] > │     #endif                                                                   │

00:01:13 #2294 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:13 #2295 [Verbose] > │     let v16 : System.IDisposable = { new System.IDisposable with member      │

00:01:13 #2296 [Verbose] > │ _.Dispose () = v0 () }                                                       │

00:01:13 #2297 [Verbose] > │     v16                                                                      │

00:01:13 #2298 [Verbose] > │     #endif                                                                   │

00:01:13 #2299 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:13 #2300 [Verbose] > │     let v17 : System.IDisposable = _v1 |> Option.get                         │

00:01:13 #2301 [Verbose] > │     v17                                                                      │

00:01:13 #2302 [Verbose] > │ and closure3 (v0 : int32, v1 : (unit -> unit), v2 : int32) () : US2 =        │

00:01:13 #2303 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:13 #2304 [Verbose] > │     if v3 then                                                               │

00:01:13 #2305 [Verbose] > │         v1 ()                                                                │

00:01:13 #2306 [Verbose] > │         US2_0                                                                │

00:01:13 #2307 [Verbose] > │     else                                                                     │

00:01:13 #2308 [Verbose] > │         US2_1                                                                │

00:01:13 #2309 [Verbose] > │ and closure4 () (v0 : US2) : US3 =                                           │

00:01:13 #2310 [Verbose] > │     US3_0(v0)                                                                │

00:01:13 #2311 [Verbose] > │ and closure5 () (v0 : exn) : unit =                                          │

00:01:13 #2312 [Verbose] > │     let v1 : unit option = None                                              │

00:01:13 #2313 [Verbose] > │     let mutable _v1 = v1                                                     │

00:01:13 #2314 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:13 #2315 [Verbose] > │     ()                                                                       │

00:01:13 #2316 [Verbose] > │     #endif                                                                   │

00:01:13 #2317 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:13 #2318 [Verbose] > │     ()                                                                       │

00:01:13 #2319 [Verbose] > │     #endif                                                                   │

00:01:13 #2320 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:13 #2321 [Verbose] > │     ()                                                                       │

00:01:13 #2322 [Verbose] > │     #endif                                                                   │

00:01:13 #2323 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:13 #2324 [Verbose] > │     let v2 : (int32 -> unit) = System.Threading.Thread.Sleep                 │

00:01:13 #2325 [Verbose] > │     v2 1                                                                     │

00:01:13 #2326 [Verbose] > │     ()                                                                       │

00:01:13 #2327 [Verbose] > │     #endif                                                                   │

00:01:13 #2328 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:13 #2329 [Verbose] > │     ()                                                                       │

00:01:13 #2330 [Verbose] > │     #endif                                                                   │

00:01:13 #2331 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:13 #2332 [Verbose] > │     ()                                                                       │

00:01:13 #2333 [Verbose] > │     #endif                                                                   │

00:01:13 #2334 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:01:13 #2335 [Verbose] > │     _v1 |> Option.get                                                        │

00:01:13 #2336 [Verbose] > │     ()                                                                       │

00:01:13 #2337 [Verbose] > │ and method0 (v0 : int32, v1 : (unit -> unit), v2 : int32) : US2 =            │

00:01:13 #2338 [Verbose] > │     let v3 : (unit -> US2) = closure3(v0, v1, v2)                            │

00:01:13 #2339 [Verbose] > │     let v4 : (US2 -> US3) = closure4()                                       │

00:01:13 #2340 [Verbose] > │     let v5 : (exn -> unit) = closure5()                                      │

00:01:13 #2341 [Verbose] > │     let v6 : US3 = US3_1                                                     │

00:01:13 #2342 [Verbose] > │     let v7 : US3 = try v3 () |> v4 with ex -> v5 ex; v6                      │

00:01:13 #2343 [Verbose] > │     match v7 with                                                            │

00:01:13 #2344 [Verbose] > │     | US3_1 -> (* None *)                                                    │

00:01:13 #2345 [Verbose] > │         let v9 : int32 = v2 + 1                                              │

00:01:13 #2346 [Verbose] > │         method0(v0, v1, v9)                                                  │

00:01:13 #2347 [Verbose] > │     | US3_0(v8) -> (* Some *)                                                │

00:01:13 #2348 [Verbose] > │         v8                                                                   │

00:01:13 #2349 [Verbose] > │ and closure2 (v0 : int32) (v1 : (unit -> unit)) : unit option =              │

00:01:13 #2350 [Verbose] > │     let v2 : int32 = 0                                                       │

00:01:13 #2351 [Verbose] > │     let v3 : US2 = method0(v0, v1, v2)                                       │

00:01:13 #2352 [Verbose] > │     match v3 with                                                            │

00:01:13 #2353 [Verbose] > │     | US2_1 -> (* None *)                                                    │

00:01:13 #2354 [Verbose] > │         let v5 : unit option = None                                          │

00:01:13 #2355 [Verbose] > │         v5                                                                   │

00:01:13 #2356 [Verbose] > │     | US2_0 -> (* Some *)                                                    │

00:01:13 #2357 [Verbose] > │         let v4 : unit option = Some ()                                       │

00:01:13 #2358 [Verbose] > │         v4                                                                   │

00:01:13 #2359 [Verbose] > │ and closure1 () (v0 : int32) : ((unit -> unit) -> unit option) =             │

00:01:13 #2360 [Verbose] > │     closure2(v0)                                                             │

00:01:13 #2361 [Verbose] > │ let v0 : ((unit -> unit) -> System.IDisposable) = closure0()                 │

00:01:13 #2362 [Verbose] > │ let new_disposable x = v0 x                                                  │

00:01:13 #2363 [Verbose] > │ let v1 : (int32 -> ((unit -> unit) -> unit option)) = closure1()             │

00:01:13 #2364 [Verbose] > │ let retry_fn x = v1 x                                                        │

00:01:13 #2365 [Verbose] > │ ()                                                                           │

00:01:13 #2366 [Verbose] > │                                                                              │

00:01:13 #2367 [Verbose] > │                                                                              │

00:01:13 #2368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:15 #2369 [Verbose] > [NbConvertApp] Converting notebook common.dib.ipynb to html

00:01:15 #2370 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:01:15 #2371 [Verbose] >   validate(nb)

00:01:16 #2372 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:01:16 #2373 [Verbose] >   return _pygments_highlight(

00:01:16 #2374 [Verbose] > [NbConvertApp] Writing 420165 bytes to common.dib.html

00:01:17 #2375 [Debug] executeAsync / exitCode: 0 / output.Length: 132258

00:01:17 #2376 [Debug] main / executeCommand / exitCode: 0

00:01:17 #2377 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 console.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:01:20 #2378 [Verbose] >

00:01:20 #2379 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:20 #2380 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:20 #2381 [Verbose] > │ # console                                                                    │

00:01:20 #2382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:20 #2383 [Verbose] >

00:01:20 #2384 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:20 #2385 [Verbose] > // // test

00:01:20 #2386 [Verbose] >

00:01:20 #2387 [Verbose] > open testing

00:01:24 #2388 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5579-7986-77fa09684f42\main.spi

00:01:25 #2389 [Verbose] >

00:01:25 #2390 [Verbose] > ╭─[ 4.65s - stdout ]───────────────────────────────────────────────────────────╮

00:01:25 #2391 [Verbose] > │ ()                                                                           │

00:01:25 #2392 [Verbose] > │                                                                              │

00:01:25 #2393 [Verbose] > │                                                                              │

00:01:25 #2394 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:25 #2395 [Verbose] >

00:01:25 #2396 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:25 #2397 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:25 #2398 [Verbose] > │ ## write_line                                                                │

00:01:25 #2399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:25 #2400 [Verbose] >

00:01:25 #2401 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:25 #2402 [Verbose] > inl write_line obj : () =

00:01:25 #2403 [Verbose] >     $"System.Console.WriteLine !obj"

00:01:25 #2404 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5762-6274-691734be8360\main.spi

00:01:25 #2405 [Verbose] >

00:01:25 #2406 [Verbose] > ╭─[ 222.59ms - stdout ]────────────────────────────────────────────────────────╮

00:01:25 #2407 [Verbose] > │ ()                                                                           │

00:01:25 #2408 [Verbose] > │                                                                              │

00:01:25 #2409 [Verbose] > │                                                                              │

00:01:25 #2410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:25 #2411 [Verbose] >

00:01:25 #2412 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:25 #2413 [Verbose] > inl write_line_ ~obj : () =

00:01:25 #2414 [Verbose] >     $"System.Console.WriteLine !obj"

00:01:25 #2415 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5784-8465-8436e7d25500\main.spi

00:01:25 #2416 [Verbose] >

00:01:25 #2417 [Verbose] > ╭─[ 211.97ms - stdout ]────────────────────────────────────────────────────────╮

00:01:25 #2418 [Verbose] > │ ()                                                                           │

00:01:25 #2419 [Verbose] > │                                                                              │

00:01:25 #2420 [Verbose] > │                                                                              │

00:01:25 #2421 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:25 #2422 [Verbose] >

00:01:25 #2423 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:25 #2424 [Verbose] > nominal console_color = $"System.ConsoleColor"

00:01:25 #2425 [Verbose] >

00:01:25 #2426 [Verbose] > inl reset_color () : () =

00:01:25 #2427 [Verbose] >     run_target function

00:01:25 #2428 [Verbose] >         | Fsharp => fun () => $"System.Console.ResetColor ()"

00:01:25 #2429 [Verbose] >         | _ => fun () => ()

00:01:25 #2430 [Verbose] >

00:01:25 #2431 [Verbose] > inl set_foreground_color (color : console_color) : () =

00:01:25 #2432 [Verbose] >     run_target function

00:01:25 #2433 [Verbose] >         | Fsharp => fun () => $"System.Console.ForegroundColor <- !color"

00:01:25 #2434 [Verbose] >         | _ => fun () => ()

00:01:25 #2435 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1250-5806-0612-0404de901d19\main.spi

00:01:25 #2436 [Verbose] >

00:01:25 #2437 [Verbose] > ╭─[ 203.44ms - stdout ]────────────────────────────────────────────────────────╮

00:01:25 #2438 [Verbose] > │ ()                                                                           │

00:01:25 #2439 [Verbose] > │                                                                              │

00:01:25 #2440 [Verbose] > │                                                                              │

00:01:25 #2441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:28 #2442 [Verbose] > [NbConvertApp] Converting notebook console.dib.ipynb to html

00:01:28 #2443 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:01:28 #2444 [Verbose] >   validate(nb)

00:01:28 #2445 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:01:28 #2446 [Verbose] >   return _pygments_highlight(

00:01:29 #2447 [Verbose] > [NbConvertApp] Writing 276933 bytes to console.dib.html

00:01:30 #2448 [Debug] executeAsync / exitCode: 0 / output.Length: 3869

00:01:30 #2449 [Debug] main / executeCommand / exitCode: 0

00:01:30 #2450 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 date_time.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:01:33 #2451 [Verbose] >

00:01:33 #2452 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:33 #2453 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:33 #2454 [Verbose] > │ # date_time                                                                  │

00:01:33 #2455 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:33 #2456 [Verbose] >

00:01:33 #2457 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:33 #2458 [Verbose] > open rust_operators

00:01:33 #2459 [Verbose] > open sm'_operators

00:01:36 #2460 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-0801-0124-08a06a5af62c\main.spi

00:01:37 #2461 [Verbose] >

00:01:37 #2462 [Verbose] > ╭─[ 4.36s - stdout ]───────────────────────────────────────────────────────────╮

00:01:37 #2463 [Verbose] > │ ()                                                                           │

00:01:37 #2464 [Verbose] > │                                                                              │

00:01:37 #2465 [Verbose] > │                                                                              │

00:01:37 #2466 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #2467 [Verbose] >

00:01:37 #2468 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:37 #2469 [Verbose] > // // test

00:01:37 #2470 [Verbose] >

00:01:37 #2471 [Verbose] > open testing

00:01:37 #2472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-0975-7573-75e6957ddda2\main.spi

00:01:37 #2473 [Verbose] >

00:01:37 #2474 [Verbose] > ╭─[ 215.49ms - stdout ]────────────────────────────────────────────────────────╮

00:01:37 #2475 [Verbose] > │ ()                                                                           │

00:01:37 #2476 [Verbose] > │                                                                              │

00:01:37 #2477 [Verbose] > │                                                                              │

00:01:37 #2478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #2479 [Verbose] >

00:01:37 #2480 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:37 #2481 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:37 #2482 [Verbose] > │ ## types                                                                     │

00:01:37 #2483 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #2484 [Verbose] >

00:01:37 #2485 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:37 #2486 [Verbose] > inl types () =

00:01:37 #2487 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::DateTime<$0>\")>]]

00:01:37 #2488 [Verbose] > type chrono_DateTime<'T> = class end"

00:01:37 #2489 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Local\")>]] type

00:01:37 #2490 [Verbose] > chrono_Local = class end"

00:01:37 #2491 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::NaiveDateTime\")>]]

00:01:37 #2492 [Verbose] > type chrono_NaiveDateTime = class end"

00:01:37 #2493 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"chrono::Utc\")>]] type

00:01:37 #2494 [Verbose] > chrono_Utc = class end"

00:01:37 #2495 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::time::Duration\")>]]

00:01:37 #2496 [Verbose] > type std_time_Duration = class end"

00:01:37 #2497 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-0997-9787-90ddf760d615\main.spi

00:01:37 #2498 [Verbose] >

00:01:37 #2499 [Verbose] > ╭─[ 196.73ms - stdout ]────────────────────────────────────────────────────────╮

00:01:37 #2500 [Verbose] > │ ()                                                                           │

00:01:37 #2501 [Verbose] > │                                                                              │

00:01:37 #2502 [Verbose] > │                                                                              │

00:01:37 #2503 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #2504 [Verbose] >

00:01:37 #2505 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:37 #2506 [Verbose] > nominal timestamp = i64

00:01:37 #2507 [Verbose] > nominal duration = $"std_time_Duration"

00:01:37 #2508 [Verbose] > nominal date_time = $"System.DateTime"

00:01:37 #2509 [Verbose] > nominal date_time' t = $"chrono_DateTime<`t>"

00:01:37 #2510 [Verbose] > nominal local = $"chrono_Local"

00:01:37 #2511 [Verbose] > nominal naive_date_time = $"chrono_NaiveDateTime"

00:01:37 #2512 [Verbose] > nominal utc = $"chrono_Utc"

00:01:38 #2513 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1017-1748-142abdb69cb4\main.spi

00:01:38 #2514 [Verbose] >

00:01:38 #2515 [Verbose] > ╭─[ 196.84ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #2516 [Verbose] > │ ()                                                                           │

00:01:38 #2517 [Verbose] > │                                                                              │

00:01:38 #2518 [Verbose] > │                                                                              │

00:01:38 #2519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2520 [Verbose] >

00:01:38 #2521 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #2522 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #2523 [Verbose] > │ ## naive_utc                                                                 │

00:01:38 #2524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2525 [Verbose] >

00:01:38 #2526 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #2527 [Verbose] > inl naive_utc (date_time : date_time' utc) : naive_date_time =

00:01:38 #2528 [Verbose] >     inl date_time = join date_time

00:01:38 #2529 [Verbose] >     !\($'"!date_time.naive_utc()"')

00:01:38 #2530 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1037-3752-39051336dc14\main.spi

00:01:38 #2531 [Verbose] >

00:01:38 #2532 [Verbose] > ╭─[ 215.32ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #2533 [Verbose] > │ ()                                                                           │

00:01:38 #2534 [Verbose] > │                                                                              │

00:01:38 #2535 [Verbose] > │                                                                              │

00:01:38 #2536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2537 [Verbose] >

00:01:38 #2538 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #2539 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #2540 [Verbose] > │ ## to_local                                                                  │

00:01:38 #2541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2542 [Verbose] >

00:01:38 #2543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #2544 [Verbose] > inl to_local (date_time : date_time' utc) : date_time' local =

00:01:38 #2545 [Verbose] >     inl naive_date_time = date_time |> naive_utc

00:01:38 #2546 [Verbose] >     !\($'"chrono::offset::TimeZone::from_utc_datetime(&chrono::Local,

00:01:38 #2547 [Verbose] > &!naive_date_time)"')

00:01:38 #2548 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1060-6013-66ebc226294d\main.spi

00:01:38 #2549 [Verbose] >

00:01:38 #2550 [Verbose] > ╭─[ 215.03ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #2551 [Verbose] > │ ()                                                                           │

00:01:38 #2552 [Verbose] > │                                                                              │

00:01:38 #2553 [Verbose] > │                                                                              │

00:01:38 #2554 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2555 [Verbose] >

00:01:38 #2556 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #2557 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #2558 [Verbose] > │ ## from_timestamp'                                                           │

00:01:38 #2559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2560 [Verbose] >

00:01:38 #2561 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #2562 [Verbose] > inl from_timestamp' forall t {number; int}. (timestamp : t) : option (date_time'

00:01:38 #2563 [Verbose] > utc) =

00:01:38 #2564 [Verbose] >     inl timestamp = join timestamp

00:01:38 #2565 [Verbose] >     inl result : optionm'.option' (date_time' utc) =

00:01:38 #2566 [Verbose] >         !\($'"chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)"')

00:01:38 #2567 [Verbose] >     result |> optionm'.unbox

00:01:38 #2568 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1082-8214-8b4bb9a76fbd\main.spi

00:01:38 #2569 [Verbose] >

00:01:38 #2570 [Verbose] > ╭─[ 194.22ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #2571 [Verbose] > │ ()                                                                           │

00:01:38 #2572 [Verbose] > │                                                                              │

00:01:38 #2573 [Verbose] > │                                                                              │

00:01:38 #2574 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2575 [Verbose] >

00:01:38 #2576 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #2577 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #2578 [Verbose] > │ ## ticks                                                                     │

00:01:38 #2579 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2580 [Verbose] >

00:01:38 #2581 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #2582 [Verbose] > inl ticks (date_time : date_time) : timestamp =

00:01:38 #2583 [Verbose] >     date_time |> $'_.Ticks'

00:01:38 #2584 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1101-0169-04c236565409\main.spi

00:01:38 #2585 [Verbose] >

00:01:38 #2586 [Verbose] > ╭─[ 218.13ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #2587 [Verbose] > │ ()                                                                           │

00:01:38 #2588 [Verbose] > │                                                                              │

00:01:38 #2589 [Verbose] > │                                                                              │

00:01:38 #2590 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2591 [Verbose] >

00:01:38 #2592 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #2593 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #2594 [Verbose] > │ ## format                                                                    │

00:01:38 #2595 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #2596 [Verbose] >

00:01:38 #2597 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #2598 [Verbose] > inl format (format : string) (date_time : date_time) : string =

00:01:38 #2599 [Verbose] >     $'!date_time.ToString' format

00:01:39 #2600 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1124-2411-23d201c5ccdb\main.spi

00:01:39 #2601 [Verbose] >

00:01:39 #2602 [Verbose] > ╭─[ 276.17ms - stdout ]────────────────────────────────────────────────────────╮

00:01:39 #2603 [Verbose] > │ ()                                                                           │

00:01:39 #2604 [Verbose] > │                                                                              │

00:01:39 #2605 [Verbose] > │                                                                              │

00:01:39 #2606 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #2607 [Verbose] >

00:01:39 #2608 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:39 #2609 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:39 #2610 [Verbose] > │ ## format_iso8601                                                            │

00:01:39 #2611 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #2612 [Verbose] >

00:01:39 #2613 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:39 #2614 [Verbose] > inl format_iso8601 (date_time : date_time) =

00:01:39 #2615 [Verbose] >     date_time |> format "yyyy-MM-ddTHH-mm-ss.fff"

00:01:39 #2616 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1152-5262-545db3ae78e2\main.spi

00:01:39 #2617 [Verbose] >

00:01:39 #2618 [Verbose] > ╭─[ 259.82ms - stdout ]────────────────────────────────────────────────────────╮

00:01:39 #2619 [Verbose] > │ ()                                                                           │

00:01:39 #2620 [Verbose] > │                                                                              │

00:01:39 #2621 [Verbose] > │                                                                              │

00:01:39 #2622 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #2623 [Verbose] >

00:01:39 #2624 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:39 #2625 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:39 #2626 [Verbose] > │ ## format'                                                                   │

00:01:39 #2627 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #2628 [Verbose] >

00:01:39 #2629 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:39 #2630 [Verbose] > inl format' (format : string) (date_time : date_time' utc) : sm'.std_string =

00:01:39 #2631 [Verbose] >     inl format = #format

00:01:39 #2632 [Verbose] >     inl date_time = join date_time

00:01:39 #2633 [Verbose] >     !\($'"!date_time.format(!format).to_string()"')

00:01:39 #2634 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1179-7918-7e9c5c60055f\main.spi

00:01:39 #2635 [Verbose] >

00:01:39 #2636 [Verbose] > ╭─[ 259.14ms - stdout ]────────────────────────────────────────────────────────╮

00:01:39 #2637 [Verbose] > │ ()                                                                           │

00:01:39 #2638 [Verbose] > │                                                                              │

00:01:39 #2639 [Verbose] > │                                                                              │

00:01:39 #2640 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #2641 [Verbose] >

00:01:39 #2642 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:39 #2643 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:39 #2644 [Verbose] > │ ## format''                                                                  │

00:01:39 #2645 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #2646 [Verbose] >

00:01:39 #2647 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:39 #2648 [Verbose] > inl format'' (format : string) (date_time : date_time' _) : sm'.std_string =

00:01:39 #2649 [Verbose] >     inl format = #format

00:01:39 #2650 [Verbose] >     inl date_time = join date_time

00:01:39 #2651 [Verbose] >     !\($'"!date_time.format(!format).to_string()"')

00:01:39 #2652 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1205-0575-098bb32612c8\main.spi

00:01:40 #2653 [Verbose] >

00:01:40 #2654 [Verbose] > ╭─[ 265.34ms - stdout ]────────────────────────────────────────────────────────╮

00:01:40 #2655 [Verbose] > │ ()                                                                           │

00:01:40 #2656 [Verbose] > │                                                                              │

00:01:40 #2657 [Verbose] > │                                                                              │

00:01:40 #2658 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #2659 [Verbose] >

00:01:40 #2660 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:40 #2661 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:40 #2662 [Verbose] > │ ## format_timestamp                                                          │

00:01:40 #2663 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #2664 [Verbose] >

00:01:40 #2665 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:40 #2666 [Verbose] > inl format_timestamp (timestamp : sm'.std_string) =

00:01:40 #2667 [Verbose] >     inl timestamp = join timestamp

00:01:40 #2668 [Verbose] >     timestamp

00:01:40 #2669 [Verbose] >     |> fun x => !\($'"!x.parse().unwrap()"') : i64

00:01:40 #2670 [Verbose] >     |> from_timestamp'

00:01:40 #2671 [Verbose] >     |> optionm.map fun x =>

00:01:40 #2672 [Verbose] >         x

00:01:40 #2673 [Verbose] >         |> to_local

00:01:40 #2674 [Verbose] >         |> format'' "%Y-%m-%d %H:%M:%S"

00:01:40 #2675 [Verbose] >         |> sm'.from_std_string

00:01:40 #2676 [Verbose] >     |> resultm.from_option

00:01:40 #2677 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1232-3295-3613fa2321cd\main.spi

00:01:40 #2678 [Verbose] >

00:01:40 #2679 [Verbose] > ╭─[ 300.57ms - stdout ]────────────────────────────────────────────────────────╮

00:01:40 #2680 [Verbose] > │ ()                                                                           │

00:01:40 #2681 [Verbose] > │                                                                              │

00:01:40 #2682 [Verbose] > │                                                                              │

00:01:40 #2683 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #2684 [Verbose] >

00:01:40 #2685 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:40 #2686 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:40 #2687 [Verbose] > │ ## duration_from_millis                                                      │

00:01:40 #2688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #2689 [Verbose] >

00:01:40 #2690 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:40 #2691 [Verbose] > inl duration_from_millis (ms : u64) : duration =

00:01:40 #2692 [Verbose] >     inl ms = join ms

00:01:40 #2693 [Verbose] >     !\($'"std::time::Duration::from_millis(!ms)"')

00:01:40 #2694 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1263-6378-6520ff84944a\main.spi

00:01:40 #2695 [Verbose] >

00:01:40 #2696 [Verbose] > ╭─[ 352.28ms - stdout ]────────────────────────────────────────────────────────╮

00:01:40 #2697 [Verbose] > │ ()                                                                           │

00:01:40 #2698 [Verbose] > │                                                                              │

00:01:40 #2699 [Verbose] > │                                                                              │

00:01:40 #2700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #2701 [Verbose] >

00:01:40 #2702 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:40 #2703 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:40 #2704 [Verbose] > │ ## get_environment_variable                                                  │

00:01:40 #2705 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:40 #2706 [Verbose] >

00:01:40 #2707 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:40 #2708 [Verbose] > inl get_environment_variable (var : string) : string =

00:01:40 #2709 [Verbose] >     $"System.Environment.GetEnvironmentVariable !var"

00:01:40 #2710 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1299-9990-9b1e26378728\main.spi

00:01:41 #2711 [Verbose] >

00:01:41 #2712 [Verbose] > ╭─[ 285.96ms - stdout ]────────────────────────────────────────────────────────╮

00:01:41 #2713 [Verbose] > │ ()                                                                           │

00:01:41 #2714 [Verbose] > │                                                                              │

00:01:41 #2715 [Verbose] > │                                                                              │

00:01:41 #2716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:41 #2717 [Verbose] >

00:01:41 #2718 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:41 #2719 [Verbose] > // // test

00:01:41 #2720 [Verbose] >

00:01:41 #2721 [Verbose] > inl test_guid () =

00:01:41 #2722 [Verbose] >     guid.new_guid "FEDCBA98-7654-3210-FEDC-BA9876543210"

00:01:41 #2723 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1328-2893-28ab72f7d39d\main.spi

00:01:41 #2724 [Verbose] >

00:01:41 #2725 [Verbose] > ╭─[ 277.48ms - stdout ]────────────────────────────────────────────────────────╮

00:01:41 #2726 [Verbose] > │ ()                                                                           │

00:01:41 #2727 [Verbose] > │                                                                              │

00:01:41 #2728 [Verbose] > │                                                                              │

00:01:41 #2729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:41 #2730 [Verbose] >

00:01:41 #2731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:41 #2732 [Verbose] > type timestamp_guid = guid.guid

00:01:41 #2733 [Verbose] > type date_time_guid = guid.guid

00:01:41 #2734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1356-5686-5c3b0e090889\main.spi

00:01:41 #2735 [Verbose] >

00:01:41 #2736 [Verbose] > ╭─[ 636.57ms - stdout ]────────────────────────────────────────────────────────╮

00:01:41 #2737 [Verbose] > │ ()                                                                           │

00:01:41 #2738 [Verbose] > │                                                                              │

00:01:41 #2739 [Verbose] > │                                                                              │

00:01:41 #2740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:41 #2741 [Verbose] >

00:01:41 #2742 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:41 #2743 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:41 #2744 [Verbose] > │ ## date_time_guid_from_date_time                                             │

00:01:41 #2745 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:41 #2746 [Verbose] >

00:01:41 #2747 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:41 #2748 [Verbose] > inl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =

00:01:41 #2749 [Verbose] >     inl guid = guid |> sm'.obj_to_string

00:01:41 #2750 [Verbose] >     inl prefix = $'!date_time.ToString "yyyyMMdd-HHmm-ssff-ffff-f"' : string

00:01:41 #2751 [Verbose] >     $'`date_time_guid $"{!prefix}{!guid.[[!prefix.Length..]]}"' : date_time_guid

00:01:42 #2752 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1421-2142-25ef1db940a0\main.spi

00:01:42 #2753 [Verbose] >

00:01:42 #2754 [Verbose] > ╭─[ 222.59ms - stdout ]────────────────────────────────────────────────────────╮

00:01:42 #2755 [Verbose] > │ ()                                                                           │

00:01:42 #2756 [Verbose] > │                                                                              │

00:01:42 #2757 [Verbose] > │                                                                              │

00:01:42 #2758 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:42 #2759 [Verbose] >

00:01:42 #2760 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:42 #2761 [Verbose] > // // test

00:01:42 #2762 [Verbose] >

00:01:42 #2763 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MinValue'

00:01:42 #2764 [Verbose] > |> sm'.obj_to_string

00:01:42 #2765 [Verbose] > |> _assert_eq' "00010101-0000-0000-0000-0a9876543210"

00:01:42 #2766 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1443-4391-43f1ed951b94\main.spi

00:01:43 #2767 [Verbose] >

00:01:43 #2768 [Verbose] > ╭─[ 1.44s - stdout ]───────────────────────────────────────────────────────────╮

00:01:43 #2769 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:01:43 #2770 [Verbose] > │     v0                                                                       │

00:01:43 #2771 [Verbose] > │ and method0 () : unit =                                                      │

00:01:43 #2772 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:43 #2773 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:43 #2774 [Verbose] > │     let v2 : System.DateTime = System.DateTime.MinValue                      │

00:01:43 #2775 [Verbose] > │     let v3 : (System.Guid -> string) = _.ToString()                          │

00:01:43 #2776 [Verbose] > │     let v4 : string = v3 v1                                                  │

00:01:43 #2777 [Verbose] > │     let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │

00:01:43 #2778 [Verbose] > │     let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}"             │

00:01:43 #2779 [Verbose] > │     let v7 : (System.Guid -> string) = _.ToString()                          │

00:01:43 #2780 [Verbose] > │     let v8 : string = v7 v6                                                  │

00:01:43 #2781 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │

00:01:43 #2782 [Verbose] > │     System.Console.WriteLine v9                                              │

00:01:43 #2783 [Verbose] > │     let v10 : string = "00010101-0000-0000-0000-0a9876543210"                │

00:01:43 #2784 [Verbose] > │     let v11 : bool = v8 = v10                                                │

00:01:43 #2785 [Verbose] > │     let v13 : bool =                                                         │

00:01:43 #2786 [Verbose] > │         if v11 then                                                          │

00:01:43 #2787 [Verbose] > │             true                                                             │

00:01:43 #2788 [Verbose] > │         else                                                                 │

00:01:43 #2789 [Verbose] > │             method1(v11)                                                     │

00:01:43 #2790 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v8} / expected: %A{v10}"      │

00:01:43 #2791 [Verbose] > │     let v15 : bool = v13 = false                                             │

00:01:43 #2792 [Verbose] > │     if v15 then                                                              │

00:01:43 #2793 [Verbose] > │         failwith<unit> v14                                                   │

00:01:43 #2794 [Verbose] > │ method0()                                                                    │

00:01:43 #2795 [Verbose] > │                                                                              │

00:01:43 #2796 [Verbose] > │ "00010101-0000-0000-0000-0a9876543210"                                       │

00:01:43 #2797 [Verbose] > │                                                                              │

00:01:43 #2798 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:43 #2799 [Verbose] >

00:01:43 #2800 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:43 #2801 [Verbose] > // // test

00:01:43 #2802 [Verbose] >

00:01:43 #2803 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.MaxValue'

00:01:43 #2804 [Verbose] > |> sm'.obj_to_string

00:01:43 #2805 [Verbose] > |> _assert_eq $'$"99991231-2359-5999-9999-9{(!test_guid() |>

00:01:43 #2806 [Verbose] > string).[[^10..]]}"'

00:01:43 #2807 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1589-8914-80c5cbaf329e\main.spi

00:01:44 #2808 [Verbose] >

00:01:44 #2809 [Verbose] > ╭─[ 414.64ms - stdout ]────────────────────────────────────────────────────────╮

00:01:44 #2810 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │

00:01:44 #2811 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:44 #2812 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:44 #2813 [Verbose] > │     v1                                                                       │

00:01:44 #2814 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:44 #2815 [Verbose] > │     v0                                                                       │

00:01:44 #2816 [Verbose] > │ and method0 () : unit =                                                      │

00:01:44 #2817 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:44 #2818 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:44 #2819 [Verbose] > │     let v2 : System.DateTime = System.DateTime.MaxValue                      │

00:01:44 #2820 [Verbose] > │     let v3 : (System.Guid -> string) = _.ToString()                          │

00:01:44 #2821 [Verbose] > │     let v4 : string = v3 v1                                                  │

00:01:44 #2822 [Verbose] > │     let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │

00:01:44 #2823 [Verbose] > │     let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}"             │

00:01:44 #2824 [Verbose] > │     let v7 : (System.Guid -> string) = _.ToString()                          │

00:01:44 #2825 [Verbose] > │     let v8 : string = v7 v6                                                  │

00:01:44 #2826 [Verbose] > │     let v9 : (unit -> System.Guid) = closure0()                              │

00:01:44 #2827 [Verbose] > │     let v10 : string = $"99991231-2359-5999-9999-9{(v9() |> string).[        │

00:01:44 #2828 [Verbose] > │ ^10..]}"                                                                     │

00:01:44 #2829 [Verbose] > │     let v11 : string = $"%A{v8}"                                             │

00:01:44 #2830 [Verbose] > │     System.Console.WriteLine v11                                             │

00:01:44 #2831 [Verbose] > │     let v12 : bool = v8 = v10                                                │

00:01:44 #2832 [Verbose] > │     let v14 : bool =                                                         │

00:01:44 #2833 [Verbose] > │         if v12 then                                                          │

00:01:44 #2834 [Verbose] > │             true                                                             │

00:01:44 #2835 [Verbose] > │         else                                                                 │

00:01:44 #2836 [Verbose] > │             method1(v12)                                                     │

00:01:44 #2837 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v8} / expected: %A{v10}"      │

00:01:44 #2838 [Verbose] > │     let v16 : bool = v14 = false                                             │

00:01:44 #2839 [Verbose] > │     if v16 then                                                              │

00:01:44 #2840 [Verbose] > │         failwith<unit> v15                                                   │

00:01:44 #2841 [Verbose] > │ method0()                                                                    │

00:01:44 #2842 [Verbose] > │                                                                              │

00:01:44 #2843 [Verbose] > │ "99991231-2359-5999-9999-9a9876543210"                                       │

00:01:44 #2844 [Verbose] > │                                                                              │

00:01:44 #2845 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:44 #2846 [Verbose] >

00:01:44 #2847 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:44 #2848 [Verbose] > // // test

00:01:44 #2849 [Verbose] >

00:01:44 #2850 [Verbose] > date_time_guid_from_date_time (test_guid ()) $'System.DateTime.UnixEpoch'

00:01:44 #2851 [Verbose] > |> sm'.obj_to_string

00:01:44 #2852 [Verbose] > |> _assert_eq $'$"19700101-0000-0000-0000-0{(!test_guid () |>

00:01:44 #2853 [Verbose] > string).[[^10..]]}"'

00:01:44 #2854 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1632-3231-3c93decb4349\main.spi

00:01:44 #2855 [Verbose] >

00:01:44 #2856 [Verbose] > ╭─[ 250.63ms - stdout ]────────────────────────────────────────────────────────╮

00:01:44 #2857 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │

00:01:44 #2858 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:44 #2859 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:44 #2860 [Verbose] > │     v1                                                                       │

00:01:44 #2861 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:44 #2862 [Verbose] > │     v0                                                                       │

00:01:44 #2863 [Verbose] > │ and method0 () : unit =                                                      │

00:01:44 #2864 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:44 #2865 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:44 #2866 [Verbose] > │     let v2 : System.DateTime = System.DateTime.UnixEpoch                     │

00:01:44 #2867 [Verbose] > │     let v3 : (System.Guid -> string) = _.ToString()                          │

00:01:44 #2868 [Verbose] > │     let v4 : string = v3 v1                                                  │

00:01:44 #2869 [Verbose] > │     let v5 : string = v2.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │

00:01:44 #2870 [Verbose] > │     let v6 : System.Guid = System.Guid $"{v5}{v4.[v5.Length..]}"             │

00:01:44 #2871 [Verbose] > │     let v7 : (System.Guid -> string) = _.ToString()                          │

00:01:44 #2872 [Verbose] > │     let v8 : string = v7 v6                                                  │

00:01:44 #2873 [Verbose] > │     let v9 : (unit -> System.Guid) = closure0()                              │

00:01:44 #2874 [Verbose] > │     let v10 : string = $"19700101-0000-0000-0000-0{(v9 () |> string).[       │

00:01:44 #2875 [Verbose] > │ ^10..]}"                                                                     │

00:01:44 #2876 [Verbose] > │     let v11 : string = $"%A{v8}"                                             │

00:01:44 #2877 [Verbose] > │     System.Console.WriteLine v11                                             │

00:01:44 #2878 [Verbose] > │     let v12 : bool = v8 = v10                                                │

00:01:44 #2879 [Verbose] > │     let v14 : bool =                                                         │

00:01:44 #2880 [Verbose] > │         if v12 then                                                          │

00:01:44 #2881 [Verbose] > │             true                                                             │

00:01:44 #2882 [Verbose] > │         else                                                                 │

00:01:44 #2883 [Verbose] > │             method1(v12)                                                     │

00:01:44 #2884 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v8} / expected: %A{v10}"      │

00:01:44 #2885 [Verbose] > │     let v16 : bool = v14 = false                                             │

00:01:44 #2886 [Verbose] > │     if v16 then                                                              │

00:01:44 #2887 [Verbose] > │         failwith<unit> v15                                                   │

00:01:44 #2888 [Verbose] > │ method0()                                                                    │

00:01:44 #2889 [Verbose] > │                                                                              │

00:01:44 #2890 [Verbose] > │ "19700101-0000-0000-0000-0a9876543210"                                       │

00:01:44 #2891 [Verbose] > │                                                                              │

00:01:44 #2892 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:44 #2893 [Verbose] >

00:01:44 #2894 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:44 #2895 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:44 #2896 [Verbose] > │ ## date_time_from_guid                                                       │

00:01:44 #2897 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:44 #2898 [Verbose] >

00:01:44 #2899 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:44 #2900 [Verbose] > inl date_time_from_guid (date_time_guid : date_time_guid) =

00:01:44 #2901 [Verbose] >     inl date_time_guid = date_time_guid |> sm'.obj_to_string

00:01:44 #2902 [Verbose] >     inl sm'_replace = join sm'.replace

00:01:44 #2903 [Verbose] >     run_target function

00:01:44 #2904 [Verbose] >         | Fsharp => fun () => $'System.DateTime.ParseExact

00:01:44 #2905 [Verbose] > (!date_time_guid.[[..24]] |> !sm'_replace "-" "", "yyyyMMddHHmmssfffffff",

00:01:44 #2906 [Verbose] > null)' : date_time

00:01:44 #2907 [Verbose] >         | Rust _ => fun () =>

00:01:44 #2908 [Verbose] >             $'System.DateTime.Parse (!date_time_guid.[[..24]] |> !sm'_replace

00:01:44 #2909 [Verbose] > "-" "")' : date_time

00:01:44 #2910 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1659-5991-56e02adf88a3\main.spi

00:01:44 #2911 [Verbose] >

00:01:44 #2912 [Verbose] > ╭─[ 230.02ms - stdout ]────────────────────────────────────────────────────────╮

00:01:44 #2913 [Verbose] > │ ()                                                                           │

00:01:44 #2914 [Verbose] > │                                                                              │

00:01:44 #2915 [Verbose] > │                                                                              │

00:01:44 #2916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:44 #2917 [Verbose] >

00:01:44 #2918 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:44 #2919 [Verbose] > // // test

00:01:44 #2920 [Verbose] >

00:01:44 #2921 [Verbose] > date_time_from_guid (guid.new_guid "00010101-0000-0000-0000-0a9876543210")

00:01:44 #2922 [Verbose] > |> _assert_eq' $'System.DateTime.MinValue'

00:01:44 #2923 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1683-8311-85a432584316\main.spi

00:01:44 #2924 [Verbose] >

00:01:44 #2925 [Verbose] > ╭─[ 423.58ms - stdout ]────────────────────────────────────────────────────────╮

00:01:44 #2926 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string =         │

00:01:44 #2927 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │

00:01:44 #2928 [Verbose] > │     v3                                                                       │

00:01:44 #2929 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) =              │

00:01:44 #2930 [Verbose] > │     closure2(v0, v1)                                                         │

00:01:44 #2931 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) =             │

00:01:44 #2932 [Verbose] > │     closure1(v0)                                                             │

00:01:44 #2933 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │

00:01:44 #2934 [Verbose] > │     closure0()                                                               │

00:01:44 #2935 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:01:44 #2936 [Verbose] > │     v0                                                                       │

00:01:44 #2937 [Verbose] > │ and method0 () : unit =                                                      │

00:01:44 #2938 [Verbose] > │     let v0 : string = "00010101-0000-0000-0000-0a9876543210"                 │

00:01:44 #2939 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:44 #2940 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:44 #2941 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:44 #2942 [Verbose] > │     let v4 : (string -> (string -> (string -> string))) = method1()          │

00:01:44 #2943 [Verbose] > │     let v5 : System.DateTime option = None                                   │

00:01:44 #2944 [Verbose] > │     let mutable _v5 = v5                                                     │

00:01:44 #2945 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:44 #2946 [Verbose] > │     let v6 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │

00:01:44 #2947 [Verbose] > │ "")                                                                          │

00:01:44 #2948 [Verbose] > │     v6                                                                       │

00:01:44 #2949 [Verbose] > │     #endif                                                                   │

00:01:44 #2950 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:44 #2951 [Verbose] > │     let v7 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │

00:01:44 #2952 [Verbose] > │ "")                                                                          │

00:01:44 #2953 [Verbose] > │     v7                                                                       │

00:01:44 #2954 [Verbose] > │     #endif                                                                   │

00:01:44 #2955 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:44 #2956 [Verbose] > │     let v8 : System.DateTime = System.DateTime.Parse (v3.[..24] |> v4 "-"    │

00:01:44 #2957 [Verbose] > │ "")                                                                          │

00:01:44 #2958 [Verbose] > │     v8                                                                       │

00:01:44 #2959 [Verbose] > │     #endif                                                                   │

00:01:44 #2960 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:44 #2961 [Verbose] > │     let v9 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4   │

00:01:44 #2962 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #2963 [Verbose] > │     v9                                                                       │

00:01:45 #2964 [Verbose] > │     #endif                                                                   │

00:01:45 #2965 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:45 #2966 [Verbose] > │     let v10 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4  │

00:01:45 #2967 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #2968 [Verbose] > │     v10                                                                      │

00:01:45 #2969 [Verbose] > │     #endif                                                                   │

00:01:45 #2970 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:45 #2971 [Verbose] > │     let v11 : System.DateTime = System.DateTime.ParseExact (v3.[..24] |> v4  │

00:01:45 #2972 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #2973 [Verbose] > │     v11                                                                      │

00:01:45 #2974 [Verbose] > │     #endif                                                                   │

00:01:45 #2975 [Verbose] > │     |> fun x -> _v5 <- Some x                                                │

00:01:45 #2976 [Verbose] > │     let v12 : System.DateTime = _v5 |> Option.get                            │

00:01:45 #2977 [Verbose] > │     let v13 : System.DateTime = System.DateTime.MinValue                     │

00:01:45 #2978 [Verbose] > │     let v14 : string = $"%A{v12}"                                            │

00:01:45 #2979 [Verbose] > │     System.Console.WriteLine v14                                             │

00:01:45 #2980 [Verbose] > │     let v15 : bool = v12 = v13                                               │

00:01:45 #2981 [Verbose] > │     let v17 : bool =                                                         │

00:01:45 #2982 [Verbose] > │         if v15 then                                                          │

00:01:45 #2983 [Verbose] > │             true                                                             │

00:01:45 #2984 [Verbose] > │         else                                                                 │

00:01:45 #2985 [Verbose] > │             method2(v15)                                                     │

00:01:45 #2986 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v12} / expected: %A{v13}"     │

00:01:45 #2987 [Verbose] > │     let v19 : bool = v17 = false                                             │

00:01:45 #2988 [Verbose] > │     if v19 then                                                              │

00:01:45 #2989 [Verbose] > │         failwith<unit> v18                                                   │

00:01:45 #2990 [Verbose] > │ method0()                                                                    │

00:01:45 #2991 [Verbose] > │                                                                              │

00:01:45 #2992 [Verbose] > │ 0001-01-01 12:00:00 AM                                                       │

00:01:45 #2993 [Verbose] > │                                                                              │

00:01:45 #2994 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:45 #2995 [Verbose] >

00:01:45 #2996 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:45 #2997 [Verbose] > // // test

00:01:45 #2998 [Verbose] >

00:01:45 #2999 [Verbose] > date_time_from_guid (guid.new_guid $'$"99991231-2359-5999-9999-9{(!test_guid ()

00:01:45 #3000 [Verbose] > |> string).[[^10..]]}"')

00:01:45 #3001 [Verbose] > |> _assert_eq' $'System.DateTime.MaxValue'

00:01:45 #3002 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1728-2864-2de733ff6014\main.spi

00:01:45 #3003 [Verbose] >

00:01:45 #3004 [Verbose] > ╭─[ 295.24ms - stdout ]────────────────────────────────────────────────────────╮

00:01:45 #3005 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │

00:01:45 #3006 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:45 #3007 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:45 #3008 [Verbose] > │     v1                                                                       │

00:01:45 #3009 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string =             │

00:01:45 #3010 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │

00:01:45 #3011 [Verbose] > │     v3                                                                       │

00:01:45 #3012 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) =              │

00:01:45 #3013 [Verbose] > │     closure3(v0, v1)                                                         │

00:01:45 #3014 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) =             │

00:01:45 #3015 [Verbose] > │     closure2(v0)                                                             │

00:01:45 #3016 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │

00:01:45 #3017 [Verbose] > │     closure1()                                                               │

00:01:45 #3018 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:01:45 #3019 [Verbose] > │     v0                                                                       │

00:01:45 #3020 [Verbose] > │ and method0 () : unit =                                                      │

00:01:45 #3021 [Verbose] > │     let v0 : (unit -> System.Guid) = closure0()                              │

00:01:45 #3022 [Verbose] > │     let v1 : string = $"99991231-2359-5999-9999-9{(v0 () |> string).[        │

00:01:45 #3023 [Verbose] > │ ^10..]}"                                                                     │

00:01:45 #3024 [Verbose] > │     let v2 : System.Guid = System.Guid v1                                    │

00:01:45 #3025 [Verbose] > │     let v3 : (System.Guid -> string) = _.ToString()                          │

00:01:45 #3026 [Verbose] > │     let v4 : string = v3 v2                                                  │

00:01:45 #3027 [Verbose] > │     let v5 : (string -> (string -> (string -> string))) = method1()          │

00:01:45 #3028 [Verbose] > │     let v6 : System.DateTime option = None                                   │

00:01:45 #3029 [Verbose] > │     let mutable _v6 = v6                                                     │

00:01:45 #3030 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:45 #3031 [Verbose] > │     let v7 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-"    │

00:01:45 #3032 [Verbose] > │ "")                                                                          │

00:01:45 #3033 [Verbose] > │     v7                                                                       │

00:01:45 #3034 [Verbose] > │     #endif                                                                   │

00:01:45 #3035 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:45 #3036 [Verbose] > │     let v8 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-"    │

00:01:45 #3037 [Verbose] > │ "")                                                                          │

00:01:45 #3038 [Verbose] > │     v8                                                                       │

00:01:45 #3039 [Verbose] > │     #endif                                                                   │

00:01:45 #3040 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:45 #3041 [Verbose] > │     let v9 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-"    │

00:01:45 #3042 [Verbose] > │ "")                                                                          │

00:01:45 #3043 [Verbose] > │     v9                                                                       │

00:01:45 #3044 [Verbose] > │     #endif                                                                   │

00:01:45 #3045 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:45 #3046 [Verbose] > │     let v10 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5  │

00:01:45 #3047 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #3048 [Verbose] > │     v10                                                                      │

00:01:45 #3049 [Verbose] > │     #endif                                                                   │

00:01:45 #3050 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:45 #3051 [Verbose] > │     let v11 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5  │

00:01:45 #3052 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #3053 [Verbose] > │     v11                                                                      │

00:01:45 #3054 [Verbose] > │     #endif                                                                   │

00:01:45 #3055 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:45 #3056 [Verbose] > │     let v12 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5  │

00:01:45 #3057 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #3058 [Verbose] > │     v12                                                                      │

00:01:45 #3059 [Verbose] > │     #endif                                                                   │

00:01:45 #3060 [Verbose] > │     |> fun x -> _v6 <- Some x                                                │

00:01:45 #3061 [Verbose] > │     let v13 : System.DateTime = _v6 |> Option.get                            │

00:01:45 #3062 [Verbose] > │     let v14 : System.DateTime = System.DateTime.MaxValue                     │

00:01:45 #3063 [Verbose] > │     let v15 : string = $"%A{v13}"                                            │

00:01:45 #3064 [Verbose] > │     System.Console.WriteLine v15                                             │

00:01:45 #3065 [Verbose] > │     let v16 : bool = v13 = v14                                               │

00:01:45 #3066 [Verbose] > │     let v18 : bool =                                                         │

00:01:45 #3067 [Verbose] > │         if v16 then                                                          │

00:01:45 #3068 [Verbose] > │             true                                                             │

00:01:45 #3069 [Verbose] > │         else                                                                 │

00:01:45 #3070 [Verbose] > │             method2(v16)                                                     │

00:01:45 #3071 [Verbose] > │     let v19 : string = $"__expect / actual: %A{v13} / expected: %A{v14}"     │

00:01:45 #3072 [Verbose] > │     let v20 : bool = v18 = false                                             │

00:01:45 #3073 [Verbose] > │     if v20 then                                                              │

00:01:45 #3074 [Verbose] > │         failwith<unit> v19                                                   │

00:01:45 #3075 [Verbose] > │ method0()                                                                    │

00:01:45 #3076 [Verbose] > │                                                                              │

00:01:45 #3077 [Verbose] > │ 9999-12-31 11:59:59 PM                                                       │

00:01:45 #3078 [Verbose] > │                                                                              │

00:01:45 #3079 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:45 #3080 [Verbose] >

00:01:45 #3081 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:45 #3082 [Verbose] > // // test

00:01:45 #3083 [Verbose] >

00:01:45 #3084 [Verbose] > date_time_from_guid (guid.new_guid $'$"19700101-0000-0000-0000-0{(!test_guid ()

00:01:45 #3085 [Verbose] > |> string).[[^10..]]}"')

00:01:45 #3086 [Verbose] > |> _assert_eq' $'System.DateTime.UnixEpoch'

00:01:45 #3087 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1762-6236-6cbb06b4d664\main.spi

00:01:45 #3088 [Verbose] >

00:01:45 #3089 [Verbose] > ╭─[ 324.43ms - stdout ]────────────────────────────────────────────────────────╮

00:01:45 #3090 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │

00:01:45 #3091 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:45 #3092 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:45 #3093 [Verbose] > │     v1                                                                       │

00:01:45 #3094 [Verbose] > │ and closure3 (v0 : string, v1 : string) (v2 : string) : string =             │

00:01:45 #3095 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │

00:01:45 #3096 [Verbose] > │     v3                                                                       │

00:01:45 #3097 [Verbose] > │ and closure2 (v0 : string) (v1 : string) : (string -> string) =              │

00:01:45 #3098 [Verbose] > │     closure3(v0, v1)                                                         │

00:01:45 #3099 [Verbose] > │ and closure1 () (v0 : string) : (string -> (string -> string)) =             │

00:01:45 #3100 [Verbose] > │     closure2(v0)                                                             │

00:01:45 #3101 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │

00:01:45 #3102 [Verbose] > │     closure1()                                                               │

00:01:45 #3103 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:01:45 #3104 [Verbose] > │     v0                                                                       │

00:01:45 #3105 [Verbose] > │ and method0 () : unit =                                                      │

00:01:45 #3106 [Verbose] > │     let v0 : (unit -> System.Guid) = closure0()                              │

00:01:45 #3107 [Verbose] > │     let v1 : string = $"19700101-0000-0000-0000-0{(v0 () |> string).[        │

00:01:45 #3108 [Verbose] > │ ^10..]}"                                                                     │

00:01:45 #3109 [Verbose] > │     let v2 : System.Guid = System.Guid v1                                    │

00:01:45 #3110 [Verbose] > │     let v3 : (System.Guid -> string) = _.ToString()                          │

00:01:45 #3111 [Verbose] > │     let v4 : string = v3 v2                                                  │

00:01:45 #3112 [Verbose] > │     let v5 : (string -> (string -> (string -> string))) = method1()          │

00:01:45 #3113 [Verbose] > │     let v6 : System.DateTime option = None                                   │

00:01:45 #3114 [Verbose] > │     let mutable _v6 = v6                                                     │

00:01:45 #3115 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:45 #3116 [Verbose] > │     let v7 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-"    │

00:01:45 #3117 [Verbose] > │ "")                                                                          │

00:01:45 #3118 [Verbose] > │     v7                                                                       │

00:01:45 #3119 [Verbose] > │     #endif                                                                   │

00:01:45 #3120 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:45 #3121 [Verbose] > │     let v8 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-"    │

00:01:45 #3122 [Verbose] > │ "")                                                                          │

00:01:45 #3123 [Verbose] > │     v8                                                                       │

00:01:45 #3124 [Verbose] > │     #endif                                                                   │

00:01:45 #3125 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:45 #3126 [Verbose] > │     let v9 : System.DateTime = System.DateTime.Parse (v4.[..24] |> v5 "-"    │

00:01:45 #3127 [Verbose] > │ "")                                                                          │

00:01:45 #3128 [Verbose] > │     v9                                                                       │

00:01:45 #3129 [Verbose] > │     #endif                                                                   │

00:01:45 #3130 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:45 #3131 [Verbose] > │     let v10 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5  │

00:01:45 #3132 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #3133 [Verbose] > │     v10                                                                      │

00:01:45 #3134 [Verbose] > │     #endif                                                                   │

00:01:45 #3135 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:45 #3136 [Verbose] > │     let v11 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5  │

00:01:45 #3137 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #3138 [Verbose] > │     v11                                                                      │

00:01:45 #3139 [Verbose] > │     #endif                                                                   │

00:01:45 #3140 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:45 #3141 [Verbose] > │     let v12 : System.DateTime = System.DateTime.ParseExact (v4.[..24] |> v5  │

00:01:45 #3142 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:45 #3143 [Verbose] > │     v12                                                                      │

00:01:45 #3144 [Verbose] > │     #endif                                                                   │

00:01:45 #3145 [Verbose] > │     |> fun x -> _v6 <- Some x                                                │

00:01:45 #3146 [Verbose] > │     let v13 : System.DateTime = _v6 |> Option.get                            │

00:01:45 #3147 [Verbose] > │     let v14 : System.DateTime = System.DateTime.UnixEpoch                    │

00:01:45 #3148 [Verbose] > │     let v15 : string = $"%A{v13}"                                            │

00:01:45 #3149 [Verbose] > │     System.Console.WriteLine v15                                             │

00:01:45 #3150 [Verbose] > │     let v16 : bool = v13 = v14                                               │

00:01:45 #3151 [Verbose] > │     let v18 : bool =                                                         │

00:01:45 #3152 [Verbose] > │         if v16 then                                                          │

00:01:45 #3153 [Verbose] > │             true                                                             │

00:01:45 #3154 [Verbose] > │         else                                                                 │

00:01:45 #3155 [Verbose] > │             method2(v16)                                                     │

00:01:45 #3156 [Verbose] > │     let v19 : string = $"__expect / actual: %A{v13} / expected: %A{v14}"     │

00:01:45 #3157 [Verbose] > │     let v20 : bool = v18 = false                                             │

00:01:45 #3158 [Verbose] > │     if v20 then                                                              │

00:01:45 #3159 [Verbose] > │         failwith<unit> v19                                                   │

00:01:45 #3160 [Verbose] > │ method0()                                                                    │

00:01:45 #3161 [Verbose] > │                                                                              │

00:01:45 #3162 [Verbose] > │ 1970-01-01 12:00:00 AM                                                       │

00:01:45 #3163 [Verbose] > │                                                                              │

00:01:45 #3164 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:45 #3165 [Verbose] >

00:01:45 #3166 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:45 #3167 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:45 #3168 [Verbose] > │ ## timestamp_guid_from_timestamp                                             │

00:01:45 #3169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:45 #3170 [Verbose] >

00:01:45 #3171 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:45 #3172 [Verbose] > inl timestamp_guid_from_timestamp (guid : guid.guid) (timestamp : timestamp) :

00:01:45 #3173 [Verbose] > timestamp_guid =

00:01:45 #3174 [Verbose] >     inl guid = guid |> sm'.obj_to_string

00:01:45 #3175 [Verbose] >     inl timestamp = timestamp |> sm'.obj_to_string |> sm'.pad_left 18i32 '0'

00:01:45 #3176 [Verbose] >     $'`timestamp_guid

00:01:45 #3177 [Verbose] > $"{!timestamp.[[0..7]]}-{!timestamp.[[8..11]]}-{!timestamp.[[12..15]]}-{!timesta

00:01:45 #3178 [Verbose] > mp.[[16..17]]}{!guid.[[21..]]}"'

00:01:45 #3179 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1799-9987-98830e0e0920\main.spi

00:01:45 #3180 [Verbose] >

00:01:45 #3181 [Verbose] > ╭─[ 222.13ms - stdout ]────────────────────────────────────────────────────────╮

00:01:45 #3182 [Verbose] > │ ()                                                                           │

00:01:45 #3183 [Verbose] > │                                                                              │

00:01:45 #3184 [Verbose] > │                                                                              │

00:01:45 #3185 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:45 #3186 [Verbose] >

00:01:45 #3187 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:45 #3188 [Verbose] > // // test

00:01:45 #3189 [Verbose] >

00:01:45 #3190 [Verbose] > timestamp_guid_from_timestamp (test_guid ()) (timestamp 0i64)

00:01:45 #3191 [Verbose] > |> _assert_eq' (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")

00:01:46 #3192 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1822-2210-2557cff590b9\main.spi

00:01:46 #3193 [Verbose] >

00:01:46 #3194 [Verbose] > ╭─[ 266.15ms - stdout ]────────────────────────────────────────────────────────╮

00:01:46 #3195 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:01:46 #3196 [Verbose] > │     v0                                                                       │

00:01:46 #3197 [Verbose] > │ and method0 () : unit =                                                      │

00:01:46 #3198 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:46 #3199 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:46 #3200 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:46 #3201 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:46 #3202 [Verbose] > │     let v4 : (int64 -> string) = _.ToString()                                │

00:01:46 #3203 [Verbose] > │     let v5 : string = v4 0L                                                  │

00:01:46 #3204 [Verbose] > │     let v6 : string = v5.PadLeft (18, '0')                                   │

00:01:46 #3205 [Verbose] > │     let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[      │

00:01:46 #3206 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}"                                           │

00:01:46 #3207 [Verbose] > │     let v8 : string = "00000000-0000-0000-00dc-ba9876543210"                 │

00:01:46 #3208 [Verbose] > │     let v9 : System.Guid = System.Guid v8                                    │

00:01:46 #3209 [Verbose] > │     let v10 : string = $"%A{v7}"                                             │

00:01:46 #3210 [Verbose] > │     System.Console.WriteLine v10                                             │

00:01:46 #3211 [Verbose] > │     let v11 : bool = v7 = v9                                                 │

00:01:46 #3212 [Verbose] > │     let v13 : bool =                                                         │

00:01:46 #3213 [Verbose] > │         if v11 then                                                          │

00:01:46 #3214 [Verbose] > │             true                                                             │

00:01:46 #3215 [Verbose] > │         else                                                                 │

00:01:46 #3216 [Verbose] > │             method1(v11)                                                     │

00:01:46 #3217 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v9}"       │

00:01:46 #3218 [Verbose] > │     let v15 : bool = v13 = false                                             │

00:01:46 #3219 [Verbose] > │     if v15 then                                                              │

00:01:46 #3220 [Verbose] > │         failwith<unit> v14                                                   │

00:01:46 #3221 [Verbose] > │ method0()                                                                    │

00:01:46 #3222 [Verbose] > │                                                                              │

00:01:46 #3223 [Verbose] > │ 00000000-0000-0000-00dc-ba9876543210                                         │

00:01:46 #3224 [Verbose] > │                                                                              │

00:01:46 #3225 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:46 #3226 [Verbose] >

00:01:46 #3227 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:46 #3228 [Verbose] > // // test

00:01:46 #3229 [Verbose] >

00:01:46 #3230 [Verbose] > timestamp_guid_from_timestamp (test_guid ()) (timestamp 999999999999999999i64)

00:01:46 #3231 [Verbose] > |> _assert_eq' (guid.new_guid $'$"99999999-9999-9999-99dc-b{(!test_guid () |>

00:01:46 #3232 [Verbose] > string).[[^10..]]}"')

00:01:46 #3233 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1850-5068-59bec62177b9\main.spi

00:01:46 #3234 [Verbose] >

00:01:46 #3235 [Verbose] > ╭─[ 327.10ms - stdout ]────────────────────────────────────────────────────────╮

00:01:46 #3236 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │

00:01:46 #3237 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:46 #3238 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:46 #3239 [Verbose] > │     v1                                                                       │

00:01:46 #3240 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:46 #3241 [Verbose] > │     v0                                                                       │

00:01:46 #3242 [Verbose] > │ and method0 () : unit =                                                      │

00:01:46 #3243 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:46 #3244 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:46 #3245 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:46 #3246 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:46 #3247 [Verbose] > │     let v4 : (int64 -> string) = _.ToString()                                │

00:01:46 #3248 [Verbose] > │     let v5 : string = v4 999999999999999999L                                 │

00:01:46 #3249 [Verbose] > │     let v6 : string = v5.PadLeft (18, '0')                                   │

00:01:46 #3250 [Verbose] > │     let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[      │

00:01:46 #3251 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}"                                           │

00:01:46 #3252 [Verbose] > │     let v8 : (unit -> System.Guid) = closure0()                              │

00:01:46 #3253 [Verbose] > │     let v9 : string = $"99999999-9999-9999-99dc-b{(v8 () |> string).[        │

00:01:46 #3254 [Verbose] > │ ^10..]}"                                                                     │

00:01:46 #3255 [Verbose] > │     let v10 : System.Guid = System.Guid v9                                   │

00:01:46 #3256 [Verbose] > │     let v11 : string = $"%A{v7}"                                             │

00:01:46 #3257 [Verbose] > │     System.Console.WriteLine v11                                             │

00:01:46 #3258 [Verbose] > │     let v12 : bool = v7 = v10                                                │

00:01:46 #3259 [Verbose] > │     let v14 : bool =                                                         │

00:01:46 #3260 [Verbose] > │         if v12 then                                                          │

00:01:46 #3261 [Verbose] > │             true                                                             │

00:01:46 #3262 [Verbose] > │         else                                                                 │

00:01:46 #3263 [Verbose] > │             method1(v12)                                                     │

00:01:46 #3264 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v7} / expected: %A{v10}"      │

00:01:46 #3265 [Verbose] > │     let v16 : bool = v14 = false                                             │

00:01:46 #3266 [Verbose] > │     if v16 then                                                              │

00:01:46 #3267 [Verbose] > │         failwith<unit> v15                                                   │

00:01:46 #3268 [Verbose] > │ method0()                                                                    │

00:01:46 #3269 [Verbose] > │                                                                              │

00:01:46 #3270 [Verbose] > │ 99999999-9999-9999-99dc-ba9876543210                                         │

00:01:46 #3271 [Verbose] > │                                                                              │

00:01:46 #3272 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:46 #3273 [Verbose] >

00:01:46 #3274 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:46 #3275 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:46 #3276 [Verbose] > │ ## timestamp_from_guid                                                       │

00:01:46 #3277 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:46 #3278 [Verbose] >

00:01:46 #3279 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:46 #3280 [Verbose] > inl timestamp_from_guid (guid : date_time_guid) : timestamp =

00:01:46 #3281 [Verbose] >     inl guid = guid |> sm'.obj_to_string

00:01:46 #3282 [Verbose] >     $'`i64

00:01:46 #3283 [Verbose] > $"{!guid.[[0..7]]}{!guid.[[9..12]]}{!guid.[[14..17]]}{!guid.[[19..20]]}"'

00:01:46 #3284 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1886-8611-83ab75a617d7\main.spi

00:01:46 #3285 [Verbose] >

00:01:46 #3286 [Verbose] > ╭─[ 233.86ms - stdout ]────────────────────────────────────────────────────────╮

00:01:46 #3287 [Verbose] > │ ()                                                                           │

00:01:46 #3288 [Verbose] > │                                                                              │

00:01:46 #3289 [Verbose] > │                                                                              │

00:01:46 #3290 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:46 #3291 [Verbose] >

00:01:46 #3292 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:46 #3293 [Verbose] > // // test

00:01:46 #3294 [Verbose] >

00:01:46 #3295 [Verbose] > timestamp_from_guid (guid.new_guid "00000000-0000-0000-00dc-ba9876543210")

00:01:46 #3296 [Verbose] > |> _assert_eq (timestamp 0)

00:01:46 #3297 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1909-0956-02ec106adc37\main.spi

00:01:47 #3298 [Verbose] >

00:01:47 #3299 [Verbose] > ╭─[ 285.87ms - stdout ]────────────────────────────────────────────────────────╮

00:01:47 #3300 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:01:47 #3301 [Verbose] > │     v0                                                                       │

00:01:47 #3302 [Verbose] > │ and method0 () : unit =                                                      │

00:01:47 #3303 [Verbose] > │     let v0 : string = "00000000-0000-0000-00dc-ba9876543210"                 │

00:01:47 #3304 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:47 #3305 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:47 #3306 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:47 #3307 [Verbose] > │     let v4 : int64 = int64 $"{v3.[0..7]}{v3.[9..12]}{v3.[14..17]}{v3.[       │

00:01:47 #3308 [Verbose] > │ 19..20]}"                                                                    │

00:01:47 #3309 [Verbose] > │     let v5 : string = $"%A{v4}"                                              │

00:01:47 #3310 [Verbose] > │     System.Console.WriteLine v5                                              │

00:01:47 #3311 [Verbose] > │     let v6 : bool = v4 = 0L                                                  │

00:01:47 #3312 [Verbose] > │     let v8 : bool =                                                          │

00:01:47 #3313 [Verbose] > │         if v6 then                                                           │

00:01:47 #3314 [Verbose] > │             true                                                             │

00:01:47 #3315 [Verbose] > │         else                                                                 │

00:01:47 #3316 [Verbose] > │             method1(v6)                                                      │

00:01:47 #3317 [Verbose] > │     let v9 : string = $"__expect / actual: %A{v4} / expected: %A{0L}"        │

00:01:47 #3318 [Verbose] > │     let v10 : bool = v8 = false                                              │

00:01:47 #3319 [Verbose] > │     if v10 then                                                              │

00:01:47 #3320 [Verbose] > │         failwith<unit> v9                                                    │

00:01:47 #3321 [Verbose] > │ method0()                                                                    │

00:01:47 #3322 [Verbose] > │                                                                              │

00:01:47 #3323 [Verbose] > │ 0L                                                                           │

00:01:47 #3324 [Verbose] > │                                                                              │

00:01:47 #3325 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3326 [Verbose] >

00:01:47 #3327 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:47 #3328 [Verbose] > // // test

00:01:47 #3329 [Verbose] >

00:01:47 #3330 [Verbose] > timestamp_from_guid (guid.new_guid $'$"99999999-9999-9999-99{(!test_guid () |>

00:01:47 #3331 [Verbose] > string).[[^14..]]}"')

00:01:47 #3332 [Verbose] > |> _assert_eq (timestamp 999999999999999999)

00:01:47 #3333 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1939-3957-3292da5509a7\main.spi

00:01:47 #3334 [Verbose] >

00:01:47 #3335 [Verbose] > ╭─[ 267.18ms - stdout ]────────────────────────────────────────────────────────╮

00:01:47 #3336 [Verbose] > │ let rec closure0 () () : System.Guid =                                       │

00:01:47 #3337 [Verbose] > │     let v0 : string = "FEDCBA98-7654-3210-FEDC-BA9876543210"                 │

00:01:47 #3338 [Verbose] > │     let v1 : System.Guid = System.Guid v0                                    │

00:01:47 #3339 [Verbose] > │     v1                                                                       │

00:01:47 #3340 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:01:47 #3341 [Verbose] > │     v0                                                                       │

00:01:47 #3342 [Verbose] > │ and method0 () : unit =                                                      │

00:01:47 #3343 [Verbose] > │     let v0 : (unit -> System.Guid) = closure0()                              │

00:01:47 #3344 [Verbose] > │     let v1 : string = $"99999999-9999-9999-99{(v0 () |> string).[^14..]}"    │

00:01:47 #3345 [Verbose] > │     let v2 : System.Guid = System.Guid v1                                    │

00:01:47 #3346 [Verbose] > │     let v3 : (System.Guid -> string) = _.ToString()                          │

00:01:47 #3347 [Verbose] > │     let v4 : string = v3 v2                                                  │

00:01:47 #3348 [Verbose] > │     let v5 : int64 = int64 $"{v4.[0..7]}{v4.[9..12]}{v4.[14..17]}{v4.[       │

00:01:47 #3349 [Verbose] > │ 19..20]}"                                                                    │

00:01:47 #3350 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │

00:01:47 #3351 [Verbose] > │     System.Console.WriteLine v6                                              │

00:01:47 #3352 [Verbose] > │     let v7 : bool = v5 = 999999999999999999L                                 │

00:01:47 #3353 [Verbose] > │     let v9 : bool =                                                          │

00:01:47 #3354 [Verbose] > │         if v7 then                                                           │

00:01:47 #3355 [Verbose] > │             true                                                             │

00:01:47 #3356 [Verbose] > │         else                                                                 │

00:01:47 #3357 [Verbose] > │             method1(v7)                                                      │

00:01:47 #3358 [Verbose] > │     let v10 : string = $"__expect / actual: %A{v5} / expected:               │

00:01:47 #3359 [Verbose] > │ %A{999999999999999999L}"                                                     │

00:01:47 #3360 [Verbose] > │     let v11 : bool = v9 = false                                              │

00:01:47 #3361 [Verbose] > │     if v11 then                                                              │

00:01:47 #3362 [Verbose] > │         failwith<unit> v10                                                   │

00:01:47 #3363 [Verbose] > │ method0()                                                                    │

00:01:47 #3364 [Verbose] > │                                                                              │

00:01:47 #3365 [Verbose] > │ 999999999999999999L                                                          │

00:01:47 #3366 [Verbose] > │                                                                              │

00:01:47 #3367 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3368 [Verbose] >

00:01:47 #3369 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:47 #3370 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:47 #3371 [Verbose] > │ ## utc_now                                                                   │

00:01:47 #3372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3373 [Verbose] >

00:01:47 #3374 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:47 #3375 [Verbose] > inl utc_now () : date_time =

00:01:47 #3376 [Verbose] >     $'System.DateTime.UtcNow'

00:01:47 #3377 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1968-6879-60ec1693181a\main.spi

00:01:47 #3378 [Verbose] >

00:01:47 #3379 [Verbose] > ╭─[ 233.10ms - stdout ]────────────────────────────────────────────────────────╮

00:01:47 #3380 [Verbose] > │ ()                                                                           │

00:01:47 #3381 [Verbose] > │                                                                              │

00:01:47 #3382 [Verbose] > │                                                                              │

00:01:47 #3383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3384 [Verbose] >

00:01:47 #3385 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:47 #3386 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:47 #3387 [Verbose] > │ ## time_span                                                                 │

00:01:47 #3388 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3389 [Verbose] >

00:01:47 #3390 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:47 #3391 [Verbose] > nominal time_span = $'System.TimeSpan'

00:01:47 #3392 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-1992-9262-93cad1d9dd9e\main.spi

00:01:47 #3393 [Verbose] >

00:01:47 #3394 [Verbose] > ╭─[ 228.31ms - stdout ]────────────────────────────────────────────────────────╮

00:01:47 #3395 [Verbose] > │ ()                                                                           │

00:01:47 #3396 [Verbose] > │                                                                              │

00:01:47 #3397 [Verbose] > │                                                                              │

00:01:47 #3398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3399 [Verbose] >

00:01:47 #3400 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:47 #3401 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:47 #3402 [Verbose] > │ ## new_time_span                                                             │

00:01:47 #3403 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:47 #3404 [Verbose] >

00:01:47 #3405 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:47 #3406 [Verbose] > inl new_time_span (a : date_time) (b : date_time) : time_span =

00:01:47 #3407 [Verbose] >     $'!b - !a '

00:01:48 #3408 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2016-1607-166cc79052d7\main.spi

00:01:48 #3409 [Verbose] >

00:01:48 #3410 [Verbose] > ╭─[ 212.56ms - stdout ]────────────────────────────────────────────────────────╮

00:01:48 #3411 [Verbose] > │ ()                                                                           │

00:01:48 #3412 [Verbose] > │                                                                              │

00:01:48 #3413 [Verbose] > │                                                                              │

00:01:48 #3414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3415 [Verbose] >

00:01:48 #3416 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:48 #3417 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:48 #3418 [Verbose] > │ ## total_seconds                                                             │

00:01:48 #3419 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3420 [Verbose] >

00:01:48 #3421 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:48 #3422 [Verbose] > inl total_seconds (time_span : time_span) : f64 =

00:01:48 #3423 [Verbose] >     time_span |> $'_.TotalSeconds'

00:01:48 #3424 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2037-3781-3e3340f74eda\main.spi

00:01:48 #3425 [Verbose] >

00:01:48 #3426 [Verbose] > ╭─[ 199.19ms - stdout ]────────────────────────────────────────────────────────╮

00:01:48 #3427 [Verbose] > │ ()                                                                           │

00:01:48 #3428 [Verbose] > │                                                                              │

00:01:48 #3429 [Verbose] > │                                                                              │

00:01:48 #3430 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3431 [Verbose] >

00:01:48 #3432 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:48 #3433 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:48 #3434 [Verbose] > │ ## new_guid_from_date_time                                                   │

00:01:48 #3435 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3436 [Verbose] >

00:01:48 #3437 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:48 #3438 [Verbose] > inl new_guid_from_date_time (date_time : date_time) =

00:01:48 #3439 [Verbose] >     inl guid = guid.new_raw_guid ()

00:01:48 #3440 [Verbose] >     date_time_guid_from_date_time guid date_time

00:01:48 #3441 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2058-5833-5b890179d96e\main.spi

00:01:48 #3442 [Verbose] >

00:01:48 #3443 [Verbose] > ╭─[ 230.49ms - stdout ]────────────────────────────────────────────────────────╮

00:01:48 #3444 [Verbose] > │ ()                                                                           │

00:01:48 #3445 [Verbose] > │                                                                              │

00:01:48 #3446 [Verbose] > │                                                                              │

00:01:48 #3447 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3448 [Verbose] >

00:01:48 #3449 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:48 #3450 [Verbose] > // // test

00:01:48 #3451 [Verbose] >

00:01:48 #3452 [Verbose] > utc_now ()

00:01:48 #3453 [Verbose] > |> new_guid_from_date_time

00:01:48 #3454 [Verbose] > |> date_time_from_guid

00:01:48 #3455 [Verbose] > |> fun date_time => new_time_span date_time (utc_now ()) |> total_seconds |> i32

00:01:48 #3456 [Verbose] > |> _assert_eq 0

00:01:48 #3457 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2081-8178-834790cf10ff\main.spi

00:01:48 #3458 [Verbose] >

00:01:48 #3459 [Verbose] > ╭─[ 279.07ms - stdout ]────────────────────────────────────────────────────────╮

00:01:48 #3460 [Verbose] > │ let rec closure2 (v0 : string, v1 : string) (v2 : string) : string =         │

00:01:48 #3461 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │

00:01:48 #3462 [Verbose] > │     v3                                                                       │

00:01:48 #3463 [Verbose] > │ and closure1 (v0 : string) (v1 : string) : (string -> string) =              │

00:01:48 #3464 [Verbose] > │     closure2(v0, v1)                                                         │

00:01:48 #3465 [Verbose] > │ and closure0 () (v0 : string) : (string -> (string -> string)) =             │

00:01:48 #3466 [Verbose] > │     closure1(v0)                                                             │

00:01:48 #3467 [Verbose] > │ and method1 () : (string -> (string -> (string -> string))) =                │

00:01:48 #3468 [Verbose] > │     closure0()                                                               │

00:01:48 #3469 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:01:48 #3470 [Verbose] > │     v0                                                                       │

00:01:48 #3471 [Verbose] > │ and method0 () : unit =                                                      │

00:01:48 #3472 [Verbose] > │     let v0 : System.DateTime = System.DateTime.UtcNow                        │

00:01:48 #3473 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │

00:01:48 #3474 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:48 #3475 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:48 #3476 [Verbose] > │     let v4 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │

00:01:48 #3477 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"             │

00:01:48 #3478 [Verbose] > │     let v6 : (System.Guid -> string) = _.ToString()                          │

00:01:48 #3479 [Verbose] > │     let v7 : string = v6 v5                                                  │

00:01:48 #3480 [Verbose] > │     let v8 : (string -> (string -> (string -> string))) = method1()          │

00:01:48 #3481 [Verbose] > │     let v9 : System.DateTime option = None                                   │

00:01:48 #3482 [Verbose] > │     let mutable _v9 = v9                                                     │

00:01:48 #3483 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:48 #3484 [Verbose] > │     let v10 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-"   │

00:01:48 #3485 [Verbose] > │ "")                                                                          │

00:01:48 #3486 [Verbose] > │     v10                                                                      │

00:01:48 #3487 [Verbose] > │     #endif                                                                   │

00:01:48 #3488 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:48 #3489 [Verbose] > │     let v11 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-"   │

00:01:48 #3490 [Verbose] > │ "")                                                                          │

00:01:48 #3491 [Verbose] > │     v11                                                                      │

00:01:48 #3492 [Verbose] > │     #endif                                                                   │

00:01:48 #3493 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:48 #3494 [Verbose] > │     let v12 : System.DateTime = System.DateTime.Parse (v7.[..24] |> v8 "-"   │

00:01:48 #3495 [Verbose] > │ "")                                                                          │

00:01:48 #3496 [Verbose] > │     v12                                                                      │

00:01:48 #3497 [Verbose] > │     #endif                                                                   │

00:01:48 #3498 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:48 #3499 [Verbose] > │     let v13 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8  │

00:01:48 #3500 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:48 #3501 [Verbose] > │     v13                                                                      │

00:01:48 #3502 [Verbose] > │     #endif                                                                   │

00:01:48 #3503 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:48 #3504 [Verbose] > │     let v14 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8  │

00:01:48 #3505 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:48 #3506 [Verbose] > │     v14                                                                      │

00:01:48 #3507 [Verbose] > │     #endif                                                                   │

00:01:48 #3508 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:48 #3509 [Verbose] > │     let v15 : System.DateTime = System.DateTime.ParseExact (v7.[..24] |> v8  │

00:01:48 #3510 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:48 #3511 [Verbose] > │     v15                                                                      │

00:01:48 #3512 [Verbose] > │     #endif                                                                   │

00:01:48 #3513 [Verbose] > │     |> fun x -> _v9 <- Some x                                                │

00:01:48 #3514 [Verbose] > │     let v16 : System.DateTime = _v9 |> Option.get                            │

00:01:48 #3515 [Verbose] > │     let v17 : System.DateTime = System.DateTime.UtcNow                       │

00:01:48 #3516 [Verbose] > │     let v18 : System.TimeSpan = v17 - v16                                    │

00:01:48 #3517 [Verbose] > │     let v19 : (System.TimeSpan -> float) = _.TotalSeconds                    │

00:01:48 #3518 [Verbose] > │     let v20 : float = v19 v18                                                │

00:01:48 #3519 [Verbose] > │     let v21 : int32 = int32 v20                                              │

00:01:48 #3520 [Verbose] > │     let v22 : string = $"%A{v21}"                                            │

00:01:48 #3521 [Verbose] > │     System.Console.WriteLine v22                                             │

00:01:48 #3522 [Verbose] > │     let v23 : bool = v21 = 0                                                 │

00:01:48 #3523 [Verbose] > │     let v25 : bool =                                                         │

00:01:48 #3524 [Verbose] > │         if v23 then                                                          │

00:01:48 #3525 [Verbose] > │             true                                                             │

00:01:48 #3526 [Verbose] > │         else                                                                 │

00:01:48 #3527 [Verbose] > │             method2(v23)                                                     │

00:01:48 #3528 [Verbose] > │     let v26 : string = $"__expect / actual: %A{v21} / expected: %A{0}"       │

00:01:48 #3529 [Verbose] > │     let v27 : bool = v25 = false                                             │

00:01:48 #3530 [Verbose] > │     if v27 then                                                              │

00:01:48 #3531 [Verbose] > │         failwith<unit> v26                                                   │

00:01:48 #3532 [Verbose] > │ method0()                                                                    │

00:01:48 #3533 [Verbose] > │                                                                              │

00:01:48 #3534 [Verbose] > │ 0                                                                            │

00:01:48 #3535 [Verbose] > │                                                                              │

00:01:48 #3536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3537 [Verbose] >

00:01:48 #3538 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:48 #3539 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:48 #3540 [Verbose] > │ ## new_guid_from_timestamp                                                   │

00:01:48 #3541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:48 #3542 [Verbose] >

00:01:48 #3543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:48 #3544 [Verbose] > inl new_guid_from_timestamp (timestamp : timestamp) =

00:01:48 #3545 [Verbose] >     inl guid = guid.new_raw_guid ()

00:01:48 #3546 [Verbose] >     timestamp_guid_from_timestamp guid timestamp

00:01:49 #3547 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2112-1272-1c4d1df423c7\main.spi

00:01:49 #3548 [Verbose] >

00:01:49 #3549 [Verbose] > ╭─[ 214.32ms - stdout ]────────────────────────────────────────────────────────╮

00:01:49 #3550 [Verbose] > │ ()                                                                           │

00:01:49 #3551 [Verbose] > │                                                                              │

00:01:49 #3552 [Verbose] > │                                                                              │

00:01:49 #3553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:49 #3554 [Verbose] >

00:01:49 #3555 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:49 #3556 [Verbose] > // // test

00:01:49 #3557 [Verbose] >

00:01:49 #3558 [Verbose] > utc_now ()

00:01:49 #3559 [Verbose] > |> ticks

00:01:49 #3560 [Verbose] > |> new_guid_from_timestamp

00:01:49 #3561 [Verbose] > |> timestamp_from_guid

00:01:49 #3562 [Verbose] > |> fun (timestamp timestamp) => (timestamp - (utc_now () |> ticks |> fun

00:01:49 #3563 [Verbose] > (timestamp x) => x)) / 100000i64

00:01:49 #3564 [Verbose] > |> _assert_eq 0i64

00:01:49 #3565 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2134-3437-3120d02874fe\main.spi

00:01:50 #3566 [Verbose] >

00:01:50 #3567 [Verbose] > ╭─[ 1.31s - stdout ]───────────────────────────────────────────────────────────╮

00:01:50 #3568 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:01:50 #3569 [Verbose] > │     v0                                                                       │

00:01:50 #3570 [Verbose] > │ and method0 () : unit =                                                      │

00:01:50 #3571 [Verbose] > │     let v0 : System.DateTime = System.DateTime.UtcNow                        │

00:01:50 #3572 [Verbose] > │     let v1 : (System.DateTime -> int64) = _.Ticks                            │

00:01:50 #3573 [Verbose] > │     let v2 : int64 = v1 v0                                                   │

00:01:50 #3574 [Verbose] > │     let v3 : System.Guid = System.Guid.NewGuid ()                            │

00:01:50 #3575 [Verbose] > │     let v4 : (System.Guid -> string) = _.ToString()                          │

00:01:50 #3576 [Verbose] > │     let v5 : string = v4 v3                                                  │

00:01:50 #3577 [Verbose] > │     let v6 : (int64 -> string) = _.ToString()                                │

00:01:50 #3578 [Verbose] > │     let v7 : string = v6 v2                                                  │

00:01:50 #3579 [Verbose] > │     let v8 : string = v7.PadLeft (18, '0')                                   │

00:01:50 #3580 [Verbose] > │     let v9 : System.Guid = System.Guid $"{v8.[0..7]}-{v8.[8..11]}-{v8.[      │

00:01:50 #3581 [Verbose] > │ 12..15]}-{v8.[16..17]}{v5.[21..]}"                                           │

00:01:50 #3582 [Verbose] > │     let v10 : (System.Guid -> string) = _.ToString()                         │

00:01:50 #3583 [Verbose] > │     let v11 : string = v10 v9                                                │

00:01:50 #3584 [Verbose] > │     let v12 : int64 = int64 $"{v11.[0..7]}{v11.[9..12]}{v11.[14..17]}{v11.[  │

00:01:50 #3585 [Verbose] > │ 19..20]}"                                                                    │

00:01:50 #3586 [Verbose] > │     let v13 : System.DateTime = System.DateTime.UtcNow                       │

00:01:50 #3587 [Verbose] > │     let v14 : (System.DateTime -> int64) = _.Ticks                           │

00:01:50 #3588 [Verbose] > │     let v15 : int64 = v14 v13                                                │

00:01:50 #3589 [Verbose] > │     let v16 : int64 = v12 - v15                                              │

00:01:50 #3590 [Verbose] > │     let v17 : int64 = v16 / 100000L                                          │

00:01:50 #3591 [Verbose] > │     let v18 : string = $"%A{v17}"                                            │

00:01:50 #3592 [Verbose] > │     System.Console.WriteLine v18                                             │

00:01:50 #3593 [Verbose] > │     let v19 : bool = v17 = 0L                                                │

00:01:50 #3594 [Verbose] > │     let v21 : bool =                                                         │

00:01:50 #3595 [Verbose] > │         if v19 then                                                          │

00:01:50 #3596 [Verbose] > │             true                                                             │

00:01:50 #3597 [Verbose] > │         else                                                                 │

00:01:50 #3598 [Verbose] > │             method1(v19)                                                     │

00:01:50 #3599 [Verbose] > │     let v22 : string = $"__expect / actual: %A{v17} / expected: %A{0L}"      │

00:01:50 #3600 [Verbose] > │     let v23 : bool = v21 = false                                             │

00:01:50 #3601 [Verbose] > │     if v23 then                                                              │

00:01:50 #3602 [Verbose] > │         failwith<unit> v22                                                   │

00:01:50 #3603 [Verbose] > │ method0()                                                                    │

00:01:50 #3604 [Verbose] > │                                                                              │

00:01:50 #3605 [Verbose] > │ 0L                                                                           │

00:01:50 #3606 [Verbose] > │                                                                              │

00:01:50 #3607 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:50 #3608 [Verbose] >

00:01:50 #3609 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:50 #3610 [Verbose] > //// test

00:01:50 #3611 [Verbose] >

00:01:50 #3612 [Verbose] > type DateTimeWithZone = {

00:01:50 #3613 [Verbose] >     DateTime: System.DateTimeOffset

00:01:50 #3614 [Verbose] >     TimeZone: System.TimeZoneInfo

00:01:50 #3615 [Verbose] > }

00:01:50 #3616 [Verbose] >

00:01:50 #3617 [Verbose] > try

00:01:50 #3618 [Verbose] >     let now = System.DateTimeOffset.Now

00:01:50 #3619 [Verbose] >     let timeZoneInfo = System.TimeZoneInfo.Local

00:01:50 #3620 [Verbose] >     let dateTimeWithZone = { DateTime = now; TimeZone = timeZoneInfo }

00:01:50 #3621 [Verbose] >

00:01:50 #3622 [Verbose] >     printfn "DateTime: %O" dateTimeWithZone.DateTime

00:01:50 #3623 [Verbose] >     printfn "Time Zone: %s" dateTimeWithZone.TimeZone.DisplayName

00:01:50 #3624 [Verbose] >     printfn "Is DST: %b"

00:01:50 #3625 [Verbose] > (timeZoneInfo.IsDaylightSavingTime(dateTimeWithZone.DateTime.DateTime))

00:01:50 #3626 [Verbose] >     printfn "v1: %s" (dateTimeWithZone.TimeZone.GetUtcOffset(now) |> string)

00:01:50 #3627 [Verbose] >     printfn "v2: %s" (dateTimeWithZone.TimeZone |> string)

00:01:50 #3628 [Verbose] > with ex ->

00:01:50 #3629 [Verbose] >     printfn "error: %A" ex

00:01:50 #3630 [Verbose] >

00:01:50 #3631 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:50 #3632 [Verbose] > #r

00:01:50 #3633 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:01:50 #3634 [Verbose] > spNetCore.Html.Abstractions.dll"

00:01:50 #3635 [Verbose] > #r

00:01:50 #3636 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:50 #3637 [Verbose] > otNet.Interactive.dll"

00:01:50 #3638 [Verbose] > #r

00:01:50 #3639 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:50 #3640 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:50 #3641 [Verbose] > #r

00:01:50 #3642 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:50 #3643 [Verbose] > otNet.Interactive.Formatting.dll"

00:01:50 #3644 [Verbose] > open System

00:01:50 #3645 [Verbose] > open System.IO

00:01:50 #3646 [Verbose] > open System.Text

00:01:50 #3647 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:01:51 #3648 [Verbose] >

00:01:51 #3649 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:01:51 #3650 [Verbose] > #r

00:01:51 #3651 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:51 #3652 [Verbose] > otNet.Interactive.FSharp.dll"

00:01:51 #3653 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:01:51 #3654 [Verbose] > #r

00:01:51 #3655 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:01:51 #3656 [Verbose] > otNet.Interactive.dll"

00:01:51 #3657 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:01:52 #3658 [Verbose] >

00:01:52 #3659 [Verbose] > ╭─[ 2.16s - stdout ]───────────────────────────────────────────────────────────╮

00:01:52 #3660 [Verbose] > │ DateTime: 2024-04-04 12:51:24 PM -04:00                                      │

00:01:52 #3661 [Verbose] > │ Time Zone: (UTC-04:00) Cuiaba                                                │

00:01:52 #3662 [Verbose] > │ Is DST: false                                                                │

00:01:52 #3663 [Verbose] > │ v1: -04:00:00                                                                │

00:01:52 #3664 [Verbose] > │ v2: (UTC-04:00) Cuiaba                                                       │

00:01:52 #3665 [Verbose] > │                                                                              │

00:01:52 #3666 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:52 #3667 [Verbose] >

00:01:52 #3668 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:52 #3669 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:52 #3670 [Verbose] > │ ## main                                                                      │

00:01:52 #3671 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:52 #3672 [Verbose] >

00:01:52 #3673 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:52 #3674 [Verbose] > inl main () =

00:01:52 #3675 [Verbose] >     $"let date_time_guid_from_date_time x = !date_time_guid_from_date_time x" :

00:01:52 #3676 [Verbose] > ()

00:01:52 #3677 [Verbose] >     $"let date_time_from_guid x = !date_time_from_guid x" : ()

00:01:52 #3678 [Verbose] >     $"let timestamp_guid_from_timestamp x = !timestamp_guid_from_timestamp x" :

00:01:52 #3679 [Verbose] > ()

00:01:52 #3680 [Verbose] >     $"let timestamp_from_guid x = !timestamp_from_guid x" : ()

00:01:52 #3681 [Verbose] >     $"let new_guid_from_date_time x = !new_guid_from_date_time x" : ()

00:01:52 #3682 [Verbose] >     $"let new_guid_from_timestamp x = !new_guid_from_timestamp x" : ()

00:01:52 #3683 [Verbose] >     $"let format x = !format x" : ()

00:01:52 #3684 [Verbose] >     $"let format_iso8601 x = !format_iso8601 x" : ()

00:01:52 #3685 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-2485-8558-807cf015857a\main.spi

00:01:52 #3686 [Verbose] >

00:01:52 #3687 [Verbose] > ╭─[ 412.90ms - stdout ]────────────────────────────────────────────────────────╮

00:01:53 #3688 [Verbose] > │ let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =   │

00:01:53 #3689 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:53 #3690 [Verbose] > │     let v3 : string = v2 v0                                                  │

00:01:53 #3691 [Verbose] > │     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │

00:01:53 #3692 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"             │

00:01:53 #3693 [Verbose] > │     v5                                                                       │

00:01:53 #3694 [Verbose] > │ and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =      │

00:01:53 #3695 [Verbose] > │     closure1(v0)                                                             │

00:01:53 #3696 [Verbose] > │ and closure5 (v0 : string, v1 : string) (v2 : string) : string =             │

00:01:53 #3697 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │

00:01:53 #3698 [Verbose] > │     v3                                                                       │

00:01:53 #3699 [Verbose] > │ and closure4 (v0 : string) (v1 : string) : (string -> string) =              │

00:01:53 #3700 [Verbose] > │     closure5(v0, v1)                                                         │

00:01:53 #3701 [Verbose] > │ and closure3 () (v0 : string) : (string -> (string -> string)) =             │

00:01:53 #3702 [Verbose] > │     closure4(v0)                                                             │

00:01:53 #3703 [Verbose] > │ and method0 () : (string -> (string -> (string -> string))) =                │

00:01:53 #3704 [Verbose] > │     closure3()                                                               │

00:01:53 #3705 [Verbose] > │ and closure2 () (v0 : System.Guid) : System.DateTime =                       │

00:01:53 #3706 [Verbose] > │     let v1 : (System.Guid -> string) = _.ToString()                          │

00:01:53 #3707 [Verbose] > │     let v2 : string = v1 v0                                                  │

00:01:53 #3708 [Verbose] > │     let v3 : (string -> (string -> (string -> string))) = method0()          │

00:01:53 #3709 [Verbose] > │     let v4 : System.DateTime option = None                                   │

00:01:53 #3710 [Verbose] > │     let mutable _v4 = v4                                                     │

00:01:53 #3711 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:01:53 #3712 [Verbose] > │     let v5 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-"    │

00:01:53 #3713 [Verbose] > │ "")                                                                          │

00:01:53 #3714 [Verbose] > │     v5                                                                       │

00:01:53 #3715 [Verbose] > │     #endif                                                                   │

00:01:53 #3716 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:01:53 #3717 [Verbose] > │     let v6 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-"    │

00:01:53 #3718 [Verbose] > │ "")                                                                          │

00:01:53 #3719 [Verbose] > │     v6                                                                       │

00:01:53 #3720 [Verbose] > │     #endif                                                                   │

00:01:53 #3721 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:01:53 #3722 [Verbose] > │     let v7 : System.DateTime = System.DateTime.Parse (v2.[..24] |> v3 "-"    │

00:01:53 #3723 [Verbose] > │ "")                                                                          │

00:01:53 #3724 [Verbose] > │     v7                                                                       │

00:01:53 #3725 [Verbose] > │     #endif                                                                   │

00:01:53 #3726 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:01:53 #3727 [Verbose] > │     let v8 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3   │

00:01:53 #3728 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:53 #3729 [Verbose] > │     v8                                                                       │

00:01:53 #3730 [Verbose] > │     #endif                                                                   │

00:01:53 #3731 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:01:53 #3732 [Verbose] > │     let v9 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3   │

00:01:53 #3733 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:53 #3734 [Verbose] > │     v9                                                                       │

00:01:53 #3735 [Verbose] > │     #endif                                                                   │

00:01:53 #3736 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:01:53 #3737 [Verbose] > │     let v10 : System.DateTime = System.DateTime.ParseExact (v2.[..24] |> v3  │

00:01:53 #3738 [Verbose] > │ "-" "", "yyyyMMddHHmmssfffffff", null)                                       │

00:01:53 #3739 [Verbose] > │     v10                                                                      │

00:01:53 #3740 [Verbose] > │     #endif                                                                   │

00:01:53 #3741 [Verbose] > │     |> fun x -> _v4 <- Some x                                                │

00:01:53 #3742 [Verbose] > │     let v11 : System.DateTime = _v4 |> Option.get                            │

00:01:53 #3743 [Verbose] > │     v11                                                                      │

00:01:53 #3744 [Verbose] > │ and closure7 (v0 : System.Guid) (v1 : int64) : System.Guid =                 │

00:01:53 #3745 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:53 #3746 [Verbose] > │     let v3 : string = v2 v0                                                  │

00:01:53 #3747 [Verbose] > │     let v4 : (int64 -> string) = _.ToString()                                │

00:01:53 #3748 [Verbose] > │     let v5 : string = v4 v1                                                  │

00:01:53 #3749 [Verbose] > │     let v6 : string = v5.PadLeft (18, '0')                                   │

00:01:53 #3750 [Verbose] > │     let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[      │

00:01:53 #3751 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}"                                           │

00:01:53 #3752 [Verbose] > │     v7                                                                       │

00:01:53 #3753 [Verbose] > │ and closure6 () (v0 : System.Guid) : (int64 -> System.Guid) =                │

00:01:53 #3754 [Verbose] > │     closure7(v0)                                                             │

00:01:53 #3755 [Verbose] > │ and closure8 () (v0 : System.Guid) : int64 =                                 │

00:01:53 #3756 [Verbose] > │     let v1 : (System.Guid -> string) = _.ToString()                          │

00:01:53 #3757 [Verbose] > │     let v2 : string = v1 v0                                                  │

00:01:53 #3758 [Verbose] > │     let v3 : int64 = int64 $"{v2.[0..7]}{v2.[9..12]}{v2.[14..17]}{v2.[       │

00:01:53 #3759 [Verbose] > │ 19..20]}"                                                                    │

00:01:53 #3760 [Verbose] > │     v3                                                                       │

00:01:53 #3761 [Verbose] > │ and closure9 () (v0 : System.DateTime) : System.Guid =                       │

00:01:53 #3762 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │

00:01:53 #3763 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:53 #3764 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:53 #3765 [Verbose] > │     let v4 : string = v0.ToString "yyyyMMdd-HHmm-ssff-ffff-f"                │

00:01:53 #3766 [Verbose] > │     let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"             │

00:01:53 #3767 [Verbose] > │     v5                                                                       │

00:01:53 #3768 [Verbose] > │ and closure10 () (v0 : int64) : System.Guid =                                │

00:01:53 #3769 [Verbose] > │     let v1 : System.Guid = System.Guid.NewGuid ()                            │

00:01:53 #3770 [Verbose] > │     let v2 : (System.Guid -> string) = _.ToString()                          │

00:01:53 #3771 [Verbose] > │     let v3 : string = v2 v1                                                  │

00:01:53 #3772 [Verbose] > │     let v4 : (int64 -> string) = _.ToString()                                │

00:01:53 #3773 [Verbose] > │     let v5 : string = v4 v0                                                  │

00:01:53 #3774 [Verbose] > │     let v6 : string = v5.PadLeft (18, '0')                                   │

00:01:53 #3775 [Verbose] > │     let v7 : System.Guid = System.Guid $"{v6.[0..7]}-{v6.[8..11]}-{v6.[      │

00:01:53 #3776 [Verbose] > │ 12..15]}-{v6.[16..17]}{v3.[21..]}"                                           │

00:01:53 #3777 [Verbose] > │     v7                                                                       │

00:01:53 #3778 [Verbose] > │ and closure12 (v0 : string) (v1 : System.DateTime) : string =                │

00:01:53 #3779 [Verbose] > │     let v2 : (string -> string) = v1.ToString                                │

00:01:53 #3780 [Verbose] > │     v2 v0                                                                    │

00:01:53 #3781 [Verbose] > │ and closure11 () (v0 : string) : (System.DateTime -> string) =               │

00:01:53 #3782 [Verbose] > │     closure12(v0)                                                            │

00:01:53 #3783 [Verbose] > │ and closure13 () (v0 : System.DateTime) : string =                           │

00:01:53 #3784 [Verbose] > │     let v1 : (string -> string) = v0.ToString                                │

00:01:53 #3785 [Verbose] > │     let v2 : string = "yyyy-MM-ddTHH-mm-ss.fff"                              │

00:01:53 #3786 [Verbose] > │     v1 v2                                                                    │

00:01:53 #3787 [Verbose] > │ let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0()      │

00:01:53 #3788 [Verbose] > │ let date_time_guid_from_date_time x = v0 x                                   │

00:01:53 #3789 [Verbose] > │ let v1 : (System.Guid -> System.DateTime) = closure2()                       │

00:01:53 #3790 [Verbose] > │ let date_time_from_guid x = v1 x                                             │

00:01:53 #3791 [Verbose] > │ let v2 : (System.Guid -> (int64 -> System.Guid)) = closure6()                │

00:01:53 #3792 [Verbose] > │ let timestamp_guid_from_timestamp x = v2 x                                   │

00:01:53 #3793 [Verbose] > │ let v3 : (System.Guid -> int64) = closure8()                                 │

00:01:53 #3794 [Verbose] > │ let timestamp_from_guid x = v3 x                                             │

00:01:53 #3795 [Verbose] > │ let v4 : (System.DateTime -> System.Guid) = closure9()                       │

00:01:53 #3796 [Verbose] > │ let new_guid_from_date_time x = v4 x                                         │

00:01:53 #3797 [Verbose] > │ let v5 : (int64 -> System.Guid) = closure10()                                │

00:01:53 #3798 [Verbose] > │ let new_guid_from_timestamp x = v5 x                                         │

00:01:53 #3799 [Verbose] > │ let v6 : (string -> (System.DateTime -> string)) = closure11()               │

00:01:53 #3800 [Verbose] > │ let format x = v6 x                                                          │

00:01:53 #3801 [Verbose] > │ let v7 : (System.DateTime -> string) = closure13()                           │

00:01:53 #3802 [Verbose] > │ let format_iso8601 x = v7 x                                                  │

00:01:53 #3803 [Verbose] > │ ()                                                                           │

00:01:53 #3804 [Verbose] > │                                                                              │

00:01:53 #3805 [Verbose] > │                                                                              │

00:01:53 #3806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:55 #3807 [Verbose] > [NbConvertApp] Converting notebook date_time.dib.ipynb to html

00:01:55 #3808 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:01:55 #3809 [Verbose] >   validate(nb)

00:01:56 #3810 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:01:56 #3811 [Verbose] >   return _pygments_highlight(

00:01:56 #3812 [Verbose] > [NbConvertApp] Writing 373550 bytes to date_time.dib.html

00:01:57 #3813 [Debug] executeAsync / exitCode: 0 / output.Length: 88842

00:01:57 #3814 [Debug] main / executeCommand / exitCode: 0

00:01:57 #3815 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:02:00 #3816 [Verbose] >

00:02:00 #3817 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:00 #3818 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:00 #3819 [Verbose] > │ # math                                                                       │

00:02:00 #3820 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:01 #3821 [Verbose] >

00:02:01 #3822 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:01 #3823 [Verbose] > // // test

00:02:01 #3824 [Verbose] >

00:02:01 #3825 [Verbose] > open testing

00:02:04 #3826 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3606-0686-015b10b3476a\main.spi

00:02:05 #3827 [Verbose] >

00:02:05 #3828 [Verbose] > ╭─[ 4.65s - stdout ]───────────────────────────────────────────────────────────╮

00:02:05 #3829 [Verbose] > │ ()                                                                           │

00:02:05 #3830 [Verbose] > │                                                                              │

00:02:05 #3831 [Verbose] > │                                                                              │

00:02:05 #3832 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:05 #3833 [Verbose] >

00:02:05 #3834 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:05 #3835 [Verbose] > // // test

00:02:05 #3836 [Verbose] >

00:02:05 #3837 [Verbose] > 2 * 2 / 0.4f64 |> sqrt

00:02:05 #3838 [Verbose] > |> _assert_approx_eq None 3.1622776601683795

00:02:05 #3839 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3793-9333-9ce193b896bf\main.spi

00:02:06 #3840 [Verbose] >

00:02:06 #3841 [Verbose] > ╭─[ 1.03s - stdout ]───────────────────────────────────────────────────────────╮

00:02:06 #3842 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:06 #3843 [Verbose] > │     let v0 : string = $"%A{3.1622776601683795}"                              │

00:02:06 #3844 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:06 #3845 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.1622776601683795} /          │

00:02:06 #3846 [Verbose] > │ expected: %A{3.1622776601683795}"                                            │

00:02:06 #3847 [Verbose] > │     ()                                                                       │

00:02:06 #3848 [Verbose] > │ method0()                                                                    │

00:02:06 #3849 [Verbose] > │                                                                              │

00:02:06 #3850 [Verbose] > │ 3.16227766                                                                   │

00:02:06 #3851 [Verbose] > │                                                                              │

00:02:06 #3852 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:06 #3853 [Verbose] >

00:02:06 #3854 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:06 #3855 [Verbose] > // // test

00:02:06 #3856 [Verbose] >

00:02:06 #3857 [Verbose] > 2f64 / 3

00:02:06 #3858 [Verbose] > |> _assert_approx_eq None 0.6666666666666666

00:02:06 #3859 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3897-9706-922b16b13363\main.spi

00:02:06 #3860 [Verbose] >

00:02:06 #3861 [Verbose] > ╭─[ 232.48ms - stdout ]────────────────────────────────────────────────────────╮

00:02:06 #3862 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:06 #3863 [Verbose] > │     let v0 : string = $"%A{0.6666666666666666}"                              │

00:02:06 #3864 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:06 #3865 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.6666666666666666} /          │

00:02:06 #3866 [Verbose] > │ expected: %A{0.6666666666666666}"                                            │

00:02:06 #3867 [Verbose] > │     ()                                                                       │

00:02:06 #3868 [Verbose] > │ method0()                                                                    │

00:02:06 #3869 [Verbose] > │                                                                              │

00:02:06 #3870 [Verbose] > │ 0.6666666667                                                                 │

00:02:06 #3871 [Verbose] > │                                                                              │

00:02:06 #3872 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:06 #3873 [Verbose] >

00:02:06 #3874 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:06 #3875 [Verbose] > // // test

00:02:06 #3876 [Verbose] >

00:02:06 #3877 [Verbose] > 2f64 |> log

00:02:06 #3878 [Verbose] > |> _assert_approx_eq None 0.6931471805599453

00:02:07 #3879 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3920-2064-2f469bdee58a\main.spi

00:02:07 #3880 [Verbose] >

00:02:07 #3881 [Verbose] > ╭─[ 225.21ms - stdout ]────────────────────────────────────────────────────────╮

00:02:07 #3882 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:07 #3883 [Verbose] > │     let v0 : string = $"%A{0.6931471805599453}"                              │

00:02:07 #3884 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:07 #3885 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.6931471805599453} /          │

00:02:07 #3886 [Verbose] > │ expected: %A{0.6931471805599453}"                                            │

00:02:07 #3887 [Verbose] > │     ()                                                                       │

00:02:07 #3888 [Verbose] > │ method0()                                                                    │

00:02:07 #3889 [Verbose] > │                                                                              │

00:02:07 #3890 [Verbose] > │ 0.6931471806                                                                 │

00:02:07 #3891 [Verbose] > │                                                                              │

00:02:07 #3892 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:07 #3893 [Verbose] >

00:02:07 #3894 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:07 #3895 [Verbose] > // // test

00:02:07 #3896 [Verbose] >

00:02:07 #3897 [Verbose] > pi

00:02:07 #3898 [Verbose] > |> _assert_approx_eq None 3.141592653589793f64

00:02:07 #3899 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3943-4377-460f65bf51e9\main.spi

00:02:07 #3900 [Verbose] >

00:02:07 #3901 [Verbose] > ╭─[ 231.40ms - stdout ]────────────────────────────────────────────────────────╮

00:02:07 #3902 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:07 #3903 [Verbose] > │     let v0 : string = $"%A{3.141592653589793}"                               │

00:02:07 #3904 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:07 #3905 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.141592653589793} / expected: │

00:02:07 #3906 [Verbose] > │ %A{3.141592653589793}"                                                       │

00:02:07 #3907 [Verbose] > │     ()                                                                       │

00:02:07 #3908 [Verbose] > │ method0()                                                                    │

00:02:07 #3909 [Verbose] > │                                                                              │

00:02:07 #3910 [Verbose] > │ 3.141592654                                                                  │

00:02:07 #3911 [Verbose] > │                                                                              │

00:02:07 #3912 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:07 #3913 [Verbose] >

00:02:07 #3914 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:07 #3915 [Verbose] > // // test

00:02:07 #3916 [Verbose] >

00:02:07 #3917 [Verbose] > pi |> cos

00:02:07 #3918 [Verbose] > |> _assert_eq -1f64

00:02:07 #3919 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3967-6742-68c0c6c94ece\main.spi

00:02:07 #3920 [Verbose] >

00:02:07 #3921 [Verbose] > ╭─[ 214.35ms - stdout ]────────────────────────────────────────────────────────╮

00:02:07 #3922 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:07 #3923 [Verbose] > │     let v0 : string = $"%A{-1.0}"                                            │

00:02:07 #3924 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:07 #3925 [Verbose] > │     let v1 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}"    │

00:02:07 #3926 [Verbose] > │     ()                                                                       │

00:02:07 #3927 [Verbose] > │ method0()                                                                    │

00:02:07 #3928 [Verbose] > │                                                                              │

00:02:07 #3929 [Verbose] > │ -1.0                                                                         │

00:02:07 #3930 [Verbose] > │                                                                              │

00:02:07 #3931 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:07 #3932 [Verbose] >

00:02:07 #3933 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:07 #3934 [Verbose] > // // test

00:02:07 #3935 [Verbose] >

00:02:07 #3936 [Verbose] > pi

00:02:07 #3937 [Verbose] > |> cos

00:02:07 #3938 [Verbose] > |> fun n => n / 2f64

00:02:07 #3939 [Verbose] > |> _assert_approx_eq None -0.5

00:02:07 #3940 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-3989-8955-8eba8c7671a3\main.spi

00:02:07 #3941 [Verbose] >

00:02:07 #3942 [Verbose] > ╭─[ 213.39ms - stdout ]────────────────────────────────────────────────────────╮

00:02:07 #3943 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:07 #3944 [Verbose] > │     let v0 : string = $"%A{-0.5}"                                            │

00:02:07 #3945 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:07 #3946 [Verbose] > │     let v1 : string = $"__expect / actual: %A{-0.5} / expected: %A{-0.5}"    │

00:02:07 #3947 [Verbose] > │     ()                                                                       │

00:02:07 #3948 [Verbose] > │ method0()                                                                    │

00:02:07 #3949 [Verbose] > │                                                                              │

00:02:07 #3950 [Verbose] > │ -0.5                                                                         │

00:02:07 #3951 [Verbose] > │                                                                              │

00:02:07 #3952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:07 #3953 [Verbose] >

00:02:07 #3954 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:07 #3955 [Verbose] > // // test

00:02:07 #3956 [Verbose] >

00:02:07 #3957 [Verbose] > pi / 2 |> cos

00:02:07 #3958 [Verbose] > |> _assert_approx_eq None 0.00000000000000006123233995736766f64

00:02:07 #3959 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4011-1163-1b2381972525\main.spi

00:02:08 #3960 [Verbose] >

00:02:08 #3961 [Verbose] > ╭─[ 242.28ms - stdout ]────────────────────────────────────────────────────────╮

00:02:08 #3962 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:08 #3963 [Verbose] > │     let v0 : string = $"%A{6.123233995736766E-17}"                           │

00:02:08 #3964 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:08 #3965 [Verbose] > │     let v1 : string = $"__expect / actual: %A{6.123233995736766E-17} /       │

00:02:08 #3966 [Verbose] > │ expected: %A{6.123233995736766E-17}"                                         │

00:02:08 #3967 [Verbose] > │     ()                                                                       │

00:02:08 #3968 [Verbose] > │ method0()                                                                    │

00:02:08 #3969 [Verbose] > │                                                                              │

00:02:08 #3970 [Verbose] > │ 6.123233996e-17                                                              │

00:02:08 #3971 [Verbose] > │                                                                              │

00:02:08 #3972 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #3973 [Verbose] >

00:02:08 #3974 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:08 #3975 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:08 #3976 [Verbose] > │ ## atan2                                                                     │

00:02:08 #3977 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #3978 [Verbose] >

00:02:08 #3979 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:08 #3980 [Verbose] > inl atan2 (y : f64) (x : f64) =

00:02:08 #3981 [Verbose] >     $"System.Math.Atan2 (!y, !x)" : f64

00:02:08 #3982 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4037-3701-3bc60154cb6f\main.spi

00:02:08 #3983 [Verbose] >

00:02:08 #3984 [Verbose] > ╭─[ 195.56ms - stdout ]────────────────────────────────────────────────────────╮

00:02:08 #3985 [Verbose] > │ ()                                                                           │

00:02:08 #3986 [Verbose] > │                                                                              │

00:02:08 #3987 [Verbose] > │                                                                              │

00:02:08 #3988 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #3989 [Verbose] >

00:02:08 #3990 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:08 #3991 [Verbose] > // // test

00:02:08 #3992 [Verbose] >

00:02:08 #3993 [Verbose] > 0 |> atan2 1

00:02:08 #3994 [Verbose] > |> _assert_eq 1.5707963267948966

00:02:08 #3995 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4056-5639-515d2ac5b6ef\main.spi

00:02:08 #3996 [Verbose] >

00:02:08 #3997 [Verbose] > ╭─[ 352.11ms - stdout ]────────────────────────────────────────────────────────╮

00:02:08 #3998 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:08 #3999 [Verbose] > │     v0                                                                       │

00:02:08 #4000 [Verbose] > │ and method0 () : unit =                                                      │

00:02:08 #4001 [Verbose] > │     let v0 : float = System.Math.Atan2 (1.0, 0.0)                            │

00:02:08 #4002 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:02:08 #4003 [Verbose] > │     System.Console.WriteLine v1                                              │

00:02:08 #4004 [Verbose] > │     let v2 : bool = v0 = 1.5707963267948966                                  │

00:02:08 #4005 [Verbose] > │     let v4 : bool =                                                          │

00:02:08 #4006 [Verbose] > │         if v2 then                                                           │

00:02:08 #4007 [Verbose] > │             true                                                             │

00:02:08 #4008 [Verbose] > │         else                                                                 │

00:02:08 #4009 [Verbose] > │             method1(v2)                                                      │

00:02:08 #4010 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected:                │

00:02:08 #4011 [Verbose] > │ %A{1.5707963267948966}"                                                      │

00:02:08 #4012 [Verbose] > │     let v6 : bool = v4 = false                                               │

00:02:08 #4013 [Verbose] > │     if v6 then                                                               │

00:02:08 #4014 [Verbose] > │         failwith<unit> v5                                                    │

00:02:08 #4015 [Verbose] > │ method0()                                                                    │

00:02:08 #4016 [Verbose] > │                                                                              │

00:02:08 #4017 [Verbose] > │ 1.570796327                                                                  │

00:02:08 #4018 [Verbose] > │                                                                              │

00:02:08 #4019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #4020 [Verbose] >

00:02:08 #4021 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:08 #4022 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:08 #4023 [Verbose] > │ ## e                                                                         │

00:02:08 #4024 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #4025 [Verbose] >

00:02:08 #4026 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:08 #4027 [Verbose] > inl e () =

00:02:08 #4028 [Verbose] >     exp 1f64

00:02:08 #4029 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4093-9301-9b1b7387a140\main.spi

00:02:08 #4030 [Verbose] >

00:02:08 #4031 [Verbose] > ╭─[ 229.04ms - stdout ]────────────────────────────────────────────────────────╮

00:02:08 #4032 [Verbose] > │ ()                                                                           │

00:02:08 #4033 [Verbose] > │                                                                              │

00:02:08 #4034 [Verbose] > │                                                                              │

00:02:08 #4035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #4036 [Verbose] >

00:02:08 #4037 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:08 #4038 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:08 #4039 [Verbose] > │ ## floor                                                                     │

00:02:08 #4040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:08 #4041 [Verbose] >

00:02:08 #4042 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:08 #4043 [Verbose] > inl floor forall t {float}. (n : t) : t =

00:02:08 #4044 [Verbose] >     n |> $'floor'

00:02:09 #4045 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4116-1657-182c4d93a37d\main.spi

00:02:09 #4046 [Verbose] >

00:02:09 #4047 [Verbose] > ╭─[ 193.79ms - stdout ]────────────────────────────────────────────────────────╮

00:02:09 #4048 [Verbose] > │ ()                                                                           │

00:02:09 #4049 [Verbose] > │                                                                              │

00:02:09 #4050 [Verbose] > │                                                                              │

00:02:09 #4051 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #4052 [Verbose] >

00:02:09 #4053 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:09 #4054 [Verbose] > // // test

00:02:09 #4055 [Verbose] >

00:02:09 #4056 [Verbose] > 0.6 |> floor

00:02:09 #4057 [Verbose] > |> _assert_eq 0f64

00:02:09 #4058 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4136-3620-3e6c6a0fcb6e\main.spi

00:02:09 #4059 [Verbose] >

00:02:09 #4060 [Verbose] > ╭─[ 295.52ms - stdout ]────────────────────────────────────────────────────────╮

00:02:09 #4061 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:09 #4062 [Verbose] > │     v0                                                                       │

00:02:09 #4063 [Verbose] > │ and method0 () : unit =                                                      │

00:02:09 #4064 [Verbose] > │     let v0 : (float -> float) = floor                                        │

00:02:09 #4065 [Verbose] > │     let v1 : float = v0 0.6                                                  │

00:02:09 #4066 [Verbose] > │     let v2 : string = $"%A{v1}"                                              │

00:02:09 #4067 [Verbose] > │     System.Console.WriteLine v2                                              │

00:02:09 #4068 [Verbose] > │     let v3 : bool = v1 = 0.0                                                 │

00:02:09 #4069 [Verbose] > │     let v5 : bool =                                                          │

00:02:09 #4070 [Verbose] > │         if v3 then                                                           │

00:02:09 #4071 [Verbose] > │             true                                                             │

00:02:09 #4072 [Verbose] > │         else                                                                 │

00:02:09 #4073 [Verbose] > │             method1(v3)                                                      │

00:02:09 #4074 [Verbose] > │     let v6 : string = $"__expect / actual: %A{v1} / expected: %A{0.0}"       │

00:02:09 #4075 [Verbose] > │     let v7 : bool = v5 = false                                               │

00:02:09 #4076 [Verbose] > │     if v7 then                                                               │

00:02:09 #4077 [Verbose] > │         failwith<unit> v6                                                    │

00:02:09 #4078 [Verbose] > │ method0()                                                                    │

00:02:09 #4079 [Verbose] > │                                                                              │

00:02:09 #4080 [Verbose] > │ 0.0                                                                          │

00:02:09 #4081 [Verbose] > │                                                                              │

00:02:09 #4082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #4083 [Verbose] >

00:02:09 #4084 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:09 #4085 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:09 #4086 [Verbose] > │ ## ceil                                                                      │

00:02:09 #4087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #4088 [Verbose] >

00:02:09 #4089 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:09 #4090 [Verbose] > inl ceil forall t {float}. (n : t) : t =

00:02:09 #4091 [Verbose] >     n |> $'ceil'

00:02:09 #4092 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4167-6732-61eafe87c66e\main.spi

00:02:09 #4093 [Verbose] >

00:02:09 #4094 [Verbose] > ╭─[ 233.63ms - stdout ]────────────────────────────────────────────────────────╮

00:02:09 #4095 [Verbose] > │ ()                                                                           │

00:02:09 #4096 [Verbose] > │                                                                              │

00:02:09 #4097 [Verbose] > │                                                                              │

00:02:09 #4098 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #4099 [Verbose] >

00:02:09 #4100 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:09 #4101 [Verbose] > // // test

00:02:09 #4102 [Verbose] >

00:02:09 #4103 [Verbose] > 0.6 |> ceil

00:02:09 #4104 [Verbose] > |> _assert_eq 1f64

00:02:09 #4105 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4190-9092-99a0d3ae9fdf\main.spi

00:02:09 #4106 [Verbose] >

00:02:09 #4107 [Verbose] > ╭─[ 239.56ms - stdout ]────────────────────────────────────────────────────────╮

00:02:09 #4108 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:09 #4109 [Verbose] > │     v0                                                                       │

00:02:09 #4110 [Verbose] > │ and method0 () : unit =                                                      │

00:02:09 #4111 [Verbose] > │     let v0 : (float -> float) = ceil                                         │

00:02:09 #4112 [Verbose] > │     let v1 : float = v0 0.6                                                  │

00:02:09 #4113 [Verbose] > │     let v2 : string = $"%A{v1}"                                              │

00:02:09 #4114 [Verbose] > │     System.Console.WriteLine v2                                              │

00:02:09 #4115 [Verbose] > │     let v3 : bool = v1 = 1.0                                                 │

00:02:09 #4116 [Verbose] > │     let v5 : bool =                                                          │

00:02:09 #4117 [Verbose] > │         if v3 then                                                           │

00:02:09 #4118 [Verbose] > │             true                                                             │

00:02:09 #4119 [Verbose] > │         else                                                                 │

00:02:09 #4120 [Verbose] > │             method1(v3)                                                      │

00:02:09 #4121 [Verbose] > │     let v6 : string = $"__expect / actual: %A{v1} / expected: %A{1.0}"       │

00:02:09 #4122 [Verbose] > │     let v7 : bool = v5 = false                                               │

00:02:09 #4123 [Verbose] > │     if v7 then                                                               │

00:02:09 #4124 [Verbose] > │         failwith<unit> v6                                                    │

00:02:09 #4125 [Verbose] > │ method0()                                                                    │

00:02:09 #4126 [Verbose] > │                                                                              │

00:02:09 #4127 [Verbose] > │ 1.0                                                                          │

00:02:09 #4128 [Verbose] > │                                                                              │

00:02:09 #4129 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #4130 [Verbose] >

00:02:09 #4131 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:09 #4132 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:09 #4133 [Verbose] > │ ## round                                                                     │

00:02:09 #4134 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #4135 [Verbose] >

00:02:09 #4136 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:09 #4137 [Verbose] > inl round forall t {float}. (n : t) : t =

00:02:09 #4138 [Verbose] >     n |> $'round'

00:02:10 #4139 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4216-1656-1a7eea6474c3\main.spi

00:02:10 #4140 [Verbose] >

00:02:10 #4141 [Verbose] > ╭─[ 212.23ms - stdout ]────────────────────────────────────────────────────────╮

00:02:10 #4142 [Verbose] > │ ()                                                                           │

00:02:10 #4143 [Verbose] > │                                                                              │

00:02:10 #4144 [Verbose] > │                                                                              │

00:02:10 #4145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:10 #4146 [Verbose] >

00:02:10 #4147 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:10 #4148 [Verbose] > // // test

00:02:10 #4149 [Verbose] >

00:02:10 #4150 [Verbose] > 0.5 |> round

00:02:10 #4151 [Verbose] > |> _assert_eq 0f64

00:02:10 #4152 [Verbose] >

00:02:10 #4153 [Verbose] > 1.5 |> round

00:02:10 #4154 [Verbose] > |> _assert_eq 2f64

00:02:10 #4155 [Verbose] >

00:02:10 #4156 [Verbose] > 2.5 |> round

00:02:10 #4157 [Verbose] > |> _assert_eq 2f64

00:02:10 #4158 [Verbose] >

00:02:10 #4159 [Verbose] > 3.5 |> round

00:02:10 #4160 [Verbose] > |> _assert_eq 4f64

00:02:10 #4161 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4238-3802-38c1a24c78e4\main.spi

00:02:10 #4162 [Verbose] >

00:02:10 #4163 [Verbose] > ╭─[ 277.58ms - stdout ]────────────────────────────────────────────────────────╮

00:02:10 #4164 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:10 #4165 [Verbose] > │     v0                                                                       │

00:02:10 #4166 [Verbose] > │ and method0 () : unit =                                                      │

00:02:10 #4167 [Verbose] > │     let v0 : (float -> float) = round                                        │

00:02:10 #4168 [Verbose] > │     let v1 : float = v0 0.5                                                  │

00:02:10 #4169 [Verbose] > │     let v2 : string = $"%A{v1}"                                              │

00:02:10 #4170 [Verbose] > │     System.Console.WriteLine v2                                              │

00:02:10 #4171 [Verbose] > │     let v3 : bool = v1 = 0.0                                                 │

00:02:10 #4172 [Verbose] > │     let v5 : bool =                                                          │

00:02:10 #4173 [Verbose] > │         if v3 then                                                           │

00:02:10 #4174 [Verbose] > │             true                                                             │

00:02:10 #4175 [Verbose] > │         else                                                                 │

00:02:10 #4176 [Verbose] > │             method1(v3)                                                      │

00:02:10 #4177 [Verbose] > │     let v6 : string = $"__expect / actual: %A{v1} / expected: %A{0.0}"       │

00:02:10 #4178 [Verbose] > │     let v7 : bool = v5 = false                                               │

00:02:10 #4179 [Verbose] > │     if v7 then                                                               │

00:02:10 #4180 [Verbose] > │         failwith<unit> v6                                                    │

00:02:10 #4181 [Verbose] > │     let v8 : (float -> float) = round                                        │

00:02:10 #4182 [Verbose] > │     let v9 : float = v8 1.5                                                  │

00:02:10 #4183 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │

00:02:10 #4184 [Verbose] > │     System.Console.WriteLine v10                                             │

00:02:10 #4185 [Verbose] > │     let v11 : bool = v9 = 2.0                                                │

00:02:10 #4186 [Verbose] > │     let v13 : bool =                                                         │

00:02:10 #4187 [Verbose] > │         if v11 then                                                          │

00:02:10 #4188 [Verbose] > │             true                                                             │

00:02:10 #4189 [Verbose] > │         else                                                                 │

00:02:10 #4190 [Verbose] > │             method1(v11)                                                     │

00:02:10 #4191 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v9} / expected: %A{2.0}"      │

00:02:10 #4192 [Verbose] > │     let v15 : bool = v13 = false                                             │

00:02:10 #4193 [Verbose] > │     if v15 then                                                              │

00:02:10 #4194 [Verbose] > │         failwith<unit> v14                                                   │

00:02:10 #4195 [Verbose] > │     let v16 : (float -> float) = round                                       │

00:02:10 #4196 [Verbose] > │     let v17 : float = v16 2.5                                                │

00:02:10 #4197 [Verbose] > │     let v18 : string = $"%A{v17}"                                            │

00:02:10 #4198 [Verbose] > │     System.Console.WriteLine v18                                             │

00:02:10 #4199 [Verbose] > │     let v19 : bool = v17 = 2.0                                               │

00:02:10 #4200 [Verbose] > │     let v21 : bool =                                                         │

00:02:10 #4201 [Verbose] > │         if v19 then                                                          │

00:02:10 #4202 [Verbose] > │             true                                                             │

00:02:10 #4203 [Verbose] > │         else                                                                 │

00:02:10 #4204 [Verbose] > │             method1(v19)                                                     │

00:02:10 #4205 [Verbose] > │     let v22 : string = $"__expect / actual: %A{v17} / expected: %A{2.0}"     │

00:02:10 #4206 [Verbose] > │     let v23 : bool = v21 = false                                             │

00:02:10 #4207 [Verbose] > │     if v23 then                                                              │

00:02:10 #4208 [Verbose] > │         failwith<unit> v22                                                   │

00:02:10 #4209 [Verbose] > │     let v24 : (float -> float) = round                                       │

00:02:10 #4210 [Verbose] > │     let v25 : float = v24 3.5                                                │

00:02:10 #4211 [Verbose] > │     let v26 : string = $"%A{v25}"                                            │

00:02:10 #4212 [Verbose] > │     System.Console.WriteLine v26                                             │

00:02:10 #4213 [Verbose] > │     let v27 : bool = v25 = 4.0                                               │

00:02:10 #4214 [Verbose] > │     let v29 : bool =                                                         │

00:02:10 #4215 [Verbose] > │         if v27 then                                                          │

00:02:10 #4216 [Verbose] > │             true                                                             │

00:02:10 #4217 [Verbose] > │         else                                                                 │

00:02:10 #4218 [Verbose] > │             method1(v27)                                                     │

00:02:10 #4219 [Verbose] > │     let v30 : string = $"__expect / actual: %A{v25} / expected: %A{4.0}"     │

00:02:10 #4220 [Verbose] > │     let v31 : bool = v29 = false                                             │

00:02:10 #4221 [Verbose] > │     if v31 then                                                              │

00:02:10 #4222 [Verbose] > │         failwith<unit> v30                                                   │

00:02:10 #4223 [Verbose] > │ method0()                                                                    │

00:02:10 #4224 [Verbose] > │                                                                              │

00:02:10 #4225 [Verbose] > │ 0.0                                                                          │

00:02:10 #4226 [Verbose] > │ 2.0                                                                          │

00:02:10 #4227 [Verbose] > │ 2.0                                                                          │

00:02:10 #4228 [Verbose] > │ 4.0                                                                          │

00:02:10 #4229 [Verbose] > │                                                                              │

00:02:10 #4230 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:10 #4231 [Verbose] >

00:02:10 #4232 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:10 #4233 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:10 #4234 [Verbose] > │ ## log_base                                                                  │

00:02:10 #4235 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:10 #4236 [Verbose] >

00:02:10 #4237 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:10 #4238 [Verbose] > inl log_base (new_base : f64) (a : f64) =

00:02:10 #4239 [Verbose] >     $"System.Math.Log (!a, !new_base)" : f64

00:02:10 #4240 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4269-6929-604a40056924\main.spi

00:02:10 #4241 [Verbose] >

00:02:10 #4242 [Verbose] > ╭─[ 222.96ms - stdout ]────────────────────────────────────────────────────────╮

00:02:10 #4243 [Verbose] > │ ()                                                                           │

00:02:10 #4244 [Verbose] > │                                                                              │

00:02:10 #4245 [Verbose] > │                                                                              │

00:02:10 #4246 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:10 #4247 [Verbose] >

00:02:10 #4248 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:10 #4249 [Verbose] > // // test

00:02:10 #4250 [Verbose] >

00:02:10 #4251 [Verbose] > 100 |> log_base 10

00:02:10 #4252 [Verbose] > |> _assert_eq 2

00:02:10 #4253 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4292-9254-97cdf37b89e9\main.spi

00:02:10 #4254 [Verbose] >

00:02:10 #4255 [Verbose] > ╭─[ 250.12ms - stdout ]────────────────────────────────────────────────────────╮

00:02:10 #4256 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:10 #4257 [Verbose] > │     v0                                                                       │

00:02:10 #4258 [Verbose] > │ and method0 () : unit =                                                      │

00:02:10 #4259 [Verbose] > │     let v0 : float = System.Math.Log (100.0, 10.0)                           │

00:02:10 #4260 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:02:10 #4261 [Verbose] > │     System.Console.WriteLine v1                                              │

00:02:10 #4262 [Verbose] > │     let v2 : bool = v0 = 2.0                                                 │

00:02:10 #4263 [Verbose] > │     let v4 : bool =                                                          │

00:02:10 #4264 [Verbose] > │         if v2 then                                                           │

00:02:10 #4265 [Verbose] > │             true                                                             │

00:02:10 #4266 [Verbose] > │         else                                                                 │

00:02:10 #4267 [Verbose] > │             method1(v2)                                                      │

00:02:10 #4268 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{2.0}"       │

00:02:10 #4269 [Verbose] > │     let v6 : bool = v4 = false                                               │

00:02:10 #4270 [Verbose] > │     if v6 then                                                               │

00:02:10 #4271 [Verbose] > │         failwith<unit> v5                                                    │

00:02:10 #4272 [Verbose] > │ method0()                                                                    │

00:02:10 #4273 [Verbose] > │                                                                              │

00:02:10 #4274 [Verbose] > │ 2.0                                                                          │

00:02:10 #4275 [Verbose] > │                                                                              │

00:02:10 #4276 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:10 #4277 [Verbose] >

00:02:10 #4278 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:10 #4279 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:10 #4280 [Verbose] > │ ## round                                                                     │

00:02:10 #4281 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:10 #4282 [Verbose] >

00:02:10 #4283 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:10 #4284 [Verbose] > inl round forall t {float}. (x : t) : t =

00:02:10 #4285 [Verbose] >     $"round !x"

00:02:11 #4286 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4319-1903-155a7697d67a\main.spi

00:02:11 #4287 [Verbose] >

00:02:11 #4288 [Verbose] > ╭─[ 251.05ms - stdout ]────────────────────────────────────────────────────────╮

00:02:11 #4289 [Verbose] > │ ()                                                                           │

00:02:11 #4290 [Verbose] > │                                                                              │

00:02:11 #4291 [Verbose] > │                                                                              │

00:02:11 #4292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:11 #4293 [Verbose] >

00:02:11 #4294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:11 #4295 [Verbose] > // // test

00:02:11 #4296 [Verbose] >

00:02:11 #4297 [Verbose] > 0.5 |> round

00:02:11 #4298 [Verbose] > |> _assert_eq 0f64

00:02:11 #4299 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4344-4440-4ba5f3ce26b0\main.spi

00:02:11 #4300 [Verbose] >

00:02:11 #4301 [Verbose] > ╭─[ 235.90ms - stdout ]────────────────────────────────────────────────────────╮

00:02:11 #4302 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:11 #4303 [Verbose] > │     v0                                                                       │

00:02:11 #4304 [Verbose] > │ and method0 () : unit =                                                      │

00:02:11 #4305 [Verbose] > │     let v0 : float = round 0.5                                               │

00:02:11 #4306 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:02:11 #4307 [Verbose] > │     System.Console.WriteLine v1                                              │

00:02:11 #4308 [Verbose] > │     let v2 : bool = v0 = 0.0                                                 │

00:02:11 #4309 [Verbose] > │     let v4 : bool =                                                          │

00:02:11 #4310 [Verbose] > │         if v2 then                                                           │

00:02:11 #4311 [Verbose] > │             true                                                             │

00:02:11 #4312 [Verbose] > │         else                                                                 │

00:02:11 #4313 [Verbose] > │             method1(v2)                                                      │

00:02:11 #4314 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{0.0}"       │

00:02:11 #4315 [Verbose] > │     let v6 : bool = v4 = false                                               │

00:02:11 #4316 [Verbose] > │     if v6 then                                                               │

00:02:11 #4317 [Verbose] > │         failwith<unit> v5                                                    │

00:02:11 #4318 [Verbose] > │ method0()                                                                    │

00:02:11 #4319 [Verbose] > │                                                                              │

00:02:11 #4320 [Verbose] > │ 0.0                                                                          │

00:02:11 #4321 [Verbose] > │                                                                              │

00:02:11 #4322 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:11 #4323 [Verbose] >

00:02:11 #4324 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:11 #4325 [Verbose] > // // test

00:02:11 #4326 [Verbose] >

00:02:11 #4327 [Verbose] > 0.6 |> round

00:02:11 #4328 [Verbose] > |> _assert_eq 1f64

00:02:11 #4329 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4369-6939-6b891a239be7\main.spi

00:02:11 #4330 [Verbose] >

00:02:11 #4331 [Verbose] > ╭─[ 257.90ms - stdout ]────────────────────────────────────────────────────────╮

00:02:11 #4332 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:11 #4333 [Verbose] > │     v0                                                                       │

00:02:11 #4334 [Verbose] > │ and method0 () : unit =                                                      │

00:02:11 #4335 [Verbose] > │     let v0 : float = round 0.6                                               │

00:02:11 #4336 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:02:11 #4337 [Verbose] > │     System.Console.WriteLine v1                                              │

00:02:11 #4338 [Verbose] > │     let v2 : bool = v0 = 1.0                                                 │

00:02:11 #4339 [Verbose] > │     let v4 : bool =                                                          │

00:02:11 #4340 [Verbose] > │         if v2 then                                                           │

00:02:11 #4341 [Verbose] > │             true                                                             │

00:02:11 #4342 [Verbose] > │         else                                                                 │

00:02:11 #4343 [Verbose] > │             method1(v2)                                                      │

00:02:11 #4344 [Verbose] > │     let v5 : string = $"__expect / actual: %A{v0} / expected: %A{1.0}"       │

00:02:11 #4345 [Verbose] > │     let v6 : bool = v4 = false                                               │

00:02:11 #4346 [Verbose] > │     if v6 then                                                               │

00:02:11 #4347 [Verbose] > │         failwith<unit> v5                                                    │

00:02:11 #4348 [Verbose] > │ method0()                                                                    │

00:02:11 #4349 [Verbose] > │                                                                              │

00:02:11 #4350 [Verbose] > │ 1.0                                                                          │

00:02:11 #4351 [Verbose] > │                                                                              │

00:02:11 #4352 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:11 #4353 [Verbose] >

00:02:11 #4354 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:11 #4355 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:11 #4356 [Verbose] > │ ## square                                                                    │

00:02:11 #4357 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:11 #4358 [Verbose] >

00:02:11 #4359 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:11 #4360 [Verbose] > inl square x =

00:02:11 #4361 [Verbose] >     x ** 2

00:02:11 #4362 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4396-9664-93f0d69dfb0b\main.spi

00:02:12 #4363 [Verbose] >

00:02:12 #4364 [Verbose] > ╭─[ 552.41ms - stdout ]────────────────────────────────────────────────────────╮

00:02:12 #4365 [Verbose] > │ ()                                                                           │

00:02:12 #4366 [Verbose] > │                                                                              │

00:02:12 #4367 [Verbose] > │                                                                              │

00:02:12 #4368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:12 #4369 [Verbose] >

00:02:12 #4370 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:12 #4371 [Verbose] > // // test

00:02:12 #4372 [Verbose] >

00:02:12 #4373 [Verbose] > 5f64

00:02:12 #4374 [Verbose] > |> sqrt

00:02:12 #4375 [Verbose] > |> square

00:02:12 #4376 [Verbose] > |> _assert_approx_eq None 5

00:02:12 #4377 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4452-5211-5e2657311602\main.spi

00:02:12 #4378 [Verbose] >

00:02:12 #4379 [Verbose] > ╭─[ 356.96ms - stdout ]────────────────────────────────────────────────────────╮

00:02:12 #4380 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:12 #4381 [Verbose] > │     let v0 : string = $"%A{5.000000000000001}"                               │

00:02:12 #4382 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:12 #4383 [Verbose] > │     let v1 : string = $"__expect / actual: %A{5.000000000000001} / expected: │

00:02:12 #4384 [Verbose] > │ %A{5.0}"                                                                     │

00:02:12 #4385 [Verbose] > │     ()                                                                       │

00:02:12 #4386 [Verbose] > │ method0()                                                                    │

00:02:12 #4387 [Verbose] > │                                                                              │

00:02:12 #4388 [Verbose] > │ 5.0                                                                          │

00:02:12 #4389 [Verbose] > │                                                                              │

00:02:12 #4390 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:12 #4391 [Verbose] >

00:02:12 #4392 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:12 #4393 [Verbose] > // // test

00:02:12 #4394 [Verbose] >

00:02:12 #4395 [Verbose] > e () |> square

00:02:12 #4396 [Verbose] > |> _assert_approx_eq None 7.3890560989306495

00:02:12 #4397 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-4488-8886-85b697637dfc\main.spi

00:02:12 #4398 [Verbose] >

00:02:12 #4399 [Verbose] > ╭─[ 263.13ms - stdout ]────────────────────────────────────────────────────────╮

00:02:12 #4400 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:12 #4401 [Verbose] > │     let v0 : string = $"%A{7.3890560989306495}"                              │

00:02:12 #4402 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:12 #4403 [Verbose] > │     let v1 : string = $"__expect / actual: %A{7.3890560989306495} /          │

00:02:12 #4404 [Verbose] > │ expected: %A{7.3890560989306495}"                                            │

00:02:12 #4405 [Verbose] > │     ()                                                                       │

00:02:12 #4406 [Verbose] > │ method0()                                                                    │

00:02:12 #4407 [Verbose] > │                                                                              │

00:02:12 #4408 [Verbose] > │ 7.389056099                                                                  │

00:02:12 #4409 [Verbose] > │                                                                              │

00:02:12 #4410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:15 #4411 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html

00:02:15 #4412 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:02:15 #4413 [Verbose] >   validate(nb)

00:02:16 #4414 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:02:16 #4415 [Verbose] >   return _pygments_highlight(

00:02:16 #4416 [Verbose] > [NbConvertApp] Writing 313224 bytes to math.dib.html

00:02:17 #4417 [Debug] executeAsync / exitCode: 0 / output.Length: 35922

00:02:17 #4418 [Debug] main / executeCommand / exitCode: 0

00:02:17 #4419 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"optionm'.dib\" -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:02:20 #4420 [Verbose] >

00:02:20 #4421 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:20 #4422 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:20 #4423 [Verbose] > │ # optionm                                                                    │

00:02:20 #4424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:20 #4425 [Verbose] >

00:02:20 #4426 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:20 #4427 [Verbose] > // // test

00:02:20 #4428 [Verbose] >

00:02:20 #4429 [Verbose] > open testing

00:02:23 #4430 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5534-3449-300db1f5f954\main.spi

00:02:24 #4431 [Verbose] >

00:02:25 #4432 [Verbose] > ╭─[ 4.65s - stdout ]───────────────────────────────────────────────────────────╮

00:02:25 #4433 [Verbose] > │ ()                                                                           │

00:02:25 #4434 [Verbose] > │                                                                              │

00:02:25 #4435 [Verbose] > │                                                                              │

00:02:25 #4436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:25 #4437 [Verbose] >

00:02:25 #4438 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:25 #4439 [Verbose] > open rust_operators

00:02:25 #4440 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5728-2847-272c76d68851\main.spi

00:02:25 #4441 [Verbose] >

00:02:25 #4442 [Verbose] > ╭─[ 226.37ms - stdout ]────────────────────────────────────────────────────────╮

00:02:25 #4443 [Verbose] > │ ()                                                                           │

00:02:25 #4444 [Verbose] > │                                                                              │

00:02:25 #4445 [Verbose] > │                                                                              │

00:02:25 #4446 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:25 #4447 [Verbose] >

00:02:25 #4448 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:25 #4449 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:25 #4450 [Verbose] > │ ## default_value                                                             │

00:02:25 #4451 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:25 #4452 [Verbose] >

00:02:25 #4453 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:25 #4454 [Verbose] > inl default_value d =

00:02:25 #4455 [Verbose] >     optionm.defaultWith d

00:02:25 #4456 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5751-5182-503b72f62274\main.spi

00:02:25 #4457 [Verbose] >

00:02:25 #4458 [Verbose] > ╭─[ 225.16ms - stdout ]────────────────────────────────────────────────────────╮

00:02:25 #4459 [Verbose] > │ ()                                                                           │

00:02:25 #4460 [Verbose] > │                                                                              │

00:02:25 #4461 [Verbose] > │                                                                              │

00:02:25 #4462 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:25 #4463 [Verbose] >

00:02:25 #4464 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:25 #4465 [Verbose] > // // test

00:02:25 #4466 [Verbose] >

00:02:25 #4467 [Verbose] > None

00:02:25 #4468 [Verbose] > |> default_value 3i32

00:02:25 #4469 [Verbose] > |> _assert_eq 3i32

00:02:25 #4470 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5774-7432-7bb0407099fa\main.spi

00:02:26 #4471 [Verbose] >

00:02:26 #4472 [Verbose] > ╭─[ 983.94ms - stdout ]────────────────────────────────────────────────────────╮

00:02:26 #4473 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:26 #4474 [Verbose] > │     let v0 : string = $"%A{3}"                                               │

00:02:26 #4475 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:26 #4476 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}"          │

00:02:26 #4477 [Verbose] > │     ()                                                                       │

00:02:26 #4478 [Verbose] > │ method0()                                                                    │

00:02:26 #4479 [Verbose] > │                                                                              │

00:02:26 #4480 [Verbose] > │ 3                                                                            │

00:02:26 #4481 [Verbose] > │                                                                              │

00:02:26 #4482 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:26 #4483 [Verbose] >

00:02:26 #4484 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:26 #4485 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:26 #4486 [Verbose] > │ ## (/??)                                                                     │

00:02:26 #4487 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:26 #4488 [Verbose] >

00:02:26 #4489 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:26 #4490 [Verbose] > inl (/??) a b =

00:02:26 #4491 [Verbose] >     a |> default_value b

00:02:26 #4492 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5873-7357-7953832c2005\main.spi

00:02:26 #4493 [Verbose] >

00:02:26 #4494 [Verbose] > ╭─[ 229.93ms - stdout ]────────────────────────────────────────────────────────╮

00:02:26 #4495 [Verbose] > │ ()                                                                           │

00:02:26 #4496 [Verbose] > │                                                                              │

00:02:26 #4497 [Verbose] > │                                                                              │

00:02:26 #4498 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:26 #4499 [Verbose] >

00:02:26 #4500 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:26 #4501 [Verbose] > // // test

00:02:26 #4502 [Verbose] >

00:02:26 #4503 [Verbose] > None /?? 3i32

00:02:26 #4504 [Verbose] > |> _assert_eq 3i32

00:02:26 #4505 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5896-9678-9fd147b0a923\main.spi

00:02:26 #4506 [Verbose] >

00:02:26 #4507 [Verbose] > ╭─[ 218.07ms - stdout ]────────────────────────────────────────────────────────╮

00:02:26 #4508 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:26 #4509 [Verbose] > │     let v0 : string = $"%A{3}"                                               │

00:02:26 #4510 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:26 #4511 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}"          │

00:02:26 #4512 [Verbose] > │     ()                                                                       │

00:02:26 #4513 [Verbose] > │ method0()                                                                    │

00:02:26 #4514 [Verbose] > │                                                                              │

00:02:26 #4515 [Verbose] > │ 3                                                                            │

00:02:26 #4516 [Verbose] > │                                                                              │

00:02:26 #4517 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:26 #4518 [Verbose] >

00:02:26 #4519 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:26 #4520 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:26 #4521 [Verbose] > │ ## default_with                                                              │

00:02:26 #4522 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:26 #4523 [Verbose] >

00:02:26 #4524 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:26 #4525 [Verbose] > inl default_with fn =

00:02:26 #4526 [Verbose] >     function Some x => x | None => fn ()

00:02:27 #4527 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5919-1928-1a04973b9b52\main.spi

00:02:27 #4528 [Verbose] >

00:02:27 #4529 [Verbose] > ╭─[ 200.31ms - stdout ]────────────────────────────────────────────────────────╮

00:02:27 #4530 [Verbose] > │ ()                                                                           │

00:02:27 #4531 [Verbose] > │                                                                              │

00:02:27 #4532 [Verbose] > │                                                                              │

00:02:27 #4533 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:27 #4534 [Verbose] >

00:02:27 #4535 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:27 #4536 [Verbose] > // // test

00:02:27 #4537 [Verbose] >

00:02:27 #4538 [Verbose] > None

00:02:27 #4539 [Verbose] > |> default_with (fun () => 3i32)

00:02:27 #4540 [Verbose] > |> _assert_eq 3i32

00:02:27 #4541 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5939-3976-3a7097b85aa7\main.spi

00:02:27 #4542 [Verbose] >

00:02:27 #4543 [Verbose] > ╭─[ 229.00ms - stdout ]────────────────────────────────────────────────────────╮

00:02:27 #4544 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:27 #4545 [Verbose] > │     let v0 : string = $"%A{3}"                                               │

00:02:27 #4546 [Verbose] > │     System.Console.WriteLine v0                                              │

00:02:27 #4547 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3} / expected: %A{3}"          │

00:02:27 #4548 [Verbose] > │     ()                                                                       │

00:02:27 #4549 [Verbose] > │ method0()                                                                    │

00:02:27 #4550 [Verbose] > │                                                                              │

00:02:27 #4551 [Verbose] > │ 3                                                                            │

00:02:27 #4552 [Verbose] > │                                                                              │

00:02:27 #4553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:27 #4554 [Verbose] >

00:02:27 #4555 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:27 #4556 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:27 #4557 [Verbose] > │ ## choose                                                                    │

00:02:27 #4558 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:27 #4559 [Verbose] >

00:02:27 #4560 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:27 #4561 [Verbose] > inl choose fn a b =

00:02:27 #4562 [Verbose] >     match a, b with

00:02:27 #4563 [Verbose] >     | Some x, Some y => fn x y |> Some

00:02:27 #4564 [Verbose] >     | _ => None

00:02:27 #4565 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5963-6351-68a3bac8bf4e\main.spi

00:02:27 #4566 [Verbose] >

00:02:27 #4567 [Verbose] > ╭─[ 196.13ms - stdout ]────────────────────────────────────────────────────────╮

00:02:27 #4568 [Verbose] > │ ()                                                                           │

00:02:27 #4569 [Verbose] > │                                                                              │

00:02:27 #4570 [Verbose] > │                                                                              │

00:02:27 #4571 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:27 #4572 [Verbose] >

00:02:27 #4573 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:27 #4574 [Verbose] > // // test

00:02:27 #4575 [Verbose] >

00:02:27 #4576 [Verbose] > (Some 2i32, Some 3)

00:02:27 #4577 [Verbose] > ||> choose (+)

00:02:27 #4578 [Verbose] > |> _assert_eq (Some 5)

00:02:27 #4579 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1251-5983-8337-842fd4163d08\main.spi

00:02:28 #4580 [Verbose] >

00:02:28 #4581 [Verbose] > ╭─[ 819.98ms - stdout ]────────────────────────────────────────────────────────╮

00:02:28 #4582 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:02:28 #4583 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:02:28 #4584 [Verbose] > │     | US0_1                                                                  │

00:02:28 #4585 [Verbose] > │ let rec method0 () : unit =                                                  │

00:02:28 #4586 [Verbose] > │     let v0 : US0 = US0_0(5)                                                  │

00:02:28 #4587 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:02:28 #4588 [Verbose] > │     System.Console.WriteLine v1                                              │

00:02:28 #4589 [Verbose] > │     let v5 : US0 = US0_0(5)                                                  │

00:02:28 #4590 [Verbose] > │     let v6 : US0 = US0_0(5)                                                  │

00:02:28 #4591 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:02:28 #4592 [Verbose] > │     ()                                                                       │

00:02:28 #4593 [Verbose] > │ method0()                                                                    │

00:02:28 #4594 [Verbose] > │                                                                              │

00:02:28 #4595 [Verbose] > │ US0_0 5                                                                      │

00:02:28 #4596 [Verbose] > │                                                                              │

00:02:28 #4597 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:28 #4598 [Verbose] >

00:02:28 #4599 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:28 #4600 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:28 #4601 [Verbose] > │ ## iter                                                                      │

00:02:28 #4602 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:28 #4603 [Verbose] >

00:02:28 #4604 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:28 #4605 [Verbose] > inl iter fn = function

00:02:28 #4606 [Verbose] >     | Some x => fn x

00:02:28 #4607 [Verbose] >     | None => ()

00:02:28 #4608 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0067-6732-60102a38d80c\main.spi

00:02:28 #4609 [Verbose] >

00:02:28 #4610 [Verbose] > ╭─[ 223.96ms - stdout ]────────────────────────────────────────────────────────╮

00:02:28 #4611 [Verbose] > │ ()                                                                           │

00:02:28 #4612 [Verbose] > │                                                                              │

00:02:28 #4613 [Verbose] > │                                                                              │

00:02:28 #4614 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:28 #4615 [Verbose] >

00:02:28 #4616 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:28 #4617 [Verbose] > // // test

00:02:28 #4618 [Verbose] >

00:02:28 #4619 [Verbose] > inl n = mut 1i32

00:02:28 #4620 [Verbose] > inl fn =

00:02:28 #4621 [Verbose] >     fun n' =>

00:02:28 #4622 [Verbose] >         n <- *n + n'

00:02:28 #4623 [Verbose] > Some 1i32 |> iter fn

00:02:28 #4624 [Verbose] > None |> iter fn

00:02:28 #4625 [Verbose] > *n

00:02:28 #4626 [Verbose] > |> _assert_eq 2i32

00:02:28 #4627 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0089-8938-891a78eb07e4\main.spi

00:02:29 #4628 [Verbose] >

00:02:29 #4629 [Verbose] > ╭─[ 401.55ms - stdout ]────────────────────────────────────────────────────────╮

00:02:29 #4630 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:29 #4631 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:02:29 #4632 [Verbose] > │     v0                                                                       │

00:02:29 #4633 [Verbose] > │ and method0 () : unit =                                                      │

00:02:29 #4634 [Verbose] > │     let v0 : Mut0 = {l0 = 1} : Mut0                                          │

00:02:29 #4635 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:29 #4636 [Verbose] > │     let v2 : int32 = v1 + 1                                                  │

00:02:29 #4637 [Verbose] > │     v0.l0 <- v2                                                              │

00:02:29 #4638 [Verbose] > │     let v3 : int32 = v0.l0                                                   │

00:02:29 #4639 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:02:29 #4640 [Verbose] > │     System.Console.WriteLine v4                                              │

00:02:29 #4641 [Verbose] > │     let v5 : bool = v3 = 2                                                   │

00:02:29 #4642 [Verbose] > │     let v7 : bool =                                                          │

00:02:29 #4643 [Verbose] > │         if v5 then                                                           │

00:02:29 #4644 [Verbose] > │             true                                                             │

00:02:29 #4645 [Verbose] > │         else                                                                 │

00:02:29 #4646 [Verbose] > │             method1(v5)                                                      │

00:02:29 #4647 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v3} / expected: %A{2}"         │

00:02:29 #4648 [Verbose] > │     let v9 : bool = v7 = false                                               │

00:02:29 #4649 [Verbose] > │     if v9 then                                                               │

00:02:29 #4650 [Verbose] > │         failwith<unit> v8                                                    │

00:02:29 #4651 [Verbose] > │ method0()                                                                    │

00:02:29 #4652 [Verbose] > │                                                                              │

00:02:29 #4653 [Verbose] > │ 2                                                                            │

00:02:29 #4654 [Verbose] > │                                                                              │

00:02:29 #4655 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4656 [Verbose] >

00:02:29 #4657 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:29 #4658 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:29 #4659 [Verbose] > │ ## option'                                                                   │

00:02:29 #4660 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4661 [Verbose] >

00:02:29 #4662 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:29 #4663 [Verbose] > nominal option' t = $"`t option"

00:02:29 #4664 [Verbose] >

00:02:29 #4665 [Verbose] > inl unbox forall t. (x : option' t) : option t =

00:02:29 #4666 [Verbose] >     inl some x : option t = Some x

00:02:29 #4667 [Verbose] >     inl some = join some

00:02:29 #4668 [Verbose] >     inl none : option t = None

00:02:29 #4669 [Verbose] >     $"!x |> Option.map !some |> Option.defaultValue !none"

00:02:29 #4670 [Verbose] >

00:02:29 #4671 [Verbose] > inl box forall t. (x : option t) : option' t =

00:02:29 #4672 [Verbose] >     match x with

00:02:29 #4673 [Verbose] >     | Some x => $"Some !x"

00:02:29 #4674 [Verbose] >     | None => $"None"

00:02:29 #4675 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0131-3161-3045ccece5d7\main.spi

00:02:29 #4676 [Verbose] >

00:02:29 #4677 [Verbose] > ╭─[ 220.31ms - stdout ]────────────────────────────────────────────────────────╮

00:02:29 #4678 [Verbose] > │ ()                                                                           │

00:02:29 #4679 [Verbose] > │                                                                              │

00:02:29 #4680 [Verbose] > │                                                                              │

00:02:29 #4681 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4682 [Verbose] >

00:02:29 #4683 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:29 #4684 [Verbose] > // // test

00:02:29 #4685 [Verbose] >

00:02:29 #4686 [Verbose] > inl x = Some 3i32

00:02:29 #4687 [Verbose] > inl y : option i32 = None

00:02:29 #4688 [Verbose] > inl x' = x |> box |> unbox

00:02:29 #4689 [Verbose] > inl y' = y |> box |> unbox

00:02:29 #4690 [Verbose] > (x', y') |> _assert_eq (x, y)

00:02:29 #4691 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0153-5354-5a65a0b65971\main.spi

00:02:29 #4692 [Verbose] >

00:02:29 #4693 [Verbose] > ╭─[ 325.67ms - stdout ]────────────────────────────────────────────────────────╮

00:02:29 #4694 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:02:29 #4695 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:02:29 #4696 [Verbose] > │     | US0_1                                                                  │

00:02:29 #4697 [Verbose] > │ let rec closure0 () (v0 : int32) : US0 =                                     │

00:02:29 #4698 [Verbose] > │     US0_0(v0)                                                                │

00:02:29 #4699 [Verbose] > │ and method1 () : (int32 -> US0) =                                            │

00:02:29 #4700 [Verbose] > │     closure0()                                                               │

00:02:29 #4701 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:02:29 #4702 [Verbose] > │     v0                                                                       │

00:02:29 #4703 [Verbose] > │ and method0 () : unit =                                                      │

00:02:29 #4704 [Verbose] > │     let v0 : int32 option = Some 3                                           │

00:02:29 #4705 [Verbose] > │     let v1 : (int32 -> US0) = method1()                                      │

00:02:29 #4706 [Verbose] > │     let v2 : US0 = US0_1                                                     │

00:02:29 #4707 [Verbose] > │     let v3 : US0 = v0 |> Option.map v1 |> Option.defaultValue v2             │

00:02:29 #4708 [Verbose] > │     let v4 : int32 option = None                                             │

00:02:29 #4709 [Verbose] > │     let v5 : (int32 -> US0) = method1()                                      │

00:02:29 #4710 [Verbose] > │     let v6 : US0 = US0_1                                                     │

00:02:29 #4711 [Verbose] > │     let v7 : US0 = v4 |> Option.map v5 |> Option.defaultValue v6             │

00:02:29 #4712 [Verbose] > │     let v8 : string = $"%A{struct (v3, v7)}"                                 │

00:02:29 #4713 [Verbose] > │     System.Console.WriteLine v8                                              │

00:02:29 #4714 [Verbose] > │     let v13 : bool =                                                         │

00:02:29 #4715 [Verbose] > │         match v3 with                                                        │

00:02:29 #4716 [Verbose] > │         | US0_0(v11) -> (* Some *)                                           │

00:02:29 #4717 [Verbose] > │             let v12 : bool = v11 = 3                                         │

00:02:29 #4718 [Verbose] > │             v12                                                              │

00:02:29 #4719 [Verbose] > │         | _ ->                                                               │

00:02:29 #4720 [Verbose] > │             false                                                            │

00:02:29 #4721 [Verbose] > │     let v15 : bool =                                                         │

00:02:29 #4722 [Verbose] > │         if v13 then                                                          │

00:02:29 #4723 [Verbose] > │             match v7 with                                                    │

00:02:29 #4724 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:29 #4725 [Verbose] > │                 true                                                         │

00:02:29 #4726 [Verbose] > │             | _ ->                                                           │

00:02:29 #4727 [Verbose] > │                 false                                                        │

00:02:29 #4728 [Verbose] > │         else                                                                 │

00:02:29 #4729 [Verbose] > │             false                                                            │

00:02:29 #4730 [Verbose] > │     let v17 : bool =                                                         │

00:02:29 #4731 [Verbose] > │         if v15 then                                                          │

00:02:29 #4732 [Verbose] > │             true                                                             │

00:02:29 #4733 [Verbose] > │         else                                                                 │

00:02:29 #4734 [Verbose] > │             method2(v15)                                                     │

00:02:29 #4735 [Verbose] > │     let v18 : US0 = US0_0(3)                                                 │

00:02:29 #4736 [Verbose] > │     let v19 : US0 = US0_1                                                    │

00:02:29 #4737 [Verbose] > │     let v20 : string = $"__expect / actual: %A{struct (v3, v7)} / expected:  │

00:02:29 #4738 [Verbose] > │ %A{struct (v18, v19)}"                                                       │

00:02:29 #4739 [Verbose] > │     let v21 : bool = v17 = false                                             │

00:02:29 #4740 [Verbose] > │     if v21 then                                                              │

00:02:29 #4741 [Verbose] > │         failwith<unit> v20                                                   │

00:02:29 #4742 [Verbose] > │ method0()                                                                    │

00:02:29 #4743 [Verbose] > │                                                                              │

00:02:29 #4744 [Verbose] > │ struct (US0_0 3, US0_1)                                                      │

00:02:29 #4745 [Verbose] > │                                                                              │

00:02:29 #4746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4747 [Verbose] >

00:02:29 #4748 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:29 #4749 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:29 #4750 [Verbose] > │ ## map                                                                       │

00:02:29 #4751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4752 [Verbose] >

00:02:29 #4753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:29 #4754 [Verbose] > inl map forall t u. (fn : t -> u) (x : option' t) : option' u =

00:02:29 #4755 [Verbose] >     !\\((x, fn), $'"$0.map(|x| $1(x))"')

00:02:29 #4756 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0189-8919-8344fc8b619e\main.spi

00:02:29 #4757 [Verbose] >

00:02:29 #4758 [Verbose] > ╭─[ 206.50ms - stdout ]────────────────────────────────────────────────────────╮

00:02:29 #4759 [Verbose] > │ ()                                                                           │

00:02:29 #4760 [Verbose] > │                                                                              │

00:02:29 #4761 [Verbose] > │                                                                              │

00:02:29 #4762 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4763 [Verbose] >

00:02:29 #4764 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:29 #4765 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:29 #4766 [Verbose] > │ ## try'                                                                      │

00:02:29 #4767 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:29 #4768 [Verbose] >

00:02:29 #4769 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:29 #4770 [Verbose] > inl try' forall t. (x : option' t) : t =

00:02:29 #4771 [Verbose] >     !\($'"!x?"')

00:02:29 #4772 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0210-1058-1bd1fa6dca13\main.spi

00:02:30 #4773 [Verbose] >

00:02:30 #4774 [Verbose] > ╭─[ 192.68ms - stdout ]────────────────────────────────────────────────────────╮

00:02:30 #4775 [Verbose] > │ ()                                                                           │

00:02:30 #4776 [Verbose] > │                                                                              │

00:02:30 #4777 [Verbose] > │                                                                              │

00:02:30 #4778 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4779 [Verbose] >

00:02:30 #4780 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:30 #4781 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:30 #4782 [Verbose] > │ ## flatten                                                                   │

00:02:30 #4783 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4784 [Verbose] >

00:02:30 #4785 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:30 #4786 [Verbose] > inl flatten x =

00:02:30 #4787 [Verbose] >     match x with

00:02:30 #4788 [Verbose] >     | Some (Some x) => Some x

00:02:30 #4789 [Verbose] >     | _ => None

00:02:30 #4790 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0230-3084-3b40ea112ea6\main.spi

00:02:30 #4791 [Verbose] >

00:02:30 #4792 [Verbose] > ╭─[ 209.29ms - stdout ]────────────────────────────────────────────────────────╮

00:02:30 #4793 [Verbose] > │ ()                                                                           │

00:02:30 #4794 [Verbose] > │                                                                              │

00:02:30 #4795 [Verbose] > │                                                                              │

00:02:30 #4796 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4797 [Verbose] >

00:02:30 #4798 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:30 #4799 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:30 #4800 [Verbose] > │ ## unwrap                                                                    │

00:02:30 #4801 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4802 [Verbose] >

00:02:30 #4803 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:30 #4804 [Verbose] > inl unwrap forall t. (x : option' t) : t =

00:02:30 #4805 [Verbose] >     !\($'"!x.unwrap()"')

00:02:30 #4806 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0252-5239-5f89ea111e74\main.spi

00:02:30 #4807 [Verbose] >

00:02:30 #4808 [Verbose] > ╭─[ 213.18ms - stdout ]────────────────────────────────────────────────────────╮

00:02:30 #4809 [Verbose] > │ ()                                                                           │

00:02:30 #4810 [Verbose] > │                                                                              │

00:02:30 #4811 [Verbose] > │                                                                              │

00:02:30 #4812 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4813 [Verbose] >

00:02:30 #4814 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:30 #4815 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:30 #4816 [Verbose] > │ ## unwrap_or                                                                 │

00:02:30 #4817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4818 [Verbose] >

00:02:30 #4819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:30 #4820 [Verbose] > inl unwrap_or forall t. (def : t) (x : option' t) : t =

00:02:30 #4821 [Verbose] >     !\($'"!x.unwrap_or(!def)"')

00:02:30 #4822 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0274-7444-7dc48865c3e6\main.spi

00:02:30 #4823 [Verbose] >

00:02:30 #4824 [Verbose] > ╭─[ 194.92ms - stdout ]────────────────────────────────────────────────────────╮

00:02:30 #4825 [Verbose] > │ ()                                                                           │

00:02:30 #4826 [Verbose] > │                                                                              │

00:02:30 #4827 [Verbose] > │                                                                              │

00:02:30 #4828 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4829 [Verbose] >

00:02:30 #4830 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:30 #4831 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:30 #4832 [Verbose] > │ ## rc_upgrade                                                                │

00:02:30 #4833 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #4834 [Verbose] >

00:02:30 #4835 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:30 #4836 [Verbose] > inl rc_upgrade forall t. (x : rust.weak_rc t) : option (rust.rc t) =

00:02:30 #4837 [Verbose] >     inl x = join x

00:02:30 #4838 [Verbose] >     !\($'"std::rc::Weak::upgrade(&!x)"')

00:02:30 #4839 [Verbose] >     |> unbox

00:02:30 #4840 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-0294-9440-9a1af0f65520\main.spi

00:02:30 #4841 [Verbose] >

00:02:30 #4842 [Verbose] > ╭─[ 215.61ms - stdout ]────────────────────────────────────────────────────────╮

00:02:30 #4843 [Verbose] > │ ()                                                                           │

00:02:30 #4844 [Verbose] > │                                                                              │

00:02:30 #4845 [Verbose] > │                                                                              │

00:02:30 #4846 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:32 #4847 [Verbose] > [NbConvertApp] Converting notebook optionm'.dib.ipynb to html

00:02:32 #4848 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:02:32 #4849 [Verbose] >   validate(nb)

00:02:33 #4850 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:02:33 #4851 [Verbose] >   return _pygments_highlight(

00:02:34 #4852 [Verbose] > [NbConvertApp] Writing 308991 bytes to optionm'.dib.html

00:02:35 #4853 [Debug] executeAsync / exitCode: 0 / output.Length: 24665

00:02:35 #4854 [Debug] main / executeCommand / exitCode: 0

00:02:35 #4855 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"am'.dib\" -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:02:38 #4856 [Verbose] >

00:02:38 #4857 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:38 #4858 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:38 #4859 [Verbose] > │ # am'                                                                        │

00:02:38 #4860 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:38 #4861 [Verbose] >

00:02:38 #4862 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:38 #4863 [Verbose] > // // test

00:02:38 #4864 [Verbose] >

00:02:38 #4865 [Verbose] > open testing

00:02:38 #4866 [Verbose] >

00:02:38 #4867 [Verbose] > prototype append t : t -> t -> t

00:02:41 #4868 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1362-6283-625d7f1fdafb\main.spi

00:02:43 #4869 [Verbose] >

00:02:43 #4870 [Verbose] > ╭─[ 4.85s - stdout ]───────────────────────────────────────────────────────────╮

00:02:43 #4871 [Verbose] > │ ()                                                                           │

00:02:43 #4872 [Verbose] > │                                                                              │

00:02:43 #4873 [Verbose] > │                                                                              │

00:02:43 #4874 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:43 #4875 [Verbose] >

00:02:43 #4876 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:43 #4877 [Verbose] > open rust_operators

00:02:43 #4878 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1554-5432-540880595e53\main.spi

00:02:43 #4879 [Verbose] >

00:02:43 #4880 [Verbose] > ╭─[ 284.95ms - stdout ]────────────────────────────────────────────────────────╮

00:02:43 #4881 [Verbose] > │ ()                                                                           │

00:02:43 #4882 [Verbose] > │                                                                              │

00:02:43 #4883 [Verbose] > │                                                                              │

00:02:43 #4884 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:43 #4885 [Verbose] >

00:02:43 #4886 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:43 #4887 [Verbose] > inl types () =

00:02:43 #4888 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0]]\")>]] type Slice<'T> =

00:02:43 #4889 [Verbose] > class end"

00:02:43 #4890 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"[[$0; $1]]\")>]] type

00:02:43 #4891 [Verbose] > Slice'<'T, 'U> = class end"

00:02:43 #4892 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Vec<$0>\")>]] type Vec<'T> =

00:02:43 #4893 [Verbose] > class end"

00:02:43 #4894 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1583-8339-82c53894dda8\main.spi

00:02:44 #4895 [Verbose] >

00:02:44 #4896 [Verbose] > ╭─[ 535.04ms - stdout ]────────────────────────────────────────────────────────╮

00:02:44 #4897 [Verbose] > │ ()                                                                           │

00:02:44 #4898 [Verbose] > │                                                                              │

00:02:44 #4899 [Verbose] > │                                                                              │

00:02:44 #4900 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4901 [Verbose] >

00:02:44 #4902 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:44 #4903 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:44 #4904 [Verbose] > │ ## length                                                                    │

00:02:44 #4905 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4906 [Verbose] >

00:02:44 #4907 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:44 #4908 [Verbose] > inl length forall dim {int} el. (a : a dim el) : dim =

00:02:44 #4909 [Verbose] >     a |> length

00:02:44 #4910 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1636-3696-33d82afd6857\main.spi

00:02:44 #4911 [Verbose] >

00:02:44 #4912 [Verbose] > ╭─[ 193.09ms - stdout ]────────────────────────────────────────────────────────╮

00:02:44 #4913 [Verbose] > │ ()                                                                           │

00:02:44 #4914 [Verbose] > │                                                                              │

00:02:44 #4915 [Verbose] > │                                                                              │

00:02:44 #4916 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4917 [Verbose] >

00:02:44 #4918 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:44 #4919 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:44 #4920 [Verbose] > │ ## index                                                                     │

00:02:44 #4921 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4922 [Verbose] >

00:02:44 #4923 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:44 #4924 [Verbose] > inl index forall dim {int} el. (i : dim) (a : a dim el) : el =

00:02:44 #4925 [Verbose] >     index a i

00:02:44 #4926 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1656-5672-547717d099bf\main.spi

00:02:44 #4927 [Verbose] >

00:02:44 #4928 [Verbose] > ╭─[ 215.66ms - stdout ]────────────────────────────────────────────────────────╮

00:02:44 #4929 [Verbose] > │ ()                                                                           │

00:02:44 #4930 [Verbose] > │                                                                              │

00:02:44 #4931 [Verbose] > │                                                                              │

00:02:44 #4932 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4933 [Verbose] >

00:02:44 #4934 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:44 #4935 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:44 #4936 [Verbose] > │ ## append                                                                    │

00:02:44 #4937 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4938 [Verbose] >

00:02:44 #4939 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:44 #4940 [Verbose] > instance append a dim {int; number} t =

00:02:44 #4941 [Verbose] >     am.append

00:02:44 #4942 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1678-7894-7d27087a2855\main.spi

00:02:44 #4943 [Verbose] >

00:02:44 #4944 [Verbose] > ╭─[ 215.97ms - stdout ]────────────────────────────────────────────────────────╮

00:02:44 #4945 [Verbose] > │ ()                                                                           │

00:02:44 #4946 [Verbose] > │                                                                              │

00:02:44 #4947 [Verbose] > │                                                                              │

00:02:44 #4948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4949 [Verbose] >

00:02:44 #4950 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:44 #4951 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:44 #4952 [Verbose] > │ ## /@                                                                        │

00:02:44 #4953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4954 [Verbose] >

00:02:44 #4955 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:44 #4956 [Verbose] > inl (/@) a b =

00:02:44 #4957 [Verbose] >     b |> append a

00:02:44 #4958 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1701-0171-0579d099327d\main.spi

00:02:44 #4959 [Verbose] >

00:02:44 #4960 [Verbose] > ╭─[ 241.11ms - stdout ]────────────────────────────────────────────────────────╮

00:02:44 #4961 [Verbose] > │ ()                                                                           │

00:02:44 #4962 [Verbose] > │                                                                              │

00:02:44 #4963 [Verbose] > │                                                                              │

00:02:44 #4964 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:44 #4965 [Verbose] >

00:02:44 #4966 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:44 #4967 [Verbose] > // // test

00:02:44 #4968 [Verbose] >

00:02:44 #4969 [Verbose] > a ;[[ "a"; "b" ]] /@ a ;[[ "c"; "d" ]]

00:02:44 #4970 [Verbose] > |> _assert_eq (a ;[[ "a"; "b"; "c"; "d" ]] : _ i32 _)

00:02:45 #4971 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1725-2589-2dd1e76da372\main.spi

00:02:46 #4972 [Verbose] >

00:02:46 #4973 [Verbose] > ╭─[ 1.71s - stdout ]───────────────────────────────────────────────────────────╮

00:02:46 #4974 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:46 #4975 [Verbose] > │ let rec method1 (v0 : int32, v1 : Mut0) : bool =                             │

00:02:46 #4976 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:46 #4977 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:46 #4978 [Verbose] > │     v3                                                                       │

00:02:46 #4979 [Verbose] > │ and method2 (v0 : (string []), v1 : (string []), v2 : int32) : bool =        │

00:02:46 #4980 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:02:46 #4981 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:02:46 #4982 [Verbose] > │     if v4 then                                                               │

00:02:46 #4983 [Verbose] > │         let v5 : string = v0.[int v2]                                        │

00:02:46 #4984 [Verbose] > │         let v6 : string = v1.[int v2]                                        │

00:02:46 #4985 [Verbose] > │         let v7 : bool = v5 = v6                                              │

00:02:46 #4986 [Verbose] > │         if v7 then                                                           │

00:02:46 #4987 [Verbose] > │             let v8 : int32 = v2 + 1                                          │

00:02:46 #4988 [Verbose] > │             method2(v0, v1, v8)                                              │

00:02:46 #4989 [Verbose] > │         else                                                                 │

00:02:46 #4990 [Verbose] > │             false                                                            │

00:02:46 #4991 [Verbose] > │     else                                                                     │

00:02:46 #4992 [Verbose] > │         true                                                                 │

00:02:46 #4993 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:02:46 #4994 [Verbose] > │     v0                                                                       │

00:02:46 #4995 [Verbose] > │ and method0 () : unit =                                                      │

00:02:46 #4996 [Verbose] > │     let v0 : string = "a"                                                    │

00:02:46 #4997 [Verbose] > │     let v1 : string = "b"                                                    │

00:02:46 #4998 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │

00:02:46 #4999 [Verbose] > │     let v3 : string = "c"                                                    │

00:02:46 #5000 [Verbose] > │     let v4 : string = "d"                                                    │

00:02:46 #5001 [Verbose] > │     let v5 : (string []) = [|v3; v4|]                                        │

00:02:46 #5002 [Verbose] > │     let v6 : int32 = v2.Length                                               │

00:02:46 #5003 [Verbose] > │     let v7 : int32 = v5.Length                                               │

00:02:46 #5004 [Verbose] > │     let v8 : int32 = v6 + v7                                                 │

00:02:46 #5005 [Verbose] > │     let v9 : (string []) = Array.zeroCreate<string> (v8)                     │

00:02:46 #5006 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │

00:02:46 #5007 [Verbose] > │     while method1(v8, v10) do                                                │

00:02:46 #5008 [Verbose] > │         let v12 : int32 = v10.l0                                             │

00:02:46 #5009 [Verbose] > │         let v13 : bool = v12 < v6                                            │

00:02:46 #5010 [Verbose] > │         let v17 : string =                                                   │

00:02:46 #5011 [Verbose] > │             if v13 then                                                      │

00:02:46 #5012 [Verbose] > │                 let v14 : string = v2.[int v12]                              │

00:02:46 #5013 [Verbose] > │                 v14                                                          │

00:02:46 #5014 [Verbose] > │             else                                                             │

00:02:46 #5015 [Verbose] > │                 let v15 : int32 = v12 - v6                                   │

00:02:46 #5016 [Verbose] > │                 let v16 : string = v5.[int v15]                              │

00:02:46 #5017 [Verbose] > │                 v16                                                          │

00:02:46 #5018 [Verbose] > │         v9.[int v12] <- v17                                                  │

00:02:46 #5019 [Verbose] > │         let v18 : int32 = v12 + 1                                            │

00:02:46 #5020 [Verbose] > │         v10.l0 <- v18                                                        │

00:02:46 #5021 [Verbose] > │         ()                                                                   │

00:02:46 #5022 [Verbose] > │     let v19 : (string []) = [|v0; v1; v3; v4|]                               │

00:02:46 #5023 [Verbose] > │     let v20 : string = $"%A{v9}"                                             │

00:02:46 #5024 [Verbose] > │     System.Console.WriteLine v20                                             │

00:02:46 #5025 [Verbose] > │     let v21 : int32 = v9.Length                                              │

00:02:46 #5026 [Verbose] > │     let v22 : int32 = v19.Length                                             │

00:02:46 #5027 [Verbose] > │     let v23 : bool = v21 = v22                                               │

00:02:46 #5028 [Verbose] > │     let v24 : bool = v23 <> true                                             │

00:02:46 #5029 [Verbose] > │     let v27 : bool =                                                         │

00:02:46 #5030 [Verbose] > │         if v24 then                                                          │

00:02:46 #5031 [Verbose] > │             false                                                            │

00:02:46 #5032 [Verbose] > │         else                                                                 │

00:02:46 #5033 [Verbose] > │             let v25 : int32 = 0                                              │

00:02:46 #5034 [Verbose] > │             method2(v9, v19, v25)                                            │

00:02:46 #5035 [Verbose] > │     let v29 : bool =                                                         │

00:02:46 #5036 [Verbose] > │         if v27 then                                                          │

00:02:46 #5037 [Verbose] > │             true                                                             │

00:02:46 #5038 [Verbose] > │         else                                                                 │

00:02:46 #5039 [Verbose] > │             method3(v27)                                                     │

00:02:46 #5040 [Verbose] > │     let v30 : string = $"__expect / actual: %A{v9} / expected: %A{v19}"      │

00:02:46 #5041 [Verbose] > │     let v31 : bool = v29 = false                                             │

00:02:46 #5042 [Verbose] > │     if v31 then                                                              │

00:02:46 #5043 [Verbose] > │         failwith<unit> v30                                                   │

00:02:46 #5044 [Verbose] > │ method0()                                                                    │

00:02:46 #5045 [Verbose] > │                                                                              │

00:02:46 #5046 [Verbose] > │ [|"a"; "b"; "c"; "d"|]                                                       │

00:02:46 #5047 [Verbose] > │                                                                              │

00:02:46 #5048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:46 #5049 [Verbose] >

00:02:46 #5050 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:46 #5051 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:46 #5052 [Verbose] > │ ## collect                                                                   │

00:02:46 #5053 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:46 #5054 [Verbose] >

00:02:46 #5055 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:46 #5056 [Verbose] > inl collect forall t r. (fn : t -> a i32 r) (items : a i32 t) : a i32 r =

00:02:46 #5057 [Verbose] >     items

00:02:46 #5058 [Verbose] >     |> am.map fn

00:02:46 #5059 [Verbose] >     |> am.fold (/@) (a ;[[]])

00:02:46 #5060 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1900-0033-03f01c839442\main.spi

00:02:46 #5061 [Verbose] >

00:02:46 #5062 [Verbose] > ╭─[ 201.28ms - stdout ]────────────────────────────────────────────────────────╮

00:02:46 #5063 [Verbose] > │ ()                                                                           │

00:02:46 #5064 [Verbose] > │                                                                              │

00:02:46 #5065 [Verbose] > │                                                                              │

00:02:46 #5066 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:46 #5067 [Verbose] >

00:02:46 #5068 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:46 #5069 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:46 #5070 [Verbose] > │ ## choose                                                                    │

00:02:46 #5071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:46 #5072 [Verbose] >

00:02:46 #5073 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:46 #5074 [Verbose] > inl choose f l =

00:02:46 #5075 [Verbose] >     (l, [[]])

00:02:46 #5076 [Verbose] >     ||> am.foldBack fun x acc =>

00:02:46 #5077 [Verbose] >         match f x with

00:02:46 #5078 [Verbose] >         | Some y => y :: acc

00:02:46 #5079 [Verbose] >         | None => acc

00:02:46 #5080 [Verbose] >     |> listm.toArray

00:02:47 #5081 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1920-2079-25565ad98d8b\main.spi

00:02:47 #5082 [Verbose] >

00:02:47 #5083 [Verbose] > ╭─[ 216.72ms - stdout ]────────────────────────────────────────────────────────╮

00:02:47 #5084 [Verbose] > │ ()                                                                           │

00:02:47 #5085 [Verbose] > │                                                                              │

00:02:47 #5086 [Verbose] > │                                                                              │

00:02:47 #5087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:47 #5088 [Verbose] >

00:02:47 #5089 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:47 #5090 [Verbose] > // // test

00:02:47 #5091 [Verbose] >

00:02:47 #5092 [Verbose] > (am.init 10i32 id : a _ _)

00:02:47 #5093 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)

00:02:47 #5094 [Verbose] > |> _assert_eq (a ;[[ 0; 2; 4; 6; 8 ]] : _ i32 _)

00:02:47 #5095 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-1942-4297-46601db810a3\main.spi

00:02:47 #5096 [Verbose] >

00:02:47 #5097 [Verbose] > ╭─[ 750.59ms - stdout ]────────────────────────────────────────────────────────╮

00:02:47 #5098 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:47 #5099 [Verbose] > │ and UH0 =                                                                    │

00:02:47 #5100 [Verbose] > │     | UH0_0                                                                  │

00:02:47 #5101 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:02:47 #5102 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0}                            │

00:02:47 #5103 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:02:47 #5104 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:02:47 #5105 [Verbose] > │     | US0_1                                                                  │

00:02:47 #5106 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:47 #5107 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:47 #5108 [Verbose] > │     let v2 : bool = v1 < 10                                                  │

00:02:47 #5109 [Verbose] > │     v2                                                                       │

00:02:47 #5110 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │

00:02:47 #5111 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:47 #5112 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:47 #5113 [Verbose] > │     v3                                                                       │

00:02:47 #5114 [Verbose] > │ and method4 (v0 : UH0, v1 : int32) : int32 =                                 │

00:02:47 #5115 [Verbose] > │     match v0 with                                                            │

00:02:47 #5116 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:02:47 #5117 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:02:47 #5118 [Verbose] > │         method4(v3, v4)                                                      │

00:02:47 #5119 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:02:47 #5120 [Verbose] > │         v1                                                                   │

00:02:47 #5121 [Verbose] > │ and method5 (v0 : (int32 []), v1 : UH0, v2 : int32) : int32 =                │

00:02:47 #5122 [Verbose] > │     match v1 with                                                            │

00:02:47 #5123 [Verbose] > │     | UH0_1(v3, v4) -> (* Cons *)                                            │

00:02:47 #5124 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:02:47 #5125 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:02:47 #5126 [Verbose] > │         method5(v0, v4, v5)                                                  │

00:02:47 #5127 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:02:47 #5128 [Verbose] > │         v2                                                                   │

00:02:47 #5129 [Verbose] > │ and method3 (v0 : UH0) : (int32 []) =                                        │

00:02:47 #5130 [Verbose] > │     let v1 : int32 = 0                                                       │

00:02:47 #5131 [Verbose] > │     let v2 : int32 = method4(v0, v1)                                         │

00:02:47 #5132 [Verbose] > │     let v3 : (int32 []) = Array.zeroCreate<int32> (v2)                       │

00:02:47 #5133 [Verbose] > │     let v4 : int32 = 0                                                       │

00:02:47 #5134 [Verbose] > │     let v5 : int32 = method5(v3, v0, v4)                                     │

00:02:47 #5135 [Verbose] > │     v3                                                                       │

00:02:47 #5136 [Verbose] > │ and method6 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool =          │

00:02:47 #5137 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:02:47 #5138 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:02:47 #5139 [Verbose] > │     if v4 then                                                               │

00:02:47 #5140 [Verbose] > │         let v5 : int32 = v0.[int v2]                                         │

00:02:47 #5141 [Verbose] > │         let v6 : int32 = v1.[int v2]                                         │

00:02:47 #5142 [Verbose] > │         let v7 : bool = v5 = v6                                              │

00:02:47 #5143 [Verbose] > │         if v7 then                                                           │

00:02:47 #5144 [Verbose] > │             let v8 : int32 = v2 + 1                                          │

00:02:47 #5145 [Verbose] > │             method6(v0, v1, v8)                                              │

00:02:47 #5146 [Verbose] > │         else                                                                 │

00:02:47 #5147 [Verbose] > │             false                                                            │

00:02:47 #5148 [Verbose] > │     else                                                                     │

00:02:47 #5149 [Verbose] > │         true                                                                 │

00:02:47 #5150 [Verbose] > │ and method7 (v0 : bool) : bool =                                             │

00:02:47 #5151 [Verbose] > │     v0                                                                       │

00:02:47 #5152 [Verbose] > │ and method0 () : unit =                                                      │

00:02:47 #5153 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │

00:02:47 #5154 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:47 #5155 [Verbose] > │     while method1(v1) do                                                     │

00:02:47 #5156 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:47 #5157 [Verbose] > │         v0.[int v3] <- v3                                                    │

00:02:47 #5158 [Verbose] > │         let v4 : int32 = v3 + 1                                              │

00:02:47 #5159 [Verbose] > │         v1.l0 <- v4                                                          │

00:02:47 #5160 [Verbose] > │         ()                                                                   │

00:02:47 #5161 [Verbose] > │     let v5 : int32 = v0.Length                                               │

00:02:47 #5162 [Verbose] > │     let v6 : UH0 = UH0_0                                                     │

00:02:47 #5163 [Verbose] > │     let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1                                 │

00:02:47 #5164 [Verbose] > │     while method2(v5, v7) do                                                 │

00:02:47 #5165 [Verbose] > │         let v9 : int32 = v7.l0                                               │

00:02:47 #5166 [Verbose] > │         let v10 : int32 =  -v9                                               │

00:02:47 #5167 [Verbose] > │         let v11 : int32 = v10 + v5                                           │

00:02:47 #5168 [Verbose] > │         let v12 : int32 = v11 - 1                                            │

00:02:47 #5169 [Verbose] > │         let v13 : UH0 = v7.l1                                                │

00:02:47 #5170 [Verbose] > │         let v14 : int32 = v0.[int v12]                                       │

00:02:47 #5171 [Verbose] > │         let v15 : int32 = v14 % 2                                            │

00:02:47 #5172 [Verbose] > │         let v16 : bool = v15 = 0                                             │

00:02:47 #5173 [Verbose] > │         let v19 : US0 =                                                      │

00:02:47 #5174 [Verbose] > │             if v16 then                                                      │

00:02:47 #5175 [Verbose] > │                 US0_0(v14)                                                   │

00:02:47 #5176 [Verbose] > │             else                                                             │

00:02:47 #5177 [Verbose] > │                 US0_1                                                        │

00:02:47 #5178 [Verbose] > │         let v23 : UH0 =                                                      │

00:02:47 #5179 [Verbose] > │             match v19 with                                                   │

00:02:47 #5180 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:47 #5181 [Verbose] > │                 v13                                                          │

00:02:47 #5182 [Verbose] > │             | US0_0(v20) -> (* Some *)                                       │

00:02:47 #5183 [Verbose] > │                 UH0_1(v20, v13)                                              │

00:02:47 #5184 [Verbose] > │         let v24 : int32 = v9 + 1                                             │

00:02:47 #5185 [Verbose] > │         v7.l0 <- v24                                                         │

00:02:47 #5186 [Verbose] > │         v7.l1 <- v23                                                         │

00:02:47 #5187 [Verbose] > │         ()                                                                   │

00:02:47 #5188 [Verbose] > │     let v25 : UH0 = v7.l1                                                    │

00:02:47 #5189 [Verbose] > │     let v26 : (int32 []) = method3(v25)                                      │

00:02:47 #5190 [Verbose] > │     let v27 : (int32 []) = [|0; 2; 4; 6; 8|]                                 │

00:02:47 #5191 [Verbose] > │     let v28 : string = $"%A{v26}"                                            │

00:02:47 #5192 [Verbose] > │     System.Console.WriteLine v28                                             │

00:02:47 #5193 [Verbose] > │     let v29 : int32 = v26.Length                                             │

00:02:47 #5194 [Verbose] > │     let v30 : int32 = v27.Length                                             │

00:02:47 #5195 [Verbose] > │     let v31 : bool = v29 = v30                                               │

00:02:47 #5196 [Verbose] > │     let v32 : bool = v31 <> true                                             │

00:02:47 #5197 [Verbose] > │     let v35 : bool =                                                         │

00:02:47 #5198 [Verbose] > │         if v32 then                                                          │

00:02:47 #5199 [Verbose] > │             false                                                            │

00:02:47 #5200 [Verbose] > │         else                                                                 │

00:02:47 #5201 [Verbose] > │             let v33 : int32 = 0                                              │

00:02:47 #5202 [Verbose] > │             method6(v26, v27, v33)                                           │

00:02:47 #5203 [Verbose] > │     let v37 : bool =                                                         │

00:02:47 #5204 [Verbose] > │         if v35 then                                                          │

00:02:47 #5205 [Verbose] > │             true                                                             │

00:02:47 #5206 [Verbose] > │         else                                                                 │

00:02:47 #5207 [Verbose] > │             method7(v35)                                                     │

00:02:47 #5208 [Verbose] > │     let v38 : string = $"__expect / actual: %A{v26} / expected: %A{v27}"     │

00:02:47 #5209 [Verbose] > │     let v39 : bool = v37 = false                                             │

00:02:47 #5210 [Verbose] > │     if v39 then                                                              │

00:02:47 #5211 [Verbose] > │         failwith<unit> v38                                                   │

00:02:47 #5212 [Verbose] > │ method0()                                                                    │

00:02:47 #5213 [Verbose] > │                                                                              │

00:02:47 #5214 [Verbose] > │ [|0; 2; 4; 6; 8|]                                                            │

00:02:47 #5215 [Verbose] > │                                                                              │

00:02:47 #5216 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:47 #5217 [Verbose] >

00:02:47 #5218 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:47 #5219 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:47 #5220 [Verbose] > │ ## sum                                                                       │

00:02:47 #5221 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:47 #5222 [Verbose] >

00:02:47 #5223 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:47 #5224 [Verbose] > inl sum (a' : a _ _) =

00:02:47 #5225 [Verbose] >     a' |> am.fold (+) 0

00:02:48 #5226 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2025-2544-2fc5a8c83ec4\main.spi

00:02:48 #5227 [Verbose] >

00:02:48 #5228 [Verbose] > ╭─[ 517.06ms - stdout ]────────────────────────────────────────────────────────╮

00:02:48 #5229 [Verbose] > │ ()                                                                           │

00:02:48 #5230 [Verbose] > │                                                                              │

00:02:48 #5231 [Verbose] > │                                                                              │

00:02:48 #5232 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:48 #5233 [Verbose] >

00:02:48 #5234 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:48 #5235 [Verbose] > // // test

00:02:48 #5236 [Verbose] >

00:02:48 #5237 [Verbose] > am.init 10i32 id

00:02:48 #5238 [Verbose] > |> sum

00:02:48 #5239 [Verbose] > |> _assert_eq 45

00:02:48 #5240 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2077-7737-7d7f86967d43\main.spi

00:02:48 #5241 [Verbose] >

00:02:48 #5242 [Verbose] > ╭─[ 360.92ms - stdout ]────────────────────────────────────────────────────────╮

00:02:48 #5243 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:48 #5244 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32}                          │

00:02:48 #5245 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:48 #5246 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:48 #5247 [Verbose] > │     let v2 : bool = v1 < 10                                                  │

00:02:48 #5248 [Verbose] > │     v2                                                                       │

00:02:48 #5249 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │

00:02:48 #5250 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:48 #5251 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:48 #5252 [Verbose] > │     v3                                                                       │

00:02:48 #5253 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:02:48 #5254 [Verbose] > │     v0                                                                       │

00:02:48 #5255 [Verbose] > │ and method0 () : unit =                                                      │

00:02:48 #5256 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │

00:02:48 #5257 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:48 #5258 [Verbose] > │     while method1(v1) do                                                     │

00:02:48 #5259 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:48 #5260 [Verbose] > │         v0.[int v3] <- v3                                                    │

00:02:48 #5261 [Verbose] > │         let v4 : int32 = v3 + 1                                              │

00:02:48 #5262 [Verbose] > │         v1.l0 <- v4                                                          │

00:02:48 #5263 [Verbose] > │         ()                                                                   │

00:02:48 #5264 [Verbose] > │     let v5 : int32 = v0.Length                                               │

00:02:48 #5265 [Verbose] > │     let v6 : Mut1 = {l0 = 0; l1 = 0} : Mut1                                  │

00:02:48 #5266 [Verbose] > │     while method2(v5, v6) do                                                 │

00:02:48 #5267 [Verbose] > │         let v8 : int32 = v6.l0                                               │

00:02:48 #5268 [Verbose] > │         let v9 : int32 = v6.l1                                               │

00:02:48 #5269 [Verbose] > │         let v10 : int32 = v0.[int v8]                                        │

00:02:48 #5270 [Verbose] > │         let v11 : int32 = v9 + v10                                           │

00:02:48 #5271 [Verbose] > │         let v12 : int32 = v8 + 1                                             │

00:02:48 #5272 [Verbose] > │         v6.l0 <- v12                                                         │

00:02:48 #5273 [Verbose] > │         v6.l1 <- v11                                                         │

00:02:48 #5274 [Verbose] > │         ()                                                                   │

00:02:48 #5275 [Verbose] > │     let v13 : int32 = v6.l1                                                  │

00:02:48 #5276 [Verbose] > │     let v14 : string = $"%A{v13}"                                            │

00:02:48 #5277 [Verbose] > │     System.Console.WriteLine v14                                             │

00:02:48 #5278 [Verbose] > │     let v15 : bool = v13 = 45                                                │

00:02:48 #5279 [Verbose] > │     let v17 : bool =                                                         │

00:02:48 #5280 [Verbose] > │         if v15 then                                                          │

00:02:48 #5281 [Verbose] > │             true                                                             │

00:02:48 #5282 [Verbose] > │         else                                                                 │

00:02:48 #5283 [Verbose] > │             method3(v15)                                                     │

00:02:48 #5284 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v13} / expected: %A{45}"      │

00:02:48 #5285 [Verbose] > │     let v19 : bool = v17 = false                                             │

00:02:48 #5286 [Verbose] > │     if v19 then                                                              │

00:02:48 #5287 [Verbose] > │         failwith<unit> v18                                                   │

00:02:48 #5288 [Verbose] > │ method0()                                                                    │

00:02:48 #5289 [Verbose] > │                                                                              │

00:02:48 #5290 [Verbose] > │ 45                                                                           │

00:02:48 #5291 [Verbose] > │                                                                              │

00:02:48 #5292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:48 #5293 [Verbose] >

00:02:48 #5294 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:48 #5295 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:48 #5296 [Verbose] > │ ## init_series                                                               │

00:02:48 #5297 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:48 #5298 [Verbose] >

00:02:48 #5299 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:48 #5300 [Verbose] > inl init_series start end inc =

00:02:48 #5301 [Verbose] >     inl total = conv ((end - start) / inc) + 1

00:02:48 #5302 [Verbose] >     am.init total (conv >> (*) inc >> (+) start) : a i32 _

00:02:49 #5303 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2116-1654-17e8bc153463\main.spi

00:02:49 #5304 [Verbose] >

00:02:49 #5305 [Verbose] > ╭─[ 260.95ms - stdout ]────────────────────────────────────────────────────────╮

00:02:49 #5306 [Verbose] > │ ()                                                                           │

00:02:49 #5307 [Verbose] > │                                                                              │

00:02:49 #5308 [Verbose] > │                                                                              │

00:02:49 #5309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:49 #5310 [Verbose] >

00:02:49 #5311 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:49 #5312 [Verbose] > // // test

00:02:49 #5313 [Verbose] >

00:02:49 #5314 [Verbose] > init_series 0 1 0.5

00:02:49 #5315 [Verbose] > |> _assert_eq (a ;[[ 0f64; 0.5; 1 ]])

00:02:49 #5316 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2142-4273-49e091a2aa0b\main.spi

00:02:49 #5317 [Verbose] >

00:02:49 #5318 [Verbose] > ╭─[ 322.44ms - stdout ]────────────────────────────────────────────────────────╮

00:02:49 #5319 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:49 #5320 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:49 #5321 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:49 #5322 [Verbose] > │     let v2 : bool = v1 < 3                                                   │

00:02:49 #5323 [Verbose] > │     v2                                                                       │

00:02:49 #5324 [Verbose] > │ and method2 (v0 : (float []), v1 : (float []), v2 : int32) : bool =          │

00:02:49 #5325 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:02:49 #5326 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:02:49 #5327 [Verbose] > │     if v4 then                                                               │

00:02:49 #5328 [Verbose] > │         let v5 : float = v0.[int v2]                                         │

00:02:49 #5329 [Verbose] > │         let v6 : float = v1.[int v2]                                         │

00:02:49 #5330 [Verbose] > │         let v7 : bool = v5 = v6                                              │

00:02:49 #5331 [Verbose] > │         if v7 then                                                           │

00:02:49 #5332 [Verbose] > │             let v8 : int32 = v2 + 1                                          │

00:02:49 #5333 [Verbose] > │             method2(v0, v1, v8)                                              │

00:02:49 #5334 [Verbose] > │         else                                                                 │

00:02:49 #5335 [Verbose] > │             false                                                            │

00:02:49 #5336 [Verbose] > │     else                                                                     │

00:02:49 #5337 [Verbose] > │         true                                                                 │

00:02:49 #5338 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:02:49 #5339 [Verbose] > │     v0                                                                       │

00:02:49 #5340 [Verbose] > │ and method0 () : unit =                                                      │

00:02:49 #5341 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (3)                        │

00:02:49 #5342 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:49 #5343 [Verbose] > │     while method1(v1) do                                                     │

00:02:49 #5344 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:49 #5345 [Verbose] > │         let v4 : float = float v3                                            │

00:02:49 #5346 [Verbose] > │         let v5 : float = 0.5 * v4                                            │

00:02:49 #5347 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:02:49 #5348 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:02:49 #5349 [Verbose] > │         v1.l0 <- v6                                                          │

00:02:49 #5350 [Verbose] > │         ()                                                                   │

00:02:49 #5351 [Verbose] > │     let v7 : (float []) = [|0.0; 0.5; 1.0|]                                  │

00:02:49 #5352 [Verbose] > │     let v8 : string = $"%A{v0}"                                              │

00:02:49 #5353 [Verbose] > │     System.Console.WriteLine v8                                              │

00:02:49 #5354 [Verbose] > │     let v9 : int32 = v0.Length                                               │

00:02:49 #5355 [Verbose] > │     let v10 : int32 = v7.Length                                              │

00:02:49 #5356 [Verbose] > │     let v11 : bool = v9 = v10                                                │

00:02:49 #5357 [Verbose] > │     let v12 : bool = v11 <> true                                             │

00:02:49 #5358 [Verbose] > │     let v15 : bool =                                                         │

00:02:49 #5359 [Verbose] > │         if v12 then                                                          │

00:02:49 #5360 [Verbose] > │             false                                                            │

00:02:49 #5361 [Verbose] > │         else                                                                 │

00:02:49 #5362 [Verbose] > │             let v13 : int32 = 0                                              │

00:02:49 #5363 [Verbose] > │             method2(v0, v7, v13)                                             │

00:02:49 #5364 [Verbose] > │     let v17 : bool =                                                         │

00:02:49 #5365 [Verbose] > │         if v15 then                                                          │

00:02:49 #5366 [Verbose] > │             true                                                             │

00:02:49 #5367 [Verbose] > │         else                                                                 │

00:02:49 #5368 [Verbose] > │             method3(v15)                                                     │

00:02:49 #5369 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v0} / expected: %A{v7}"       │

00:02:49 #5370 [Verbose] > │     let v19 : bool = v17 = false                                             │

00:02:49 #5371 [Verbose] > │     if v19 then                                                              │

00:02:49 #5372 [Verbose] > │         failwith<unit> v18                                                   │

00:02:49 #5373 [Verbose] > │ method0()                                                                    │

00:02:49 #5374 [Verbose] > │                                                                              │

00:02:49 #5375 [Verbose] > │ [|0.0; 0.5; 1.0|]                                                            │

00:02:49 #5376 [Verbose] > │                                                                              │

00:02:49 #5377 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:49 #5378 [Verbose] >

00:02:49 #5379 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:49 #5380 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:49 #5381 [Verbose] > │ ## head                                                                      │

00:02:49 #5382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:49 #5383 [Verbose] >

00:02:49 #5384 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:49 #5385 [Verbose] > inl head (ar : a _ _) =

00:02:49 #5386 [Verbose] >     if var_is ar || length ar > 0

00:02:49 #5387 [Verbose] >     then ar |> index 0

00:02:49 #5388 [Verbose] >     else error_type "The length of the array should be greater than 0."

00:02:49 #5389 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2178-7879-7eaf5b745873\main.spi

00:02:49 #5390 [Verbose] >

00:02:49 #5391 [Verbose] > ╭─[ 213.32ms - stdout ]────────────────────────────────────────────────────────╮

00:02:49 #5392 [Verbose] > │ ()                                                                           │

00:02:49 #5393 [Verbose] > │                                                                              │

00:02:49 #5394 [Verbose] > │                                                                              │

00:02:49 #5395 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:49 #5396 [Verbose] >

00:02:49 #5397 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:49 #5398 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:49 #5399 [Verbose] > │ ## last                                                                      │

00:02:49 #5400 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:49 #5401 [Verbose] >

00:02:49 #5402 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:49 #5403 [Verbose] > inl last (ar : a _ _) =

00:02:49 #5404 [Verbose] >     inl len = length ar

00:02:49 #5405 [Verbose] >     if var_is ar || len > 0

00:02:49 #5406 [Verbose] >     then ar |> index (len - 1)

00:02:49 #5407 [Verbose] >     else error_type "The length of the array should be greater than 0."

00:02:49 #5408 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2200-0051-0454b32f0737\main.spi

00:02:49 #5409 [Verbose] >

00:02:49 #5410 [Verbose] > ╭─[ 215.72ms - stdout ]────────────────────────────────────────────────────────╮

00:02:49 #5411 [Verbose] > │ ()                                                                           │

00:02:49 #5412 [Verbose] > │                                                                              │

00:02:49 #5413 [Verbose] > │                                                                              │

00:02:49 #5414 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:49 #5415 [Verbose] >

00:02:49 #5416 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:49 #5417 [Verbose] > // // test

00:02:49 #5418 [Verbose] >

00:02:49 #5419 [Verbose] > am.init 10i32 id

00:02:49 #5420 [Verbose] > |> last

00:02:49 #5421 [Verbose] > |> _assert_eq 9

00:02:50 #5422 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2222-2235-2ce032b38771\main.spi

00:02:50 #5423 [Verbose] >

00:02:50 #5424 [Verbose] > ╭─[ 284.55ms - stdout ]────────────────────────────────────────────────────────╮

00:02:50 #5425 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:50 #5426 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:50 #5427 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:50 #5428 [Verbose] > │     let v2 : bool = v1 < 10                                                  │

00:02:50 #5429 [Verbose] > │     v2                                                                       │

00:02:50 #5430 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:02:50 #5431 [Verbose] > │     v0                                                                       │

00:02:50 #5432 [Verbose] > │ and method0 () : unit =                                                      │

00:02:50 #5433 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │

00:02:50 #5434 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:50 #5435 [Verbose] > │     while method1(v1) do                                                     │

00:02:50 #5436 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:50 #5437 [Verbose] > │         v0.[int v3] <- v3                                                    │

00:02:50 #5438 [Verbose] > │         let v4 : int32 = v3 + 1                                              │

00:02:50 #5439 [Verbose] > │         v1.l0 <- v4                                                          │

00:02:50 #5440 [Verbose] > │         ()                                                                   │

00:02:50 #5441 [Verbose] > │     let v5 : int32 = v0.Length                                               │

00:02:50 #5442 [Verbose] > │     let v6 : int32 = v5 - 1                                                  │

00:02:50 #5443 [Verbose] > │     let v7 : int32 = v0.[int v6]                                             │

00:02:50 #5444 [Verbose] > │     let v8 : string = $"%A{v7}"                                              │

00:02:50 #5445 [Verbose] > │     System.Console.WriteLine v8                                              │

00:02:50 #5446 [Verbose] > │     let v9 : bool = v7 = 9                                                   │

00:02:50 #5447 [Verbose] > │     let v11 : bool =                                                         │

00:02:50 #5448 [Verbose] > │         if v9 then                                                           │

00:02:50 #5449 [Verbose] > │             true                                                             │

00:02:50 #5450 [Verbose] > │         else                                                                 │

00:02:50 #5451 [Verbose] > │             method2(v9)                                                      │

00:02:50 #5452 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v7} / expected: %A{9}"        │

00:02:50 #5453 [Verbose] > │     let v13 : bool = v11 = false                                             │

00:02:50 #5454 [Verbose] > │     if v13 then                                                              │

00:02:50 #5455 [Verbose] > │         failwith<unit> v12                                                   │

00:02:50 #5456 [Verbose] > │ method0()                                                                    │

00:02:50 #5457 [Verbose] > │                                                                              │

00:02:50 #5458 [Verbose] > │ 9                                                                            │

00:02:50 #5459 [Verbose] > │                                                                              │

00:02:50 #5460 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:50 #5461 [Verbose] >

00:02:50 #5462 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:50 #5463 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:50 #5464 [Verbose] > │ ## try_pick                                                                  │

00:02:50 #5465 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:50 #5466 [Verbose] >

00:02:50 #5467 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:50 #5468 [Verbose] > inl try_pick forall t u. (fn : t -> option u) (array : a _ t) : option u =

00:02:50 #5469 [Verbose] >     (array, None)

00:02:50 #5470 [Verbose] >     ||> am.foldBack fun x acc =>

00:02:50 #5471 [Verbose] >         match acc with

00:02:50 #5472 [Verbose] >         | Some _ => acc

00:02:50 #5473 [Verbose] >         | None => x |> fn

00:02:50 #5474 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2252-5263-545965df5f81\main.spi

00:02:50 #5475 [Verbose] >

00:02:50 #5476 [Verbose] > ╭─[ 228.30ms - stdout ]────────────────────────────────────────────────────────╮

00:02:50 #5477 [Verbose] > │ ()                                                                           │

00:02:50 #5478 [Verbose] > │                                                                              │

00:02:50 #5479 [Verbose] > │                                                                              │

00:02:50 #5480 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:50 #5481 [Verbose] >

00:02:50 #5482 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:50 #5483 [Verbose] > // // test

00:02:50 #5484 [Verbose] >

00:02:50 #5485 [Verbose] > am.init 10i32 id

00:02:50 #5486 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)

00:02:50 #5487 [Verbose] > |> _assert_eq (Some 5i32)

00:02:50 #5488 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2275-7576-7943790879d9\main.spi

00:02:50 #5489 [Verbose] >

00:02:50 #5490 [Verbose] > ╭─[ 442.39ms - stdout ]────────────────────────────────────────────────────────╮

00:02:50 #5491 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:50 #5492 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:02:50 #5493 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:02:50 #5494 [Verbose] > │     | US0_1                                                                  │

00:02:50 #5495 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : US0}                            │

00:02:50 #5496 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:50 #5497 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:50 #5498 [Verbose] > │     let v2 : bool = v1 < 10                                                  │

00:02:50 #5499 [Verbose] > │     v2                                                                       │

00:02:50 #5500 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │

00:02:50 #5501 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:50 #5502 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:50 #5503 [Verbose] > │     v3                                                                       │

00:02:50 #5504 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:02:50 #5505 [Verbose] > │     v0                                                                       │

00:02:50 #5506 [Verbose] > │ and method0 () : unit =                                                      │

00:02:50 #5507 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (10)                       │

00:02:50 #5508 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:50 #5509 [Verbose] > │     while method1(v1) do                                                     │

00:02:50 #5510 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:50 #5511 [Verbose] > │         v0.[int v3] <- v3                                                    │

00:02:50 #5512 [Verbose] > │         let v4 : int32 = v3 + 1                                              │

00:02:50 #5513 [Verbose] > │         v1.l0 <- v4                                                          │

00:02:50 #5514 [Verbose] > │         ()                                                                   │

00:02:50 #5515 [Verbose] > │     let v5 : int32 = v0.Length                                               │

00:02:50 #5516 [Verbose] > │     let v6 : US0 = US0_1                                                     │

00:02:50 #5517 [Verbose] > │     let v7 : Mut1 = {l0 = 0; l1 = v6} : Mut1                                 │

00:02:50 #5518 [Verbose] > │     while method2(v5, v7) do                                                 │

00:02:50 #5519 [Verbose] > │         let v9 : int32 = v7.l0                                               │

00:02:50 #5520 [Verbose] > │         let v10 : int32 =  -v9                                               │

00:02:50 #5521 [Verbose] > │         let v11 : int32 = v10 + v5                                           │

00:02:50 #5522 [Verbose] > │         let v12 : int32 = v11 - 1                                            │

00:02:50 #5523 [Verbose] > │         let v13 : US0 = v7.l1                                                │

00:02:50 #5524 [Verbose] > │         let v14 : int32 = v0.[int v12]                                       │

00:02:50 #5525 [Verbose] > │         let v21 : US0 =                                                      │

00:02:50 #5526 [Verbose] > │             match v13 with                                                   │

00:02:50 #5527 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:50 #5528 [Verbose] > │                 let v16 : bool = v14 = 5                                     │

00:02:50 #5529 [Verbose] > │                 if v16 then                                                  │

00:02:50 #5530 [Verbose] > │                     US0_0(v14)                                               │

00:02:50 #5531 [Verbose] > │                 else                                                         │

00:02:50 #5532 [Verbose] > │                     US0_1                                                    │

00:02:50 #5533 [Verbose] > │             | US0_0(v15) -> (* Some *)                                       │

00:02:50 #5534 [Verbose] > │                 v13                                                          │

00:02:50 #5535 [Verbose] > │         let v22 : int32 = v9 + 1                                             │

00:02:50 #5536 [Verbose] > │         v7.l0 <- v22                                                         │

00:02:50 #5537 [Verbose] > │         v7.l1 <- v21                                                         │

00:02:50 #5538 [Verbose] > │         ()                                                                   │

00:02:50 #5539 [Verbose] > │     let v23 : US0 = v7.l1                                                    │

00:02:50 #5540 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │

00:02:50 #5541 [Verbose] > │     System.Console.WriteLine v24                                             │

00:02:50 #5542 [Verbose] > │     let v28 : bool =                                                         │

00:02:50 #5543 [Verbose] > │         match v23 with                                                       │

00:02:50 #5544 [Verbose] > │         | US0_0(v26) -> (* Some *)                                           │

00:02:50 #5545 [Verbose] > │             let v27 : bool = v26 = 5                                         │

00:02:50 #5546 [Verbose] > │             v27                                                              │

00:02:50 #5547 [Verbose] > │         | _ ->                                                               │

00:02:50 #5548 [Verbose] > │             false                                                            │

00:02:50 #5549 [Verbose] > │     let v30 : bool =                                                         │

00:02:50 #5550 [Verbose] > │         if v28 then                                                          │

00:02:50 #5551 [Verbose] > │             true                                                             │

00:02:50 #5552 [Verbose] > │         else                                                                 │

00:02:50 #5553 [Verbose] > │             method3(v28)                                                     │

00:02:50 #5554 [Verbose] > │     let v31 : US0 = US0_0(5)                                                 │

00:02:50 #5555 [Verbose] > │     let v32 : string = $"__expect / actual: %A{v23} / expected: %A{v31}"     │

00:02:50 #5556 [Verbose] > │     let v33 : bool = v30 = false                                             │

00:02:50 #5557 [Verbose] > │     if v33 then                                                              │

00:02:50 #5558 [Verbose] > │         failwith<unit> v32                                                   │

00:02:50 #5559 [Verbose] > │ method0()                                                                    │

00:02:50 #5560 [Verbose] > │                                                                              │

00:02:50 #5561 [Verbose] > │ US0_0 5                                                                      │

00:02:50 #5562 [Verbose] > │                                                                              │

00:02:50 #5563 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:50 #5564 [Verbose] >

00:02:50 #5565 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:50 #5566 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:50 #5567 [Verbose] > │ ## indexed'                                                                  │

00:02:50 #5568 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:50 #5569 [Verbose] >

00:02:50 #5570 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:50 #5571 [Verbose] > inl indexed' forall t dim {int; number} dim' {int; number} u {number}. (ar : a

00:02:50 #5572 [Verbose] > dim t) : a dim' (u * t) =

00:02:50 #5573 [Verbose] >     ((0, a ;[[]]), ar)

00:02:50 #5574 [Verbose] >     ||> am.fold fun (i, acc) x =>

00:02:50 #5575 [Verbose] >         i + 1, acc /@ a ;[[i, x]]

00:02:50 #5576 [Verbose] >     |> snd

00:02:51 #5577 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2323-2323-217020dbab20\main.spi

00:02:51 #5578 [Verbose] >

00:02:51 #5579 [Verbose] > ╭─[ 224.26ms - stdout ]────────────────────────────────────────────────────────╮

00:02:51 #5580 [Verbose] > │ ()                                                                           │

00:02:51 #5581 [Verbose] > │                                                                              │

00:02:51 #5582 [Verbose] > │                                                                              │

00:02:51 #5583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:51 #5584 [Verbose] >

00:02:51 #5585 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:51 #5586 [Verbose] > // // test

00:02:51 #5587 [Verbose] >

00:02:51 #5588 [Verbose] > am.init 3i32 ((*) 2)

00:02:51 #5589 [Verbose] > |> indexed'

00:02:51 #5590 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)

00:02:51 #5591 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2345-4575-402e2f688085\main.spi

00:02:51 #5592 [Verbose] >

00:02:51 #5593 [Verbose] > ╭─[ 389.50ms - stdout ]────────────────────────────────────────────────────────╮

00:02:51 #5594 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:51 #5595 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : int32; mutable l2 : (struct     │

00:02:51 #5596 [Verbose] > │ (int32 * int32) [])}                                                         │

00:02:51 #5597 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:51 #5598 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:51 #5599 [Verbose] > │     let v2 : bool = v1 < 3                                                   │

00:02:51 #5600 [Verbose] > │     v2                                                                       │

00:02:51 #5601 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │

00:02:51 #5602 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:51 #5603 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:51 #5604 [Verbose] > │     v3                                                                       │

00:02:51 #5605 [Verbose] > │ and method3 (v0 : int32, v1 : Mut0) : bool =                                 │

00:02:51 #5606 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:51 #5607 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:51 #5608 [Verbose] > │     v3                                                                       │

00:02:51 #5609 [Verbose] > │ and method4 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32)  │

00:02:51 #5610 [Verbose] > │ []), v2 : int32) : bool =                                                    │

00:02:51 #5611 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:02:51 #5612 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:02:51 #5613 [Verbose] > │     if v4 then                                                               │

00:02:51 #5614 [Verbose] > │         let struct (v5 : int32, v6 : int32) = v0.[int v2]                    │

00:02:51 #5615 [Verbose] > │         let struct (v7 : int32, v8 : int32) = v1.[int v2]                    │

00:02:51 #5616 [Verbose] > │         let v9 : bool = v5 = v7                                              │

00:02:51 #5617 [Verbose] > │         let v11 : bool =                                                     │

00:02:51 #5618 [Verbose] > │             if v9 then                                                       │

00:02:51 #5619 [Verbose] > │                 let v10 : bool = v6 = v8                                     │

00:02:51 #5620 [Verbose] > │                 v10                                                          │

00:02:51 #5621 [Verbose] > │             else                                                             │

00:02:51 #5622 [Verbose] > │                 false                                                        │

00:02:51 #5623 [Verbose] > │         if v11 then                                                          │

00:02:51 #5624 [Verbose] > │             let v12 : int32 = v2 + 1                                         │

00:02:51 #5625 [Verbose] > │             method4(v0, v1, v12)                                             │

00:02:51 #5626 [Verbose] > │         else                                                                 │

00:02:51 #5627 [Verbose] > │             false                                                            │

00:02:51 #5628 [Verbose] > │     else                                                                     │

00:02:51 #5629 [Verbose] > │         true                                                                 │

00:02:51 #5630 [Verbose] > │ and method5 (v0 : bool) : bool =                                             │

00:02:51 #5631 [Verbose] > │     v0                                                                       │

00:02:51 #5632 [Verbose] > │ and method0 () : unit =                                                      │

00:02:51 #5633 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (3)                        │

00:02:51 #5634 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:51 #5635 [Verbose] > │     while method1(v1) do                                                     │

00:02:51 #5636 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:51 #5637 [Verbose] > │         let v4 : int32 = 2 * v3                                              │

00:02:51 #5638 [Verbose] > │         v0.[int v3] <- v4                                                    │

00:02:51 #5639 [Verbose] > │         let v5 : int32 = v3 + 1                                              │

00:02:51 #5640 [Verbose] > │         v1.l0 <- v5                                                          │

00:02:51 #5641 [Verbose] > │         ()                                                                   │

00:02:51 #5642 [Verbose] > │     let v6 : (struct (int32 * int32) []) = [||]                              │

00:02:51 #5643 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:02:51 #5644 [Verbose] > │     let v8 : Mut1 = {l0 = 0; l1 = 0; l2 = v6} : Mut1                         │

00:02:51 #5645 [Verbose] > │     while method2(v7, v8) do                                                 │

00:02:51 #5646 [Verbose] > │         let v10 : int32 = v8.l0                                              │

00:02:51 #5647 [Verbose] > │         let struct (v11 : int32, v12 : (struct (int32 * int32) [])) = v8.l1, │

00:02:51 #5648 [Verbose] > │ v8.l2                                                                        │

00:02:51 #5649 [Verbose] > │         let v13 : int32 = v0.[int v10]                                       │

00:02:51 #5650 [Verbose] > │         let v14 : int32 = v11 + 1                                            │

00:02:51 #5651 [Verbose] > │         let v15 : (struct (int32 * int32) []) = [|struct (v11, v13)|]        │

00:02:51 #5652 [Verbose] > │         let v16 : int32 = v12.Length                                         │

00:02:51 #5653 [Verbose] > │         let v17 : int32 = v15.Length                                         │

00:02:51 #5654 [Verbose] > │         let v18 : int32 = v16 + v17                                          │

00:02:51 #5655 [Verbose] > │         let v19 : (struct (int32 * int32) []) = Array.zeroCreate<struct      │

00:02:51 #5656 [Verbose] > │ (int32 * int32)> (v18)                                                       │

00:02:51 #5657 [Verbose] > │         let v20 : Mut0 = {l0 = 0} : Mut0                                     │

00:02:51 #5658 [Verbose] > │         while method3(v18, v20) do                                           │

00:02:51 #5659 [Verbose] > │             let v22 : int32 = v20.l0                                         │

00:02:51 #5660 [Verbose] > │             let v23 : bool = v22 < v16                                       │

00:02:51 #5661 [Verbose] > │             let struct (v29 : int32, v30 : int32) =                          │

00:02:51 #5662 [Verbose] > │                 if v23 then                                                  │

00:02:51 #5663 [Verbose] > │                     let struct (v24 : int32, v25 : int32) = v12.[int v22]    │

00:02:51 #5664 [Verbose] > │                     struct (v24, v25)                                        │

00:02:51 #5665 [Verbose] > │                 else                                                         │

00:02:51 #5666 [Verbose] > │                     let v26 : int32 = v22 - v16                              │

00:02:51 #5667 [Verbose] > │                     let struct (v27 : int32, v28 : int32) = v15.[int v26]    │

00:02:51 #5668 [Verbose] > │                     struct (v27, v28)                                        │

00:02:51 #5669 [Verbose] > │             v19.[int v22] <- struct (v29, v30)                               │

00:02:51 #5670 [Verbose] > │             let v31 : int32 = v22 + 1                                        │

00:02:51 #5671 [Verbose] > │             v20.l0 <- v31                                                    │

00:02:51 #5672 [Verbose] > │             ()                                                               │

00:02:51 #5673 [Verbose] > │         let v32 : int32 = v10 + 1                                            │

00:02:51 #5674 [Verbose] > │         v8.l0 <- v32                                                         │

00:02:51 #5675 [Verbose] > │         v8.l1 <- v14                                                         │

00:02:51 #5676 [Verbose] > │         v8.l2 <- v19                                                         │

00:02:51 #5677 [Verbose] > │         ()                                                                   │

00:02:51 #5678 [Verbose] > │     let struct (v33 : int32, v34 : (struct (int32 * int32) [])) = v8.l1,     │

00:02:51 #5679 [Verbose] > │ v8.l2                                                                        │

00:02:51 #5680 [Verbose] > │     let v35 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2);  │

00:02:51 #5681 [Verbose] > │ struct (2, 4)|]                                                              │

00:02:51 #5682 [Verbose] > │     let v36 : string = $"%A{v34}"                                            │

00:02:51 #5683 [Verbose] > │     System.Console.WriteLine v36                                             │

00:02:51 #5684 [Verbose] > │     let v37 : int32 = v34.Length                                             │

00:02:51 #5685 [Verbose] > │     let v38 : int32 = v35.Length                                             │

00:02:51 #5686 [Verbose] > │     let v39 : bool = v37 = v38                                               │

00:02:51 #5687 [Verbose] > │     let v40 : bool = v39 <> true                                             │

00:02:51 #5688 [Verbose] > │     let v43 : bool =                                                         │

00:02:51 #5689 [Verbose] > │         if v40 then                                                          │

00:02:51 #5690 [Verbose] > │             false                                                            │

00:02:51 #5691 [Verbose] > │         else                                                                 │

00:02:51 #5692 [Verbose] > │             let v41 : int32 = 0                                              │

00:02:51 #5693 [Verbose] > │             method4(v34, v35, v41)                                           │

00:02:51 #5694 [Verbose] > │     let v45 : bool =                                                         │

00:02:51 #5695 [Verbose] > │         if v43 then                                                          │

00:02:51 #5696 [Verbose] > │             true                                                             │

00:02:51 #5697 [Verbose] > │         else                                                                 │

00:02:51 #5698 [Verbose] > │             method5(v43)                                                     │

00:02:51 #5699 [Verbose] > │     let v46 : string = $"__expect / actual: %A{v34} / expected: %A{v35}"     │

00:02:51 #5700 [Verbose] > │     let v47 : bool = v45 = false                                             │

00:02:51 #5701 [Verbose] > │     if v47 then                                                              │

00:02:51 #5702 [Verbose] > │         failwith<unit> v46                                                   │

00:02:51 #5703 [Verbose] > │ method0()                                                                    │

00:02:51 #5704 [Verbose] > │                                                                              │

00:02:51 #5705 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|]                              │

00:02:51 #5706 [Verbose] > │                                                                              │

00:02:51 #5707 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:51 #5708 [Verbose] >

00:02:51 #5709 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:51 #5710 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:51 #5711 [Verbose] > │ ## map_base                                                                  │

00:02:51 #5712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:51 #5713 [Verbose] >

00:02:51 #5714 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:51 #5715 [Verbose] > inl map_base forall t u. (fn : t -> u) (x : array_base t) : array_base u =

00:02:51 #5716 [Verbose] >     a x

00:02:51 #5717 [Verbose] >     |> am.map fn

00:02:51 #5718 [Verbose] >     |> fun (a x : _ i64 _) => x

00:02:51 #5719 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2391-9142-9c217d9c731a\main.spi

00:02:51 #5720 [Verbose] >

00:02:51 #5721 [Verbose] > ╭─[ 217.46ms - stdout ]────────────────────────────────────────────────────────╮

00:02:51 #5722 [Verbose] > │ ()                                                                           │

00:02:51 #5723 [Verbose] > │                                                                              │

00:02:51 #5724 [Verbose] > │                                                                              │

00:02:51 #5725 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:51 #5726 [Verbose] >

00:02:51 #5727 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:51 #5728 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:51 #5729 [Verbose] > │ ## average                                                                   │

00:02:51 #5730 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:51 #5731 [Verbose] >

00:02:51 #5732 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:51 #5733 [Verbose] > inl average forall el {number}. (a : a _ el) : el =

00:02:51 #5734 [Verbose] >     a |> $'Array.average'

00:02:51 #5735 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2413-1368-1f5ab5b030ad\main.spi

00:02:52 #5736 [Verbose] >

00:02:52 #5737 [Verbose] > ╭─[ 290.95ms - stdout ]────────────────────────────────────────────────────────╮

00:02:52 #5738 [Verbose] > │ ()                                                                           │

00:02:52 #5739 [Verbose] > │                                                                              │

00:02:52 #5740 [Verbose] > │                                                                              │

00:02:52 #5741 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:52 #5742 [Verbose] >

00:02:52 #5743 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:52 #5744 [Verbose] > inl distinct forall dim el. (a : a dim el) : a dim el =

00:02:52 #5745 [Verbose] >     a |> $'Array.distinct'

00:02:52 #5746 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2461-6116-6ccb37959ebb\main.spi

00:02:53 #5747 [Verbose] >

00:02:53 #5748 [Verbose] > ╭─[ 1.23s - stdout ]───────────────────────────────────────────────────────────╮

00:02:53 #5749 [Verbose] > │ ()                                                                           │

00:02:53 #5750 [Verbose] > │                                                                              │

00:02:53 #5751 [Verbose] > │                                                                              │

00:02:53 #5752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:53 #5753 [Verbose] >

00:02:53 #5754 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:53 #5755 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:53 #5756 [Verbose] > │ ## parallel_map                                                              │

00:02:53 #5757 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:53 #5758 [Verbose] >

00:02:53 #5759 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:53 #5760 [Verbose] > inl parallel_map forall dim el el'. (fn : el -> el') (a : a dim el) : a dim el'

00:02:53 #5761 [Verbose] > =

00:02:53 #5762 [Verbose] >     a |> $'Array.Parallel.map' fn

00:02:54 #5763 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2616-1617-196e556f1e30\main.spi

00:02:54 #5764 [Verbose] >

00:02:54 #5765 [Verbose] > ╭─[ 306.45ms - stdout ]────────────────────────────────────────────────────────╮

00:02:54 #5766 [Verbose] > │ ()                                                                           │

00:02:54 #5767 [Verbose] > │                                                                              │

00:02:54 #5768 [Verbose] > │                                                                              │

00:02:54 #5769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5770 [Verbose] >

00:02:54 #5771 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:54 #5772 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:54 #5773 [Verbose] > │ ## sort_by                                                                   │

00:02:54 #5774 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5775 [Verbose] >

00:02:54 #5776 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:54 #5777 [Verbose] > inl sort_by forall dim el. (fn : el -> _) (a : a dim el) : a dim el =

00:02:54 #5778 [Verbose] >     a |> $'Array.sortBy' fn

00:02:54 #5779 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2647-4775-454956006a9c\main.spi

00:02:54 #5780 [Verbose] >

00:02:54 #5781 [Verbose] > ╭─[ 265.98ms - stdout ]────────────────────────────────────────────────────────╮

00:02:54 #5782 [Verbose] > │ ()                                                                           │

00:02:54 #5783 [Verbose] > │                                                                              │

00:02:54 #5784 [Verbose] > │                                                                              │

00:02:54 #5785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5786 [Verbose] >

00:02:54 #5787 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:54 #5788 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:54 #5789 [Verbose] > │ ## sort_descending                                                           │

00:02:54 #5790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5791 [Verbose] >

00:02:54 #5792 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:54 #5793 [Verbose] > inl sort_descending forall dim el. (a : a dim el) : a dim el =

00:02:54 #5794 [Verbose] >     a |> $'Array.sortDescending'

00:02:54 #5795 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2674-7440-7e5d39bf19d0\main.spi

00:02:54 #5796 [Verbose] >

00:02:54 #5797 [Verbose] > ╭─[ 210.67ms - stdout ]────────────────────────────────────────────────────────╮

00:02:54 #5798 [Verbose] > │ ()                                                                           │

00:02:54 #5799 [Verbose] > │                                                                              │

00:02:54 #5800 [Verbose] > │                                                                              │

00:02:54 #5801 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5802 [Verbose] >

00:02:54 #5803 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:54 #5804 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:54 #5805 [Verbose] > │ ## transpose                                                                 │

00:02:54 #5806 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5807 [Verbose] >

00:02:54 #5808 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:54 #5809 [Verbose] > inl transpose forall dim el. (a : a dim (a dim el)) : a dim (a dim el) =

00:02:54 #5810 [Verbose] >     a |> $'Array.transpose'

00:02:54 #5811 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2696-9609-90a7ec0ab561\main.spi

00:02:54 #5812 [Verbose] >

00:02:54 #5813 [Verbose] > ╭─[ 251.86ms - stdout ]────────────────────────────────────────────────────────╮

00:02:54 #5814 [Verbose] > │ ()                                                                           │

00:02:54 #5815 [Verbose] > │                                                                              │

00:02:54 #5816 [Verbose] > │                                                                              │

00:02:54 #5817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5818 [Verbose] >

00:02:54 #5819 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:54 #5820 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:54 #5821 [Verbose] > │ ## try_item                                                                  │

00:02:54 #5822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:54 #5823 [Verbose] >

00:02:54 #5824 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:54 #5825 [Verbose] > inl try_item forall dim el. (i : i32) (a : a dim el) : option el =

00:02:54 #5826 [Verbose] >     a |> $'Array.tryItem' i |> optionm'.unbox

00:02:55 #5827 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2721-2192-2bbc65c80300\main.spi

00:02:55 #5828 [Verbose] >

00:02:55 #5829 [Verbose] > ╭─[ 205.18ms - stdout ]────────────────────────────────────────────────────────╮

00:02:55 #5830 [Verbose] > │ ()                                                                           │

00:02:55 #5831 [Verbose] > │                                                                              │

00:02:55 #5832 [Verbose] > │                                                                              │

00:02:55 #5833 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:55 #5834 [Verbose] >

00:02:55 #5835 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:55 #5836 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:55 #5837 [Verbose] > │ ## indexed                                                                   │

00:02:55 #5838 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:55 #5839 [Verbose] >

00:02:55 #5840 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:55 #5841 [Verbose] > inl indexed (array : a _ _) =

00:02:55 #5842 [Verbose] >     (([[]], 0), array)

00:02:55 #5843 [Verbose] >     ||> am.fold fun (acc, i) x =>

00:02:55 #5844 [Verbose] >         (i, x) :: acc, i + 1

00:02:55 #5845 [Verbose] >     |> fst

00:02:55 #5846 [Verbose] >     |> listm.rev

00:02:55 #5847 [Verbose] >     |> listm.toArray

00:02:55 #5848 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2742-4295-48c0b541b897\main.spi

00:02:55 #5849 [Verbose] >

00:02:55 #5850 [Verbose] > ╭─[ 278.54ms - stdout ]────────────────────────────────────────────────────────╮

00:02:55 #5851 [Verbose] > │ ()                                                                           │

00:02:55 #5852 [Verbose] > │                                                                              │

00:02:55 #5853 [Verbose] > │                                                                              │

00:02:55 #5854 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:55 #5855 [Verbose] >

00:02:55 #5856 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:55 #5857 [Verbose] > // // test

00:02:55 #5858 [Verbose] >

00:02:55 #5859 [Verbose] > am.init 3i32 ((*) 2)

00:02:55 #5860 [Verbose] > |> indexed

00:02:55 #5861 [Verbose] > |> _assert_eq (a ;[[0i32, 0; 1, 2; 2, 4]] : a i32 _)

00:02:55 #5862 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2771-7109-7741abd2f312\main.spi

00:02:55 #5863 [Verbose] >

00:02:55 #5864 [Verbose] > ╭─[ 544.50ms - stdout ]────────────────────────────────────────────────────────╮

00:02:55 #5865 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:55 #5866 [Verbose] > │ and UH0 =                                                                    │

00:02:55 #5867 [Verbose] > │     | UH0_0                                                                  │

00:02:55 #5868 [Verbose] > │     | UH0_1 of int32 * int32 * UH0                                           │

00:02:55 #5869 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : UH0; mutable l2 : int32}        │

00:02:55 #5870 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:02:55 #5871 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:55 #5872 [Verbose] > │     let v2 : bool = v1 < 3                                                   │

00:02:55 #5873 [Verbose] > │     v2                                                                       │

00:02:55 #5874 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │

00:02:55 #5875 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:55 #5876 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:55 #5877 [Verbose] > │     v3                                                                       │

00:02:55 #5878 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:02:55 #5879 [Verbose] > │     match v0 with                                                            │

00:02:55 #5880 [Verbose] > │     | UH0_1(v2, v3, v4) -> (* Cons *)                                        │

00:02:55 #5881 [Verbose] > │         let v5 : UH0 = UH0_1(v2, v3, v1)                                     │

00:02:55 #5882 [Verbose] > │         method3(v4, v5)                                                      │

00:02:55 #5883 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:02:56 #5884 [Verbose] > │         v1                                                                   │

00:02:56 #5885 [Verbose] > │ and method5 (v0 : UH0, v1 : int32) : int32 =                                 │

00:02:56 #5886 [Verbose] > │     match v0 with                                                            │

00:02:56 #5887 [Verbose] > │     | UH0_1(v2, v3, v4) -> (* Cons *)                                        │

00:02:56 #5888 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:02:56 #5889 [Verbose] > │         method5(v4, v5)                                                      │

00:02:56 #5890 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:02:56 #5891 [Verbose] > │         v1                                                                   │

00:02:56 #5892 [Verbose] > │ and method6 (v0 : (struct (int32 * int32) []), v1 : UH0, v2 : int32) : int32 │

00:02:56 #5893 [Verbose] > │ =                                                                            │

00:02:56 #5894 [Verbose] > │     match v1 with                                                            │

00:02:56 #5895 [Verbose] > │     | UH0_1(v3, v4, v5) -> (* Cons *)                                        │

00:02:56 #5896 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:02:56 #5897 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:02:56 #5898 [Verbose] > │         method6(v0, v5, v6)                                                  │

00:02:56 #5899 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:02:56 #5900 [Verbose] > │         v2                                                                   │

00:02:56 #5901 [Verbose] > │ and method4 (v0 : UH0) : (struct (int32 * int32) []) =                       │

00:02:56 #5902 [Verbose] > │     let v1 : int32 = 0                                                       │

00:02:56 #5903 [Verbose] > │     let v2 : int32 = method5(v0, v1)                                         │

00:02:56 #5904 [Verbose] > │     let v3 : (struct (int32 * int32) []) = Array.zeroCreate<struct (int32 *  │

00:02:56 #5905 [Verbose] > │ int32)> (v2)                                                                 │

00:02:56 #5906 [Verbose] > │     let v4 : int32 = 0                                                       │

00:02:56 #5907 [Verbose] > │     let v5 : int32 = method6(v3, v0, v4)                                     │

00:02:56 #5908 [Verbose] > │     v3                                                                       │

00:02:56 #5909 [Verbose] > │ and method7 (v0 : (struct (int32 * int32) []), v1 : (struct (int32 * int32)  │

00:02:56 #5910 [Verbose] > │ []), v2 : int32) : bool =                                                    │

00:02:56 #5911 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:02:56 #5912 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:02:56 #5913 [Verbose] > │     if v4 then                                                               │

00:02:56 #5914 [Verbose] > │         let struct (v5 : int32, v6 : int32) = v0.[int v2]                    │

00:02:56 #5915 [Verbose] > │         let struct (v7 : int32, v8 : int32) = v1.[int v2]                    │

00:02:56 #5916 [Verbose] > │         let v9 : bool = v5 = v7                                              │

00:02:56 #5917 [Verbose] > │         let v11 : bool =                                                     │

00:02:56 #5918 [Verbose] > │             if v9 then                                                       │

00:02:56 #5919 [Verbose] > │                 let v10 : bool = v6 = v8                                     │

00:02:56 #5920 [Verbose] > │                 v10                                                          │

00:02:56 #5921 [Verbose] > │             else                                                             │

00:02:56 #5922 [Verbose] > │                 false                                                        │

00:02:56 #5923 [Verbose] > │         if v11 then                                                          │

00:02:56 #5924 [Verbose] > │             let v12 : int32 = v2 + 1                                         │

00:02:56 #5925 [Verbose] > │             method7(v0, v1, v12)                                             │

00:02:56 #5926 [Verbose] > │         else                                                                 │

00:02:56 #5927 [Verbose] > │             false                                                            │

00:02:56 #5928 [Verbose] > │     else                                                                     │

00:02:56 #5929 [Verbose] > │         true                                                                 │

00:02:56 #5930 [Verbose] > │ and method8 (v0 : bool) : bool =                                             │

00:02:56 #5931 [Verbose] > │     v0                                                                       │

00:02:56 #5932 [Verbose] > │ and method0 () : unit =                                                      │

00:02:56 #5933 [Verbose] > │     let v0 : (int32 []) = Array.zeroCreate<int32> (3)                        │

00:02:56 #5934 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:56 #5935 [Verbose] > │     while method1(v1) do                                                     │

00:02:56 #5936 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:02:56 #5937 [Verbose] > │         let v4 : int32 = 2 * v3                                              │

00:02:56 #5938 [Verbose] > │         v0.[int v3] <- v4                                                    │

00:02:56 #5939 [Verbose] > │         let v5 : int32 = v3 + 1                                              │

00:02:56 #5940 [Verbose] > │         v1.l0 <- v5                                                          │

00:02:56 #5941 [Verbose] > │         ()                                                                   │

00:02:56 #5942 [Verbose] > │     let v6 : int32 = v0.Length                                               │

00:02:56 #5943 [Verbose] > │     let v7 : UH0 = UH0_0                                                     │

00:02:56 #5944 [Verbose] > │     let v8 : Mut1 = {l0 = 0; l1 = v7; l2 = 0} : Mut1                         │

00:02:56 #5945 [Verbose] > │     while method2(v6, v8) do                                                 │

00:02:56 #5946 [Verbose] > │         let v10 : int32 = v8.l0                                              │

00:02:56 #5947 [Verbose] > │         let struct (v11 : UH0, v12 : int32) = v8.l1, v8.l2                   │

00:02:56 #5948 [Verbose] > │         let v13 : int32 = v0.[int v10]                                       │

00:02:56 #5949 [Verbose] > │         let v14 : int32 = v12 + 1                                            │

00:02:56 #5950 [Verbose] > │         let v15 : int32 = v10 + 1                                            │

00:02:56 #5951 [Verbose] > │         let v16 : UH0 = UH0_1(v12, v13, v11)                                 │

00:02:56 #5952 [Verbose] > │         v8.l0 <- v15                                                         │

00:02:56 #5953 [Verbose] > │         v8.l1 <- v16                                                         │

00:02:56 #5954 [Verbose] > │         v8.l2 <- v14                                                         │

00:02:56 #5955 [Verbose] > │         ()                                                                   │

00:02:56 #5956 [Verbose] > │     let struct (v17 : UH0, v18 : int32) = v8.l1, v8.l2                       │

00:02:56 #5957 [Verbose] > │     let v19 : UH0 = UH0_0                                                    │

00:02:56 #5958 [Verbose] > │     let v20 : UH0 = method3(v17, v19)                                        │

00:02:56 #5959 [Verbose] > │     let v21 : (struct (int32 * int32) []) = method4(v20)                     │

00:02:56 #5960 [Verbose] > │     let v22 : (struct (int32 * int32) []) = [|struct (0, 0); struct (1, 2);  │

00:02:56 #5961 [Verbose] > │ struct (2, 4)|]                                                              │

00:02:56 #5962 [Verbose] > │     let v23 : string = $"%A{v21}"                                            │

00:02:56 #5963 [Verbose] > │     System.Console.WriteLine v23                                             │

00:02:56 #5964 [Verbose] > │     let v24 : int32 = v21.Length                                             │

00:02:56 #5965 [Verbose] > │     let v25 : int32 = v22.Length                                             │

00:02:56 #5966 [Verbose] > │     let v26 : bool = v24 = v25                                               │

00:02:56 #5967 [Verbose] > │     let v27 : bool = v26 <> true                                             │

00:02:56 #5968 [Verbose] > │     let v30 : bool =                                                         │

00:02:56 #5969 [Verbose] > │         if v27 then                                                          │

00:02:56 #5970 [Verbose] > │             false                                                            │

00:02:56 #5971 [Verbose] > │         else                                                                 │

00:02:56 #5972 [Verbose] > │             let v28 : int32 = 0                                              │

00:02:56 #5973 [Verbose] > │             method7(v21, v22, v28)                                           │

00:02:56 #5974 [Verbose] > │     let v32 : bool =                                                         │

00:02:56 #5975 [Verbose] > │         if v30 then                                                          │

00:02:56 #5976 [Verbose] > │             true                                                             │

00:02:56 #5977 [Verbose] > │         else                                                                 │

00:02:56 #5978 [Verbose] > │             method8(v30)                                                     │

00:02:56 #5979 [Verbose] > │     let v33 : string = $"__expect / actual: %A{v21} / expected: %A{v22}"     │

00:02:56 #5980 [Verbose] > │     let v34 : bool = v32 = false                                             │

00:02:56 #5981 [Verbose] > │     if v34 then                                                              │

00:02:56 #5982 [Verbose] > │         failwith<unit> v33                                                   │

00:02:56 #5983 [Verbose] > │ method0()                                                                    │

00:02:56 #5984 [Verbose] > │                                                                              │

00:02:56 #5985 [Verbose] > │ [|struct (0, 0); struct (1, 2); struct (2, 4)|]                              │

00:02:56 #5986 [Verbose] > │                                                                              │

00:02:56 #5987 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #5988 [Verbose] >

00:02:56 #5989 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:56 #5990 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:56 #5991 [Verbose] > │ ## vec                                                                       │

00:02:56 #5992 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #5993 [Verbose] >

00:02:56 #5994 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:56 #5995 [Verbose] > nominal vec t = $"Vec<`t>"

00:02:56 #5996 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2833-3350-384626f1b201\main.spi

00:02:56 #5997 [Verbose] >

00:02:56 #5998 [Verbose] > ╭─[ 378.06ms - stdout ]────────────────────────────────────────────────────────╮

00:02:56 #5999 [Verbose] > │ ()                                                                           │

00:02:56 #6000 [Verbose] > │                                                                              │

00:02:56 #6001 [Verbose] > │                                                                              │

00:02:56 #6002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #6003 [Verbose] >

00:02:56 #6004 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:56 #6005 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:56 #6006 [Verbose] > │ ## from_vec                                                                  │

00:02:56 #6007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #6008 [Verbose] >

00:02:56 #6009 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:56 #6010 [Verbose] > inl from_vec forall dim el. (vec : vec el) : a dim el =

00:02:56 #6011 [Verbose] >     !\\(vec, $'"fable_library_rust::NativeArray_::array_from($0)"')

00:02:56 #6012 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2872-7227-765d91f64802\main.spi

00:02:56 #6013 [Verbose] >

00:02:56 #6014 [Verbose] > ╭─[ 235.80ms - stdout ]────────────────────────────────────────────────────────╮

00:02:56 #6015 [Verbose] > │ ()                                                                           │

00:02:56 #6016 [Verbose] > │                                                                              │

00:02:56 #6017 [Verbose] > │                                                                              │

00:02:56 #6018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #6019 [Verbose] >

00:02:56 #6020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:56 #6021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:56 #6022 [Verbose] > │ ## to_vec                                                                    │

00:02:56 #6023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #6024 [Verbose] >

00:02:56 #6025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:56 #6026 [Verbose] > inl to_vec forall t. (ab : array_base t) : vec t =

00:02:56 #6027 [Verbose] >     !\\(ab, $'"$0.to_vec()"')

00:02:56 #6028 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2896-9640-9c5b5debc77d\main.spi

00:02:56 #6029 [Verbose] >

00:02:56 #6030 [Verbose] > ╭─[ 227.64ms - stdout ]────────────────────────────────────────────────────────╮

00:02:56 #6031 [Verbose] > │ ()                                                                           │

00:02:56 #6032 [Verbose] > │                                                                              │

00:02:56 #6033 [Verbose] > │                                                                              │

00:02:56 #6034 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #6035 [Verbose] >

00:02:56 #6036 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:56 #6037 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:56 #6038 [Verbose] > │ ## vec_push                                                                  │

00:02:56 #6039 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:56 #6040 [Verbose] >

00:02:56 #6041 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:56 #6042 [Verbose] > inl vec_push forall el. (el : el) (vec : vec el) : vec el =

00:02:56 #6043 [Verbose] >     inl el = join el

00:02:56 #6044 [Verbose] >     inl vec = join vec

00:02:56 #6045 [Verbose] >     !\($'"let mut !vec = !vec"')

00:02:56 #6046 [Verbose] >     // inl vec = vec |> rust.to_mut

00:02:56 #6047 [Verbose] >     !\($'"!vec.push(!el)"')

00:02:56 #6048 [Verbose] >     !\($'"!vec"')

00:02:57 #6049 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2919-1973-1514a86fbc77\main.spi

00:02:57 #6050 [Verbose] >

00:02:57 #6051 [Verbose] > ╭─[ 245.25ms - stdout ]────────────────────────────────────────────────────────╮

00:02:57 #6052 [Verbose] > │ ()                                                                           │

00:02:57 #6053 [Verbose] > │                                                                              │

00:02:57 #6054 [Verbose] > │                                                                              │

00:02:57 #6055 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:57 #6056 [Verbose] >

00:02:57 #6057 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:57 #6058 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:57 #6059 [Verbose] > │ ## vec_reverse                                                               │

00:02:57 #6060 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:57 #6061 [Verbose] >

00:02:57 #6062 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:57 #6063 [Verbose] > inl vec_reverse forall el. (vec : vec el) : vec el =

00:02:57 #6064 [Verbose] >     inl vec = join vec

00:02:57 #6065 [Verbose] >     !\($'"let mut !vec = !vec"')

00:02:57 #6066 [Verbose] >     !\($'"!vec.reverse()"')

00:02:57 #6067 [Verbose] >     !\($'"!vec"')

00:02:57 #6068 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2944-4487-4e53b134a97d\main.spi

00:02:57 #6069 [Verbose] >

00:02:57 #6070 [Verbose] > ╭─[ 240.99ms - stdout ]────────────────────────────────────────────────────────╮

00:02:57 #6071 [Verbose] > │ ()                                                                           │

00:02:57 #6072 [Verbose] > │                                                                              │

00:02:57 #6073 [Verbose] > │                                                                              │

00:02:57 #6074 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:57 #6075 [Verbose] >

00:02:57 #6076 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:57 #6077 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:57 #6078 [Verbose] > │ ## vec_retain                                                                │

00:02:57 #6079 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:57 #6080 [Verbose] >

00:02:57 #6081 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:57 #6082 [Verbose] > inl vec_retain forall el. (fn : el -> bool) (vec : vec el) : vec el =

00:02:57 #6083 [Verbose] >     inl vec = join vec

00:02:57 #6084 [Verbose] >     inl fn = join fn

00:02:57 #6085 [Verbose] >     !\($'"let mut !vec = !vec"')

00:02:57 #6086 [Verbose] >     // inl vec = vec |> rust.to_mut

00:02:57 #6087 [Verbose] >     !\($'"!vec.retain(|x| !fn(x.clone()))"')

00:02:57 #6088 [Verbose] >     !\($'"!vec"')

00:02:57 #6089 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2969-6956-67c227aa5d7c\main.spi

00:02:57 #6090 [Verbose] >

00:02:57 #6091 [Verbose] > ╭─[ 231.79ms - stdout ]────────────────────────────────────────────────────────╮

00:02:57 #6092 [Verbose] > │ ()                                                                           │

00:02:57 #6093 [Verbose] > │                                                                              │

00:02:57 #6094 [Verbose] > │                                                                              │

00:02:57 #6095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:57 #6096 [Verbose] >

00:02:57 #6097 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:57 #6098 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:57 #6099 [Verbose] > │ ## vec_sort_by_key                                                           │

00:02:57 #6100 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:57 #6101 [Verbose] >

00:02:57 #6102 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:57 #6103 [Verbose] > inl vec_sort_by_key forall el t. (fn : el -> t) (vec : vec el) : vec el =

00:02:57 #6104 [Verbose] >     inl vec = join vec

00:02:57 #6105 [Verbose] >     inl fn = join fn

00:02:57 #6106 [Verbose] >     !\($'"let mut !vec = !vec"')

00:02:57 #6107 [Verbose] >     // inl vec = vec |> rust.to_mut

00:02:57 #6108 [Verbose] >     !\($'"!vec.sort_by_key(|x| !fn(x.clone()))"')

00:02:57 #6109 [Verbose] >     !\($'"!vec"')

00:02:57 #6110 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-2993-9336-94fb9d82d666\main.spi

00:02:58 #6111 [Verbose] >

00:02:58 #6112 [Verbose] > ╭─[ 461.23ms - stdout ]────────────────────────────────────────────────────────╮

00:02:58 #6113 [Verbose] > │ ()                                                                           │

00:02:58 #6114 [Verbose] > │                                                                              │

00:02:58 #6115 [Verbose] > │                                                                              │

00:02:58 #6116 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6117 [Verbose] >

00:02:58 #6118 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:58 #6119 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:58 #6120 [Verbose] > │ ## vec_extend                                                                │

00:02:58 #6121 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6122 [Verbose] >

00:02:58 #6123 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:58 #6124 [Verbose] > inl vec_extend forall el. (el : vec el) (vec : vec el) : vec el =

00:02:58 #6125 [Verbose] >     inl el = join el

00:02:58 #6126 [Verbose] >     inl vec = join vec

00:02:58 #6127 [Verbose] >     !\($'"let mut !vec = !vec"')

00:02:58 #6128 [Verbose] >     // inl vec = vec |> rust.to_mut

00:02:58 #6129 [Verbose] >     !\($'"!vec.extend(!el)"')

00:02:58 #6130 [Verbose] >     !\($'"!vec"')

00:02:58 #6131 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3040-4000-4b28589325ed\main.spi

00:02:58 #6132 [Verbose] >

00:02:58 #6133 [Verbose] > ╭─[ 248.91ms - stdout ]────────────────────────────────────────────────────────╮

00:02:58 #6134 [Verbose] > │ ()                                                                           │

00:02:58 #6135 [Verbose] > │                                                                              │

00:02:58 #6136 [Verbose] > │                                                                              │

00:02:58 #6137 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6138 [Verbose] >

00:02:58 #6139 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:58 #6140 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:58 #6141 [Verbose] > │ ## vec_collect                                                               │

00:02:58 #6142 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6143 [Verbose] >

00:02:58 #6144 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:58 #6145 [Verbose] > inl vec_collect fn vec =

00:02:58 #6146 [Verbose] >     ((;[[]] |> to_vec), (vec |> from_vec : _ i32 _))

00:02:58 #6147 [Verbose] >     ||> am.fold fun acc x =>

00:02:58 #6148 [Verbose] >         acc |> vec_extend (fn x)

00:02:58 #6149 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3065-6575-6f6509c6229a\main.spi

00:02:58 #6150 [Verbose] >

00:02:58 #6151 [Verbose] > ╭─[ 237.12ms - stdout ]────────────────────────────────────────────────────────╮

00:02:58 #6152 [Verbose] > │ ()                                                                           │

00:02:58 #6153 [Verbose] > │                                                                              │

00:02:58 #6154 [Verbose] > │                                                                              │

00:02:58 #6155 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6156 [Verbose] >

00:02:58 #6157 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:58 #6158 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:58 #6159 [Verbose] > │ ## vec_collect_option                                                        │

00:02:58 #6160 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6161 [Verbose] >

00:02:58 #6162 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:58 #6163 [Verbose] > inl vec_collect_option vec =

00:02:58 #6164 [Verbose] >     ((;[[]] |> to_vec |> Ok), (vec |> from_vec : _ i32 _))

00:02:58 #6165 [Verbose] >     ||> am.fold fun acc x =>

00:02:58 #6166 [Verbose] >         x

00:02:58 #6167 [Verbose] >         |> resultm.unbox

00:02:58 #6168 [Verbose] >         |> fun x =>

00:02:58 #6169 [Verbose] >             match acc, x |> resultm.map optionm'.unbox with

00:02:58 #6170 [Verbose] >             | Ok acc, Ok (Some x) => acc |> vec_extend x |> Ok

00:02:58 #6171 [Verbose] >             | _, Error error => error |> Error

00:02:58 #6172 [Verbose] >             | _ => acc

00:02:58 #6173 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3090-9002-95067a0f82f1\main.spi

00:02:58 #6174 [Verbose] >

00:02:58 #6175 [Verbose] > ╭─[ 211.71ms - stdout ]────────────────────────────────────────────────────────╮

00:02:58 #6176 [Verbose] > │ ()                                                                           │

00:02:58 #6177 [Verbose] > │                                                                              │

00:02:58 #6178 [Verbose] > │                                                                              │

00:02:58 #6179 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6180 [Verbose] >

00:02:58 #6181 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:58 #6182 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:58 #6183 [Verbose] > │ ## vec_collect_into                                                          │

00:02:58 #6184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:58 #6185 [Verbose] >

00:02:58 #6186 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:58 #6187 [Verbose] > inl vec_collect_into forall (c : * -> * -> *) t e.

00:02:58 #6188 [Verbose] >     (x : vec (c t e))

00:02:58 #6189 [Verbose] >     : c (vec t) e

00:02:58 #6190 [Verbose] >     =

00:02:58 #6191 [Verbose] >     !\($'"!x.into_iter().collect()"')

00:02:58 #6192 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3111-1177-185c45478995\main.spi

00:02:59 #6193 [Verbose] >

00:03:00 #6194 [Verbose] > ╭─[ 907.38ms - stdout ]────────────────────────────────────────────────────────╮

00:03:00 #6195 [Verbose] > │ ()                                                                           │

00:03:00 #6196 [Verbose] > │                                                                              │

00:03:00 #6197 [Verbose] > │                                                                              │

00:03:00 #6198 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:00 #6199 [Verbose] >

00:03:00 #6200 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:00 #6201 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:00 #6202 [Verbose] > │ ## vec_mapi                                                                  │

00:03:00 #6203 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:00 #6204 [Verbose] >

00:03:00 #6205 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:00 #6206 [Verbose] > inl vec_mapi forall dim t u. (fn : dim -> t -> u) (ar : vec t) : vec u =

00:03:00 #6207 [Verbose] >     inl fn = join fn

00:03:00 #6208 [Verbose] >     inl ar = join ar

00:03:00 #6209 [Verbose] >     !\($'"!ar.iter().enumerate().map(|(i, x)|

00:03:00 #6210 [Verbose] > !fn(i.try_into().unwrap())(x.clone())).collect()"')

00:03:00 #6211 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3285-8521-82fb001f4465\main.spi

00:03:00 #6212 [Verbose] >

00:03:00 #6213 [Verbose] > ╭─[ 522.42ms - stdout ]────────────────────────────────────────────────────────╮

00:03:00 #6214 [Verbose] > │ ()                                                                           │

00:03:00 #6215 [Verbose] > │                                                                              │

00:03:00 #6216 [Verbose] > │                                                                              │

00:03:00 #6217 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:00 #6218 [Verbose] >

00:03:00 #6219 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:00 #6220 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:00 #6221 [Verbose] > │ ## vec_map                                                                   │

00:03:00 #6222 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:00 #6223 [Verbose] >

00:03:00 #6224 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:00 #6225 [Verbose] > inl vec_map forall t u. (fn : t -> u) (ar : vec t) : vec u =

00:03:00 #6226 [Verbose] >     !\\((ar, fn), $'"$0.iter().map(|x| $1(x.clone())).collect()"')

00:03:01 #6227 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3320-2026-29d9094c0572\main.spi

00:03:01 #6228 [Verbose] >

00:03:01 #6229 [Verbose] > ╭─[ 292.83ms - stdout ]────────────────────────────────────────────────────────╮

00:03:01 #6230 [Verbose] > │ ()                                                                           │

00:03:01 #6231 [Verbose] > │                                                                              │

00:03:01 #6232 [Verbose] > │                                                                              │

00:03:01 #6233 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #6234 [Verbose] >

00:03:01 #6235 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:01 #6236 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:01 #6237 [Verbose] > │ ## vec_filter                                                                │

00:03:01 #6238 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #6239 [Verbose] >

00:03:01 #6240 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:01 #6241 [Verbose] > inl vec_filter forall t. (fn : t -> bool) (ar : vec t) : vec t =

00:03:01 #6242 [Verbose] >     inl fn = join fn

00:03:01 #6243 [Verbose] >     inl ar = join ar

00:03:01 #6244 [Verbose] >     !\($'"!ar.into_iter().filter(|x| !fn(x.clone().clone())).collect()"')

00:03:01 #6245 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3350-5052-5a5f862caa2f\main.spi

00:03:01 #6246 [Verbose] >

00:03:01 #6247 [Verbose] > ╭─[ 285.25ms - stdout ]────────────────────────────────────────────────────────╮

00:03:01 #6248 [Verbose] > │ ()                                                                           │

00:03:01 #6249 [Verbose] > │                                                                              │

00:03:01 #6250 [Verbose] > │                                                                              │

00:03:01 #6251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #6252 [Verbose] >

00:03:01 #6253 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:01 #6254 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:01 #6255 [Verbose] > │ ## enumerate                                                                 │

00:03:01 #6256 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #6257 [Verbose] >

00:03:01 #6258 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:01 #6259 [Verbose] > inl enumerate forall dim {int; number} t. (ar : a dim t) : a dim (unativeint *

00:03:01 #6260 [Verbose] > t) =

00:03:01 #6261 [Verbose] >     inl (a ar) = ar

00:03:01 #6262 [Verbose] >     inl ar = ar |> to_vec

00:03:01 #6263 [Verbose] >     !\($'"!ar.into_iter().enumerate().map(std::rc::Rc::new).collect()"')

00:03:01 #6264 [Verbose] >     |> vec_map from_pair

00:03:01 #6265 [Verbose] >     |> from_vec

00:03:01 #6266 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3379-7971-750c865a86d8\main.spi

00:03:01 #6267 [Verbose] >

00:03:01 #6268 [Verbose] > ╭─[ 305.33ms - stdout ]────────────────────────────────────────────────────────╮

00:03:01 #6269 [Verbose] > │ ()                                                                           │

00:03:01 #6270 [Verbose] > │                                                                              │

00:03:01 #6271 [Verbose] > │                                                                              │

00:03:01 #6272 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #6273 [Verbose] >

00:03:01 #6274 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:01 #6275 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:01 #6276 [Verbose] > │ ## slice                                                                     │

00:03:01 #6277 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:01 #6278 [Verbose] >

00:03:01 #6279 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:01 #6280 [Verbose] > nominal slice t = $"Slice<`t>"

00:03:02 #6281 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3410-1099-1430458b32b9\main.spi

00:03:02 #6282 [Verbose] >

00:03:02 #6283 [Verbose] > ╭─[ 286.56ms - stdout ]────────────────────────────────────────────────────────╮

00:03:02 #6284 [Verbose] > │ ()                                                                           │

00:03:02 #6285 [Verbose] > │                                                                              │

00:03:02 #6286 [Verbose] > │                                                                              │

00:03:02 #6287 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:02 #6288 [Verbose] >

00:03:02 #6289 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:02 #6290 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:02 #6291 [Verbose] > │ ## slice'                                                                    │

00:03:02 #6292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:02 #6293 [Verbose] >

00:03:02 #6294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:02 #6295 [Verbose] > nominal slice' t u = $"Slice'<`t, `u>"

00:03:02 #6296 [Verbose] >

00:03:02 #6297 [Verbose] > inl slice' forall dim el. (x : option el) : slice' el dim =

00:03:02 #6298 [Verbose] >     match x with

00:03:02 #6299 [Verbose] >     | Some x => !\($'"[[!x]]"')

00:03:02 #6300 [Verbose] >     | None =>

00:03:02 #6301 [Verbose] >         !\($'"[[\\\"\\\".to_string()]]"') : slice' el dim

00:03:02 #6302 [Verbose] >             // emit_expr `(()) `(slice' el dim) () ($'"[[@dim]]"' : string) :

00:03:02 #6303 [Verbose] > slice' el 10

00:03:02 #6304 [Verbose] >             // !\( : string) : slice' el i32 // !\($'"[[]]"')

00:03:02 #6305 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3440-4050-4fd0d4bdf0ca\main.spi

00:03:02 #6306 [Verbose] >

00:03:02 #6307 [Verbose] > ╭─[ 294.12ms - stdout ]────────────────────────────────────────────────────────╮

00:03:02 #6308 [Verbose] > │ ()                                                                           │

00:03:02 #6309 [Verbose] > │                                                                              │

00:03:02 #6310 [Verbose] > │                                                                              │

00:03:02 #6311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:02 #6312 [Verbose] >

00:03:02 #6313 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:02 #6314 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:02 #6315 [Verbose] > │ ## as_slice                                                                  │

00:03:02 #6316 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:02 #6317 [Verbose] >

00:03:02 #6318 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:02 #6319 [Verbose] > inl as_slice forall t. (x : array_base t) : rust.ref' (slice t) =

00:03:02 #6320 [Verbose] >     inl x = x |> to_vec

00:03:02 #6321 [Verbose] >     !\($'"!x.as_slice()"')

00:03:02 #6322 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-3470-7042-731a15669d60\main.spi

00:03:02 #6323 [Verbose] >

00:03:02 #6324 [Verbose] > ╭─[ 384.43ms - stdout ]────────────────────────────────────────────────────────╮

00:03:02 #6325 [Verbose] > │ ()                                                                           │

00:03:02 #6326 [Verbose] > │                                                                              │

00:03:02 #6327 [Verbose] > │                                                                              │

00:03:02 #6328 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:06 #6329 [Verbose] > [NbConvertApp] Converting notebook am'.dib.ipynb to html

00:03:06 #6330 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:03:06 #6331 [Verbose] >   validate(nb)

00:03:07 #6332 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:03:07 #6333 [Verbose] >   return _pygments_highlight(

00:03:08 #6334 [Verbose] > [NbConvertApp] Writing 398754 bytes to am'.dib.html

00:03:09 #6335 [Debug] executeAsync / exitCode: 0 / output.Length: 94596

00:03:09 #6336 [Debug] main / executeCommand / exitCode: 0

00:03:09 #6337 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"sm'.dib\" -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:03:13 #6338 [Verbose] >

00:03:13 #6339 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:13 #6340 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:13 #6341 [Verbose] > │ # sm'                                                                        │

00:03:13 #6342 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:13 #6343 [Verbose] >

00:03:13 #6344 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:13 #6345 [Verbose] > // // test

00:03:13 #6346 [Verbose] >

00:03:13 #6347 [Verbose] > open testing

00:03:17 #6348 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-4932-3245-313fe2186c66\main.spi

00:03:19 #6349 [Verbose] >

00:03:19 #6350 [Verbose] > ╭─[ 5.83s - stdout ]───────────────────────────────────────────────────────────╮

00:03:19 #6351 [Verbose] > │ ()                                                                           │

00:03:19 #6352 [Verbose] > │                                                                              │

00:03:19 #6353 [Verbose] > │                                                                              │

00:03:19 #6354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:19 #6355 [Verbose] >

00:03:19 #6356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:19 #6357 [Verbose] > open rust_operators

00:03:19 #6358 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5194-9481-9f7e8e1cf4e4\main.spi

00:03:19 #6359 [Verbose] >

00:03:19 #6360 [Verbose] > ╭─[ 223.40ms - stdout ]────────────────────────────────────────────────────────╮

00:03:19 #6361 [Verbose] > │ ()                                                                           │

00:03:19 #6362 [Verbose] > │                                                                              │

00:03:19 #6363 [Verbose] > │                                                                              │

00:03:19 #6364 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:19 #6365 [Verbose] >

00:03:19 #6366 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:19 #6367 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:19 #6368 [Verbose] > │ ## types                                                                     │

00:03:19 #6369 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:19 #6370 [Verbose] >

00:03:19 #6371 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:19 #6372 [Verbose] > inl types () =

00:03:19 #6373 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class

00:03:19 #6374 [Verbose] > end"

00:03:19 #6375 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"base64::DecodeError\")>]]

00:03:19 #6376 [Verbose] > type base64_DecodeError = class end"

00:03:19 #6377 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"borsh::io::Error\")>]] type

00:03:19 #6378 [Verbose] > borsh_io_Error = class end"

00:03:19 #6379 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"js_sys::JsString\")>]] type

00:03:19 #6380 [Verbose] > js_sys_JsString = class end"

00:03:19 #6381 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Error\")>]] type

00:03:19 #6382 [Verbose] > serde_json_Error = class end"

00:03:19 #6383 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"serde_json::Value\")>]] type

00:03:19 #6384 [Verbose] > serde_json_Value = class end"

00:03:19 #6385 [Verbose] >     global "[[<Fable.Core.Erase;

00:03:19 #6386 [Verbose] > Fable.Core.Emit(\"serde_wasm_bindgen::Error\")>]] type serde_wasm_bindgen_Error

00:03:19 #6387 [Verbose] > = class end"

00:03:19 #6388 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::ffi::OsStr\")>]] type

00:03:19 #6389 [Verbose] > std_ffi_OsStr = class end"

00:03:19 #6390 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::ffi::OsString\")>]] type

00:03:19 #6391 [Verbose] > std_ffi_OsString = class end"

00:03:19 #6392 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::str::Utf8Error\")>]]

00:03:19 #6393 [Verbose] > type std_str_Utf8Error = class end"

00:03:19 #6394 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]

00:03:19 #6395 [Verbose] > type std_string_String = class end"

00:03:20 #6396 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5218-1850-1b34929e03aa\main.spi

00:03:20 #6397 [Verbose] >

00:03:20 #6398 [Verbose] > ╭─[ 234.13ms - stdout ]────────────────────────────────────────────────────────╮

00:03:20 #6399 [Verbose] > │ ()                                                                           │

00:03:20 #6400 [Verbose] > │                                                                              │

00:03:20 #6401 [Verbose] > │                                                                              │

00:03:20 #6402 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:20 #6403 [Verbose] >

00:03:20 #6404 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:20 #6405 [Verbose] > // // test

00:03:20 #6406 [Verbose] >

00:03:20 #6407 [Verbose] > inl types () =

00:03:20 #6408 [Verbose] >     rust.types ()

00:03:20 #6409 [Verbose] >     types ()

00:03:20 #6410 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5241-4129-41dba2fd9a41\main.spi

00:03:20 #6411 [Verbose] >

00:03:20 #6412 [Verbose] > ╭─[ 260.64ms - stdout ]────────────────────────────────────────────────────────╮

00:03:20 #6413 [Verbose] > │ ()                                                                           │

00:03:20 #6414 [Verbose] > │                                                                              │

00:03:20 #6415 [Verbose] > │                                                                              │

00:03:20 #6416 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:20 #6417 [Verbose] >

00:03:20 #6418 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:20 #6419 [Verbose] > nominal base64_decode_error = $"base64_DecodeError"

00:03:20 #6420 [Verbose] > nominal borsh_io_error = $"borsh_io_Error"

00:03:20 #6421 [Verbose] > nominal utf8_error = $"std_str_Utf8Error"

00:03:20 #6422 [Verbose] > nominal json_value = $"serde_json_Value"

00:03:20 #6423 [Verbose] > nominal json_error = $"serde_json_Error"

00:03:20 #6424 [Verbose] > nominal serde_wasm_bindgen_error = $"serde_wasm_bindgen_Error"

00:03:20 #6425 [Verbose] > nominal js_string = $"js_sys_JsString"

00:03:20 #6426 [Verbose] > nominal str = $"Str"

00:03:20 #6427 [Verbose] > nominal os_str = $"std_ffi_OsStr"

00:03:20 #6428 [Verbose] > nominal os_string = $"std_ffi_OsString"

00:03:20 #6429 [Verbose] > nominal std_string = $"std_string_String"

00:03:20 #6430 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5267-6781-6b9b5d3268c3\main.spi

00:03:20 #6431 [Verbose] >

00:03:20 #6432 [Verbose] > ╭─[ 229.64ms - stdout ]────────────────────────────────────────────────────────╮

00:03:20 #6433 [Verbose] > │ ()                                                                           │

00:03:20 #6434 [Verbose] > │                                                                              │

00:03:20 #6435 [Verbose] > │                                                                              │

00:03:20 #6436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:20 #6437 [Verbose] >

00:03:20 #6438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:20 #6439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:20 #6440 [Verbose] > │ ## contains                                                                  │

00:03:20 #6441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:20 #6442 [Verbose] >

00:03:20 #6443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:20 #6444 [Verbose] > inl contains (value : string) (s : string) : bool =

00:03:20 #6445 [Verbose] >     $"!s.Contains !value"

00:03:20 #6446 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5291-9129-91c4d8412b1b\main.spi

00:03:20 #6447 [Verbose] >

00:03:20 #6448 [Verbose] > ╭─[ 240.31ms - stdout ]────────────────────────────────────────────────────────╮

00:03:20 #6449 [Verbose] > │ ()                                                                           │

00:03:20 #6450 [Verbose] > │                                                                              │

00:03:20 #6451 [Verbose] > │                                                                              │

00:03:20 #6452 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:20 #6453 [Verbose] >

00:03:20 #6454 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:20 #6455 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:20 #6456 [Verbose] > │ ## ends_with                                                                 │

00:03:20 #6457 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:20 #6458 [Verbose] >

00:03:20 #6459 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:20 #6460 [Verbose] > inl ends_with (value : string) (s : string) : bool =

00:03:20 #6461 [Verbose] >     $"!s.EndsWith !value"

00:03:21 #6462 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5316-1615-1b99bf2db309\main.spi

00:03:21 #6463 [Verbose] >

00:03:21 #6464 [Verbose] > ╭─[ 267.99ms - stdout ]────────────────────────────────────────────────────────╮

00:03:21 #6465 [Verbose] > │ ()                                                                           │

00:03:21 #6466 [Verbose] > │                                                                              │

00:03:21 #6467 [Verbose] > │                                                                              │

00:03:21 #6468 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6469 [Verbose] >

00:03:21 #6470 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:21 #6471 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:21 #6472 [Verbose] > │ ## pad_left                                                                  │

00:03:21 #6473 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6474 [Verbose] >

00:03:21 #6475 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:21 #6476 [Verbose] > inl pad_left (total_width : i32) (padding_char : char) (s : string) : string =

00:03:21 #6477 [Verbose] >     $"!s.PadLeft (!total_width, !padding_char)"

00:03:21 #6478 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5343-4348-40e8152dd15f\main.spi

00:03:21 #6479 [Verbose] >

00:03:21 #6480 [Verbose] > ╭─[ 210.64ms - stdout ]────────────────────────────────────────────────────────╮

00:03:21 #6481 [Verbose] > │ ()                                                                           │

00:03:21 #6482 [Verbose] > │                                                                              │

00:03:21 #6483 [Verbose] > │                                                                              │

00:03:21 #6484 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6485 [Verbose] >

00:03:21 #6486 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:21 #6487 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:21 #6488 [Verbose] > │ ## pad_right                                                                 │

00:03:21 #6489 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6490 [Verbose] >

00:03:21 #6491 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:21 #6492 [Verbose] > inl pad_right (pad : i32) (s : string) : string =

00:03:21 #6493 [Verbose] >     $"!s.PadRight !pad"

00:03:21 #6494 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5365-6512-6d3e20d6ac72\main.spi

00:03:21 #6495 [Verbose] >

00:03:21 #6496 [Verbose] > ╭─[ 273.85ms - stdout ]────────────────────────────────────────────────────────╮

00:03:21 #6497 [Verbose] > │ ()                                                                           │

00:03:21 #6498 [Verbose] > │                                                                              │

00:03:21 #6499 [Verbose] > │                                                                              │

00:03:21 #6500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6501 [Verbose] >

00:03:21 #6502 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:21 #6503 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:21 #6504 [Verbose] > │ ## replace                                                                   │

00:03:21 #6505 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6506 [Verbose] >

00:03:21 #6507 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:21 #6508 [Verbose] > inl replace (old_value : string) (new_value : string) (s : string) : string =

00:03:21 #6509 [Verbose] >     $"!s.Replace (!old_value, !new_value)"

00:03:21 #6510 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5393-9312-958c0adb7360\main.spi

00:03:21 #6511 [Verbose] >

00:03:21 #6512 [Verbose] > ╭─[ 245.51ms - stdout ]────────────────────────────────────────────────────────╮

00:03:21 #6513 [Verbose] > │ ()                                                                           │

00:03:21 #6514 [Verbose] > │                                                                              │

00:03:21 #6515 [Verbose] > │                                                                              │

00:03:21 #6516 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6517 [Verbose] >

00:03:21 #6518 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:21 #6519 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:21 #6520 [Verbose] > │ ## starts_with                                                               │

00:03:21 #6521 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:21 #6522 [Verbose] >

00:03:21 #6523 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:21 #6524 [Verbose] > inl starts_with (value : string) (s : string) : bool =

00:03:21 #6525 [Verbose] >     $"!s.StartsWith !value"

00:03:22 #6526 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5418-1838-173364fccbb5\main.spi

00:03:22 #6527 [Verbose] >

00:03:22 #6528 [Verbose] > ╭─[ 245.74ms - stdout ]────────────────────────────────────────────────────────╮

00:03:22 #6529 [Verbose] > │ ()                                                                           │

00:03:22 #6530 [Verbose] > │                                                                              │

00:03:22 #6531 [Verbose] > │                                                                              │

00:03:22 #6532 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6533 [Verbose] >

00:03:22 #6534 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:22 #6535 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:22 #6536 [Verbose] > │ ## substring                                                                 │

00:03:22 #6537 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6538 [Verbose] >

00:03:22 #6539 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:22 #6540 [Verbose] > inl substring (start : i32) (len : i32) (str : string) : string =

00:03:22 #6541 [Verbose] >     $"!str.Substring (!start, !len)"

00:03:22 #6542 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5443-4355-4a74215fcc14\main.spi

00:03:22 #6543 [Verbose] >

00:03:22 #6544 [Verbose] > ╭─[ 262.89ms - stdout ]────────────────────────────────────────────────────────╮

00:03:22 #6545 [Verbose] > │ ()                                                                           │

00:03:22 #6546 [Verbose] > │                                                                              │

00:03:22 #6547 [Verbose] > │                                                                              │

00:03:22 #6548 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6549 [Verbose] >

00:03:22 #6550 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:22 #6551 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:22 #6552 [Verbose] > │ ## to_lower                                                                  │

00:03:22 #6553 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6554 [Verbose] >

00:03:22 #6555 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:22 #6556 [Verbose] > inl to_lower (input : string) : string =

00:03:22 #6557 [Verbose] >     $"!input.ToLower ()"

00:03:22 #6558 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5470-7059-71313ea3d942\main.spi

00:03:22 #6559 [Verbose] >

00:03:22 #6560 [Verbose] > ╭─[ 239.21ms - stdout ]────────────────────────────────────────────────────────╮

00:03:22 #6561 [Verbose] > │ ()                                                                           │

00:03:22 #6562 [Verbose] > │                                                                              │

00:03:22 #6563 [Verbose] > │                                                                              │

00:03:22 #6564 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6565 [Verbose] >

00:03:22 #6566 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:22 #6567 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:22 #6568 [Verbose] > │ ## to_upper                                                                  │

00:03:22 #6569 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6570 [Verbose] >

00:03:22 #6571 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:22 #6572 [Verbose] > inl to_upper (input : string) : string =

00:03:22 #6573 [Verbose] >     $"!input.ToUpper ()"

00:03:22 #6574 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5495-9506-9c486defa1be\main.spi

00:03:22 #6575 [Verbose] >

00:03:22 #6576 [Verbose] > ╭─[ 230.36ms - stdout ]────────────────────────────────────────────────────────╮

00:03:22 #6577 [Verbose] > │ ()                                                                           │

00:03:22 #6578 [Verbose] > │                                                                              │

00:03:22 #6579 [Verbose] > │                                                                              │

00:03:22 #6580 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6581 [Verbose] >

00:03:22 #6582 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:22 #6583 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:22 #6584 [Verbose] > │ ## trim                                                                      │

00:03:22 #6585 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:22 #6586 [Verbose] >

00:03:22 #6587 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:22 #6588 [Verbose] > inl trim (input : string) : string =

00:03:22 #6589 [Verbose] >     $"!input.Trim ()"

00:03:23 #6590 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5518-1873-187968332d1c\main.spi

00:03:23 #6591 [Verbose] >

00:03:23 #6592 [Verbose] > ╭─[ 313.21ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6593 [Verbose] > │ ()                                                                           │

00:03:23 #6594 [Verbose] > │                                                                              │

00:03:23 #6595 [Verbose] > │                                                                              │

00:03:23 #6596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6597 [Verbose] >

00:03:23 #6598 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:23 #6599 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:23 #6600 [Verbose] > │ ## trim_end                                                                  │

00:03:23 #6601 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6602 [Verbose] >

00:03:23 #6603 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:23 #6604 [Verbose] > inl trim_end (trim_chars : array_base char) (input : string) : string =

00:03:23 #6605 [Verbose] >     $"!input.TrimEnd !trim_chars"

00:03:23 #6606 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5551-5108-57cf5e81ab79\main.spi

00:03:23 #6607 [Verbose] >

00:03:23 #6608 [Verbose] > ╭─[ 279.67ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6609 [Verbose] > │ ()                                                                           │

00:03:23 #6610 [Verbose] > │                                                                              │

00:03:23 #6611 [Verbose] > │                                                                              │

00:03:23 #6612 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6613 [Verbose] >

00:03:23 #6614 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:23 #6615 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:23 #6616 [Verbose] > │ ## trim_start                                                                │

00:03:23 #6617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6618 [Verbose] >

00:03:23 #6619 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:23 #6620 [Verbose] > inl trim_start (trim_chars : array_base char) (input : string) : string =

00:03:23 #6621 [Verbose] >     $"!input.TrimStart !trim_chars"

00:03:23 #6622 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5579-7936-772fc70a7d72\main.spi

00:03:23 #6623 [Verbose] >

00:03:23 #6624 [Verbose] > ╭─[ 229.10ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6625 [Verbose] > │ ()                                                                           │

00:03:23 #6626 [Verbose] > │                                                                              │

00:03:23 #6627 [Verbose] > │                                                                              │

00:03:23 #6628 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6629 [Verbose] >

00:03:23 #6630 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:23 #6631 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:23 #6632 [Verbose] > │ ## slice                                                                     │

00:03:23 #6633 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6634 [Verbose] >

00:03:23 #6635 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:23 #6636 [Verbose] > inl slice from to s : string =

00:03:23 #6637 [Verbose] >     sm.slice s { from to }

00:03:23 #6638 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5602-0294-021cb5fbfef0\main.spi

00:03:23 #6639 [Verbose] >

00:03:23 #6640 [Verbose] > ╭─[ 229.16ms - stdout ]────────────────────────────────────────────────────────╮

00:03:23 #6641 [Verbose] > │ ()                                                                           │

00:03:23 #6642 [Verbose] > │                                                                              │

00:03:23 #6643 [Verbose] > │                                                                              │

00:03:23 #6644 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6645 [Verbose] >

00:03:23 #6646 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:23 #6647 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:23 #6648 [Verbose] > │ ## raw_string_literal                                                        │

00:03:23 #6649 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:23 #6650 [Verbose] >

00:03:23 #6651 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:23 #6652 [Verbose] > inl raw_string_literal (s : string) : rust.ref' str =

00:03:23 #6653 [Verbose] >     !\($"\"r#\\\"\" + !s + \"\\\"#\"")

00:03:24 #6654 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5626-2652-2d6deb303fe2\main.spi

00:03:24 #6655 [Verbose] >

00:03:24 #6656 [Verbose] > ╭─[ 254.48ms - stdout ]────────────────────────────────────────────────────────╮

00:03:24 #6657 [Verbose] > │ ()                                                                           │

00:03:24 #6658 [Verbose] > │                                                                              │

00:03:24 #6659 [Verbose] > │                                                                              │

00:03:24 #6660 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:24 #6661 [Verbose] >

00:03:24 #6662 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:24 #6663 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:24 #6664 [Verbose] > │ ## raw_string_literal_static                                                 │

00:03:24 #6665 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:24 #6666 [Verbose] >

00:03:24 #6667 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:24 #6668 [Verbose] > inl raw_string_literal_static (s : string) : rust.static_ref' str =

00:03:24 #6669 [Verbose] >     !\($"\"r#\\\"\" + !s + \"\\\"#\"")

00:03:24 #6670 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5652-5287-5f1dcb513a1f\main.spi

00:03:24 #6671 [Verbose] >

00:03:24 #6672 [Verbose] > ╭─[ 229.98ms - stdout ]────────────────────────────────────────────────────────╮

00:03:24 #6673 [Verbose] > │ ()                                                                           │

00:03:24 #6674 [Verbose] > │                                                                              │

00:03:24 #6675 [Verbose] > │                                                                              │

00:03:24 #6676 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:24 #6677 [Verbose] >

00:03:24 #6678 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:24 #6679 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:24 #6680 [Verbose] > │ ## include_str                                                               │

00:03:24 #6681 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:24 #6682 [Verbose] >

00:03:24 #6683 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:24 #6684 [Verbose] > inl include_str (path : string) : rust.ref' str =

00:03:24 #6685 [Verbose] >     !\($'"include_str\!(\\\"" + !path + "\\\")"')

00:03:24 #6686 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5676-7625-7b6e6aa180a2\main.spi

00:03:24 #6687 [Verbose] >

00:03:24 #6688 [Verbose] > ╭─[ 255.66ms - stdout ]────────────────────────────────────────────────────────╮

00:03:24 #6689 [Verbose] > │ ()                                                                           │

00:03:24 #6690 [Verbose] > │                                                                              │

00:03:24 #6691 [Verbose] > │                                                                              │

00:03:24 #6692 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:24 #6693 [Verbose] >

00:03:24 #6694 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:24 #6695 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:24 #6696 [Verbose] > │ ## as_str                                                                    │

00:03:24 #6697 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:24 #6698 [Verbose] >

00:03:24 #6699 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:24 #6700 [Verbose] > inl as_str (s : string) : rust.ref' str =

00:03:24 #6701 [Verbose] >     !\\(s, $'"fable_library_rust::String_::LrcStr::as_str(&$0)"')

00:03:24 #6702 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5702-0241-0f59a76050ac\main.spi

00:03:25 #6703 [Verbose] >

00:03:25 #6704 [Verbose] > ╭─[ 565.44ms - stdout ]────────────────────────────────────────────────────────╮

00:03:25 #6705 [Verbose] > │ ()                                                                           │

00:03:25 #6706 [Verbose] > │                                                                              │

00:03:25 #6707 [Verbose] > │                                                                              │

00:03:25 #6708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6709 [Verbose] >

00:03:25 #6710 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:25 #6711 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:25 #6712 [Verbose] > │ ## as_os_ref                                                                 │

00:03:25 #6713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6714 [Verbose] >

00:03:25 #6715 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:25 #6716 [Verbose] > inl as_os_ref (s : os_string) : rust.ref' os_str =

00:03:25 #6717 [Verbose] >     !\\(s, $'"$0.as_ref()"')

00:03:25 #6718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5759-5995-577a22353e95\main.spi

00:03:25 #6719 [Verbose] >

00:03:25 #6720 [Verbose] > ╭─[ 221.45ms - stdout ]────────────────────────────────────────────────────────╮

00:03:25 #6721 [Verbose] > │ ()                                                                           │

00:03:25 #6722 [Verbose] > │                                                                              │

00:03:25 #6723 [Verbose] > │                                                                              │

00:03:25 #6724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6725 [Verbose] >

00:03:25 #6726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:25 #6727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:25 #6728 [Verbose] > │ ## to_os_string                                                              │

00:03:25 #6729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6730 [Verbose] >

00:03:25 #6731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:25 #6732 [Verbose] > inl to_os_string (s : rust.ref' os_str) : os_string =

00:03:25 #6733 [Verbose] >     !\\(s, $'"$0.to_os_string()"')

00:03:25 #6734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5782-8256-8f3a2aed9d92\main.spi

00:03:25 #6735 [Verbose] >

00:03:25 #6736 [Verbose] > ╭─[ 216.97ms - stdout ]────────────────────────────────────────────────────────╮

00:03:25 #6737 [Verbose] > │ ()                                                                           │

00:03:25 #6738 [Verbose] > │                                                                              │

00:03:25 #6739 [Verbose] > │                                                                              │

00:03:25 #6740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6741 [Verbose] >

00:03:25 #6742 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:25 #6743 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:25 #6744 [Verbose] > │ ## os_to_str                                                                 │

00:03:25 #6745 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6746 [Verbose] >

00:03:25 #6747 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:25 #6748 [Verbose] > inl os_to_str (s : os_string) : optionm'.option' (rust.ref' str) =

00:03:25 #6749 [Verbose] >     !\\(s, $'"$0.to_str()"')

00:03:25 #6750 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5804-0488-08177ee74197\main.spi

00:03:25 #6751 [Verbose] >

00:03:25 #6752 [Verbose] > ╭─[ 219.52ms - stdout ]────────────────────────────────────────────────────────╮

00:03:25 #6753 [Verbose] > │ ()                                                                           │

00:03:25 #6754 [Verbose] > │                                                                              │

00:03:25 #6755 [Verbose] > │                                                                              │

00:03:25 #6756 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6757 [Verbose] >

00:03:25 #6758 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:25 #6759 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:25 #6760 [Verbose] > │ ## from_std_string                                                           │

00:03:25 #6761 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:25 #6762 [Verbose] >

00:03:26 #6763 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:26 #6764 [Verbose] > inl from_std_string (str : std_string) : string =

00:03:26 #6765 [Verbose] >     !\\(str, $'"fable_library_rust::String_::fromString($0)"')

00:03:26 #6766 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5827-2738-2122e3510a6b\main.spi

00:03:26 #6767 [Verbose] >

00:03:26 #6768 [Verbose] > ╭─[ 231.04ms - stdout ]────────────────────────────────────────────────────────╮

00:03:26 #6769 [Verbose] > │ ()                                                                           │

00:03:26 #6770 [Verbose] > │                                                                              │

00:03:26 #6771 [Verbose] > │                                                                              │

00:03:26 #6772 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6773 [Verbose] >

00:03:26 #6774 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:26 #6775 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:26 #6776 [Verbose] > │ ## ref_to_std_string                                                         │

00:03:26 #6777 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6778 [Verbose] >

00:03:26 #6779 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:26 #6780 [Verbose] > inl ref_to_std_string (str : rust.ref' str) : std_string =

00:03:26 #6781 [Verbose] >     !\\(str, $'"String::from($0)"')

00:03:26 #6782 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5851-5134-5c544f941f0d\main.spi

00:03:26 #6783 [Verbose] >

00:03:26 #6784 [Verbose] > ╭─[ 223.84ms - stdout ]────────────────────────────────────────────────────────╮

00:03:26 #6785 [Verbose] > │ ()                                                                           │

00:03:26 #6786 [Verbose] > │                                                                              │

00:03:26 #6787 [Verbose] > │                                                                              │

00:03:26 #6788 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6789 [Verbose] >

00:03:26 #6790 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:26 #6791 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:26 #6792 [Verbose] > │ ## to_std_string                                                             │

00:03:26 #6793 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6794 [Verbose] >

00:03:26 #6795 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:26 #6796 [Verbose] > inl to_std_string (s : string) : std_string =

00:03:26 #6797 [Verbose] >     inl s = join s

00:03:26 #6798 [Verbose] >     s |> as_str |> ref_to_std_string

00:03:26 #6799 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5874-7412-7ca099ea85df\main.spi

00:03:26 #6800 [Verbose] >

00:03:26 #6801 [Verbose] > ╭─[ 249.04ms - stdout ]────────────────────────────────────────────────────────╮

00:03:26 #6802 [Verbose] > │ ()                                                                           │

00:03:26 #6803 [Verbose] > │                                                                              │

00:03:26 #6804 [Verbose] > │                                                                              │

00:03:26 #6805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6806 [Verbose] >

00:03:26 #6807 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:26 #6808 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:26 #6809 [Verbose] > │ ## as_str_std                                                                │

00:03:26 #6810 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6811 [Verbose] >

00:03:26 #6812 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:26 #6813 [Verbose] > inl as_str_std (s : std_string) : rust.ref' str =

00:03:26 #6814 [Verbose] >     inl s = join s

00:03:26 #6815 [Verbose] >     !\($'"!s.as_str()"')

00:03:26 #6816 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5899-9975-953c9ec2fee8\main.spi

00:03:26 #6817 [Verbose] >

00:03:26 #6818 [Verbose] > ╭─[ 248.51ms - stdout ]────────────────────────────────────────────────────────╮

00:03:26 #6819 [Verbose] > │ ()                                                                           │

00:03:26 #6820 [Verbose] > │                                                                              │

00:03:26 #6821 [Verbose] > │                                                                              │

00:03:26 #6822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6823 [Verbose] >

00:03:26 #6824 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:26 #6825 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:26 #6826 [Verbose] > │ ## into_boxed_str                                                            │

00:03:26 #6827 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:26 #6828 [Verbose] >

00:03:26 #6829 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:26 #6830 [Verbose] > inl into_boxed_str (s : std_string) : rust.box str =

00:03:26 #6831 [Verbose] >     !\($'"!s.into_boxed_str()"')

00:03:27 #6832 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5925-2510-288f66f41433\main.spi

00:03:27 #6833 [Verbose] >

00:03:27 #6834 [Verbose] > ╭─[ 223.00ms - stdout ]────────────────────────────────────────────────────────╮

00:03:27 #6835 [Verbose] > │ ()                                                                           │

00:03:27 #6836 [Verbose] > │                                                                              │

00:03:27 #6837 [Verbose] > │                                                                              │

00:03:27 #6838 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6839 [Verbose] >

00:03:27 #6840 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:27 #6841 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:27 #6842 [Verbose] > │ ## format'                                                                   │

00:03:27 #6843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6844 [Verbose] >

00:03:27 #6845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:27 #6846 [Verbose] > inl format' x : std_string =

00:03:27 #6847 [Verbose] >     !\\(x, $'@@$"format\!(""{{}}"", $0)"')

00:03:27 #6848 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5947-4789-449e4a7d8c80\main.spi

00:03:27 #6849 [Verbose] >

00:03:27 #6850 [Verbose] > ╭─[ 244.95ms - stdout ]────────────────────────────────────────────────────────╮

00:03:27 #6851 [Verbose] > │ ()                                                                           │

00:03:27 #6852 [Verbose] > │                                                                              │

00:03:27 #6853 [Verbose] > │                                                                              │

00:03:27 #6854 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6855 [Verbose] >

00:03:27 #6856 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:27 #6857 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:27 #6858 [Verbose] > │ ## format_debug                                                              │

00:03:27 #6859 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6860 [Verbose] >

00:03:27 #6861 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:27 #6862 [Verbose] > inl format_debug x : string =

00:03:27 #6863 [Verbose] >     $'$"%A{!x}"'

00:03:27 #6864 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5973-7320-7c3fc774558b\main.spi

00:03:27 #6865 [Verbose] >

00:03:27 #6866 [Verbose] > ╭─[ 242.43ms - stdout ]────────────────────────────────────────────────────────╮

00:03:27 #6867 [Verbose] > │ ()                                                                           │

00:03:27 #6868 [Verbose] > │                                                                              │

00:03:27 #6869 [Verbose] > │                                                                              │

00:03:27 #6870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6871 [Verbose] >

00:03:27 #6872 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:27 #6873 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:27 #6874 [Verbose] > │ ## format_debug'                                                             │

00:03:27 #6875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6876 [Verbose] >

00:03:27 #6877 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:27 #6878 [Verbose] > inl format_debug' x : std_string =

00:03:27 #6879 [Verbose] >     !\\(x, $'@@$"format\!(""{{:?}}"", $0)"')

00:03:27 #6880 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1252-5998-9810-97a7e3d02c92\main.spi

00:03:27 #6881 [Verbose] >

00:03:27 #6882 [Verbose] > ╭─[ 230.17ms - stdout ]────────────────────────────────────────────────────────╮

00:03:27 #6883 [Verbose] > │ ()                                                                           │

00:03:27 #6884 [Verbose] > │                                                                              │

00:03:27 #6885 [Verbose] > │                                                                              │

00:03:27 #6886 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6887 [Verbose] >

00:03:27 #6888 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:27 #6889 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:27 #6890 [Verbose] > │ ## format_pretty'                                                            │

00:03:27 #6891 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:27 #6892 [Verbose] >

00:03:27 #6893 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:27 #6894 [Verbose] > inl format_pretty' x : std_string =

00:03:27 #6895 [Verbose] >     !\\(x, $'@@$"format\!(""{{:#?}}"", $0)"')

00:03:28 #6896 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0021-2172-2f2d744bb864\main.spi

00:03:28 #6897 [Verbose] >

00:03:28 #6898 [Verbose] > ╭─[ 254.16ms - stdout ]────────────────────────────────────────────────────────╮

00:03:28 #6899 [Verbose] > │ ()                                                                           │

00:03:28 #6900 [Verbose] > │                                                                              │

00:03:28 #6901 [Verbose] > │                                                                              │

00:03:28 #6902 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:28 #6903 [Verbose] >

00:03:28 #6904 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:28 #6905 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:28 #6906 [Verbose] > │ ## format_exception                                                          │

00:03:28 #6907 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:28 #6908 [Verbose] >

00:03:28 #6909 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:28 #6910 [Verbose] > inl format_exception (ex : exn) : string =

00:03:28 #6911 [Verbose] >     run_target function

00:03:28 #6912 [Verbose] >         | Fsharp (Native) => fun () => $'$"{!ex.GetType ()}: {!ex.Message}"'

00:03:28 #6913 [Verbose] >         | _ => fun () => ex |> format_debug

00:03:28 #6914 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0047-4779-4099173e501c\main.spi

00:03:28 #6915 [Verbose] >

00:03:28 #6916 [Verbose] > ╭─[ 230.96ms - stdout ]────────────────────────────────────────────────────────╮

00:03:28 #6917 [Verbose] > │ ()                                                                           │

00:03:28 #6918 [Verbose] > │                                                                              │

00:03:28 #6919 [Verbose] > │                                                                              │

00:03:28 #6920 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:28 #6921 [Verbose] >

00:03:28 #6922 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:28 #6923 [Verbose] > // // test

00:03:28 #6924 [Verbose] >

00:03:28 #6925 [Verbose] > fun () => failwith "test"

00:03:28 #6926 [Verbose] > |> _throws

00:03:28 #6927 [Verbose] > |> optionm.map sm'.format_exception

00:03:28 #6928 [Verbose] > |> _assert_eq (Some "System.Exception: test")

00:03:28 #6929 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0071-7136-7d1189dbf540\main.spi

00:03:30 #6930 [Verbose] >

00:03:30 #6931 [Verbose] > ╭─[ 2.22s - stdout ]───────────────────────────────────────────────────────────╮

00:03:30 #6932 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:03:30 #6933 [Verbose] > │     | US0_0 of f0_0 : exn                                                    │

00:03:30 #6934 [Verbose] > │     | US0_1                                                                  │

00:03:30 #6935 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:03:30 #6936 [Verbose] > │     | US1_0 of f0_0 : string                                                 │

00:03:30 #6937 [Verbose] > │     | US1_1                                                                  │

00:03:30 #6938 [Verbose] > │ let rec closure0 () () : unit =                                              │

00:03:30 #6939 [Verbose] > │     failwith<unit> "test"                                                    │

00:03:30 #6940 [Verbose] > │ and closure1 () (v0 : exn) : US0 =                                           │

00:03:30 #6941 [Verbose] > │     US0_0(v0)                                                                │

00:03:30 #6942 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:03:30 #6943 [Verbose] > │     v0                                                                       │

00:03:30 #6944 [Verbose] > │ and method0 () : unit =                                                      │

00:03:30 #6945 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:03:30 #6946 [Verbose] > │     let v1 : US0 = US0_1                                                     │

00:03:30 #6947 [Verbose] > │     let v2 : (exn -> US0) = closure1()                                       │

00:03:30 #6948 [Verbose] > │     let v3 : US0 = try v0 (); v1 with ex -> ex |> v2                         │

00:03:30 #6949 [Verbose] > │     let v16 : US1 =                                                          │

00:03:30 #6950 [Verbose] > │         match v3 with                                                        │

00:03:30 #6951 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:03:30 #6952 [Verbose] > │             US1_1                                                            │

00:03:30 #6953 [Verbose] > │         | US0_0(v4) -> (* Some *)                                            │

00:03:30 #6954 [Verbose] > │             let v5 : string option = None                                    │

00:03:30 #6955 [Verbose] > │             let mutable _v5 = v5                                             │

00:03:30 #6956 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:03:30 #6957 [Verbose] > │             let v6 : string = $"%A{v4}"                                      │

00:03:30 #6958 [Verbose] > │             v6                                                               │

00:03:30 #6959 [Verbose] > │             #endif                                                           │

00:03:30 #6960 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:03:30 #6961 [Verbose] > │             let v7 : string = $"%A{v4}"                                      │

00:03:30 #6962 [Verbose] > │             v7                                                               │

00:03:30 #6963 [Verbose] > │             #endif                                                           │

00:03:30 #6964 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:03:30 #6965 [Verbose] > │             let v8 : string = $"%A{v4}"                                      │

00:03:30 #6966 [Verbose] > │             v8                                                               │

00:03:30 #6967 [Verbose] > │             #endif                                                           │

00:03:30 #6968 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:03:30 #6969 [Verbose] > │             let v9 : string = $"{v4.GetType ()}: {v4.Message}"               │

00:03:30 #6970 [Verbose] > │             v9                                                               │

00:03:30 #6971 [Verbose] > │             #endif                                                           │

00:03:30 #6972 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:03:30 #6973 [Verbose] > │             let v10 : string = $"%A{v4}"                                     │

00:03:30 #6974 [Verbose] > │             v10                                                              │

00:03:30 #6975 [Verbose] > │             #endif                                                           │

00:03:30 #6976 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:03:30 #6977 [Verbose] > │             let v11 : string = $"%A{v4}"                                     │

00:03:30 #6978 [Verbose] > │             v11                                                              │

00:03:30 #6979 [Verbose] > │             #endif                                                           │

00:03:30 #6980 [Verbose] > │             |> fun x -> _v5 <- Some x                                        │

00:03:30 #6981 [Verbose] > │             let v12 : string = _v5 |> Option.get                             │

00:03:30 #6982 [Verbose] > │             US1_0(v12)                                                       │

00:03:30 #6983 [Verbose] > │     let v17 : string = $"%A{v16}"                                            │

00:03:30 #6984 [Verbose] > │     System.Console.WriteLine v17                                             │

00:03:30 #6985 [Verbose] > │     let v22 : bool =                                                         │

00:03:30 #6986 [Verbose] > │         match v16 with                                                       │

00:03:30 #6987 [Verbose] > │         | US1_0(v20) -> (* Some *)                                           │

00:03:30 #6988 [Verbose] > │             let v21 : bool = v20 = "System.Exception: test"                  │

00:03:30 #6989 [Verbose] > │             v21                                                              │

00:03:30 #6990 [Verbose] > │         | _ ->                                                               │

00:03:30 #6991 [Verbose] > │             false                                                            │

00:03:30 #6992 [Verbose] > │     let v24 : bool =                                                         │

00:03:30 #6993 [Verbose] > │         if v22 then                                                          │

00:03:30 #6994 [Verbose] > │             true                                                             │

00:03:30 #6995 [Verbose] > │         else                                                                 │

00:03:30 #6996 [Verbose] > │             method1(v22)                                                     │

00:03:30 #6997 [Verbose] > │     let v25 : string = "System.Exception: test"                              │

00:03:30 #6998 [Verbose] > │     let v26 : US1 = US1_0(v25)                                               │

00:03:30 #6999 [Verbose] > │     let v27 : string = $"__expect / actual: %A{v16} / expected: %A{v26}"     │

00:03:30 #7000 [Verbose] > │     let v28 : bool = v24 = false                                             │

00:03:30 #7001 [Verbose] > │     if v28 then                                                              │

00:03:30 #7002 [Verbose] > │         failwith<unit> v27                                                   │

00:03:30 #7003 [Verbose] > │ method0()                                                                    │

00:03:30 #7004 [Verbose] > │                                                                              │

00:03:30 #7005 [Verbose] > │ US1_0 "System.Exception: test"                                               │

00:03:30 #7006 [Verbose] > │                                                                              │

00:03:30 #7007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:30 #7008 [Verbose] >

00:03:30 #7009 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:30 #7010 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:30 #7011 [Verbose] > │ ## obj_to_string                                                             │

00:03:30 #7012 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:30 #7013 [Verbose] >

00:03:30 #7014 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:30 #7015 [Verbose] > inl obj_to_string x : string =

00:03:30 #7016 [Verbose] >     x |> $'_.ToString()'

00:03:30 #7017 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0298-9827-9877b2e4a023\main.spi

00:03:30 #7018 [Verbose] >

00:03:30 #7019 [Verbose] > ╭─[ 272.42ms - stdout ]────────────────────────────────────────────────────────╮

00:03:30 #7020 [Verbose] > │ ()                                                                           │

00:03:30 #7021 [Verbose] > │                                                                              │

00:03:30 #7022 [Verbose] > │                                                                              │

00:03:30 #7023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:30 #7024 [Verbose] >

00:03:30 #7025 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:30 #7026 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:30 #7027 [Verbose] > │ ## to_string any                                                             │

00:03:30 #7028 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:30 #7029 [Verbose] >

00:03:30 #7030 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:30 #7031 [Verbose] > instance to_string any =

00:03:30 #7032 [Verbose] >     obj_to_string

00:03:31 #7033 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0325-2598-2305ae5385f1\main.spi

00:03:31 #7034 [Verbose] >

00:03:31 #7035 [Verbose] > ╭─[ 498.04ms - stdout ]────────────────────────────────────────────────────────╮

00:03:31 #7036 [Verbose] > │ ()                                                                           │

00:03:31 #7037 [Verbose] > │                                                                              │

00:03:31 #7038 [Verbose] > │                                                                              │

00:03:31 #7039 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:31 #7040 [Verbose] >

00:03:31 #7041 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:31 #7042 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:31 #7043 [Verbose] > │ ## to_string result t u                                                      │

00:03:31 #7044 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:31 #7045 [Verbose] >

00:03:31 #7046 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:31 #7047 [Verbose] > instance to_string result t u = fun x =>

00:03:31 #7048 [Verbose] >     real

00:03:31 #7049 [Verbose] >         open rust

00:03:31 #7050 [Verbose] >         typecase (t * u) with

00:03:31 #7051 [Verbose] >         | string * string =>

00:03:31 #7052 [Verbose] >             match x with

00:03:31 #7053 [Verbose] >             | Ok x => x

00:03:31 #7054 [Verbose] >             | Error x => $'"Error: " + !x + ""' : string

00:03:31 #7055 [Verbose] >         | std_string * std_string =>

00:03:31 #7056 [Verbose] >             match x with

00:03:31 #7057 [Verbose] >             | Ok x => from_std_string x

00:03:31 #7058 [Verbose] >             | Error x => $'"Error: " + string !x + ""' : string

00:03:31 #7059 [Verbose] >         | _ => obj_to_string `u x

00:03:31 #7060 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0376-7653-7625ca70b5eb\main.spi

00:03:31 #7061 [Verbose] >

00:03:31 #7062 [Verbose] > ╭─[ 242.26ms - stdout ]────────────────────────────────────────────────────────╮

00:03:31 #7063 [Verbose] > │ ()                                                                           │

00:03:31 #7064 [Verbose] > │                                                                              │

00:03:31 #7065 [Verbose] > │                                                                              │

00:03:31 #7066 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:31 #7067 [Verbose] >

00:03:31 #7068 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:31 #7069 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:31 #7070 [Verbose] > │ ## serialize                                                                 │

00:03:31 #7071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:31 #7072 [Verbose] >

00:03:31 #7073 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:31 #7074 [Verbose] > inl serialize forall t. (x : t) : resultm.result' std_string json_error =

00:03:31 #7075 [Verbose] >     !\($'"serde_json::to_string(&!x)"')

00:03:31 #7076 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0401-0143-0dab1fa42e7f\main.spi

00:03:31 #7077 [Verbose] >

00:03:31 #7078 [Verbose] > ╭─[ 226.98ms - stdout ]────────────────────────────────────────────────────────╮

00:03:31 #7079 [Verbose] > │ ()                                                                           │

00:03:31 #7080 [Verbose] > │                                                                              │

00:03:31 #7081 [Verbose] > │                                                                              │

00:03:31 #7082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:31 #7083 [Verbose] >

00:03:31 #7084 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:31 #7085 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:31 #7086 [Verbose] > │ ## deserialize                                                               │

00:03:31 #7087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:31 #7088 [Verbose] >

00:03:31 #7089 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:31 #7090 [Verbose] > inl deserialize forall t. (json : string) : resultm.result' t std_string =

00:03:31 #7091 [Verbose] >     inl json = join json

00:03:31 #7092 [Verbose] >     inl json = json |> as_str

00:03:31 #7093 [Verbose] >     !\($'"serde_json::from_str(&!json)"')

00:03:31 #7094 [Verbose] >     |> resultm.map_error' fun (x : json_error) => x |> format'

00:03:32 #7095 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0424-2481-246ff87fc60c\main.spi

00:03:32 #7096 [Verbose] >

00:03:32 #7097 [Verbose] > ╭─[ 273.47ms - stdout ]────────────────────────────────────────────────────────╮

00:03:32 #7098 [Verbose] > │ ()                                                                           │

00:03:32 #7099 [Verbose] > │                                                                              │

00:03:32 #7100 [Verbose] > │                                                                              │

00:03:32 #7101 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7102 [Verbose] >

00:03:32 #7103 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:32 #7104 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:32 #7105 [Verbose] > │ ## borsh_deserialize                                                         │

00:03:32 #7106 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7107 [Verbose] >

00:03:32 #7108 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:32 #7109 [Verbose] > inl borsh_deserialize forall t. (data : array_base u8) : resultm.result' t

00:03:32 #7110 [Verbose] > std_string =

00:03:32 #7111 [Verbose] >     inl data = data |> am'.as_slice

00:03:32 #7112 [Verbose] >     !\($'"let mut !data = !data"')

00:03:32 #7113 [Verbose] >     inl result = !\($'"borsh::BorshDeserialize::deserialize(&mut !data)"')

00:03:32 #7114 [Verbose] >     result

00:03:32 #7115 [Verbose] >     |> resultm.map_error' fun (x : borsh_io_error) => x |> format'

00:03:32 #7116 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0453-5312-55e82e4db7e9\main.spi

00:03:32 #7117 [Verbose] >

00:03:32 #7118 [Verbose] > ╭─[ 277.69ms - stdout ]────────────────────────────────────────────────────────╮

00:03:32 #7119 [Verbose] > │ ()                                                                           │

00:03:32 #7120 [Verbose] > │                                                                              │

00:03:32 #7121 [Verbose] > │                                                                              │

00:03:32 #7122 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7123 [Verbose] >

00:03:32 #7124 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:32 #7125 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:32 #7126 [Verbose] > │ ## deserialize_vec                                                           │

00:03:32 #7127 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7128 [Verbose] >

00:03:32 #7129 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:32 #7130 [Verbose] > inl deserialize_vec (value : json_value) : resultm.result' (am'.vec u8)

00:03:32 #7131 [Verbose] > std_string =

00:03:32 #7132 [Verbose] >     inl value = join value

00:03:32 #7133 [Verbose] >     !\($'"serde_json::from_value(!value)"')

00:03:32 #7134 [Verbose] >     |> resultm.map_error' fun (x : json_error) => x |> format'

00:03:32 #7135 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0481-8152-827bc73acd6a\main.spi

00:03:32 #7136 [Verbose] >

00:03:32 #7137 [Verbose] > ╭─[ 222.10ms - stdout ]────────────────────────────────────────────────────────╮

00:03:32 #7138 [Verbose] > │ ()                                                                           │

00:03:32 #7139 [Verbose] > │                                                                              │

00:03:32 #7140 [Verbose] > │                                                                              │

00:03:32 #7141 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7142 [Verbose] >

00:03:32 #7143 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:32 #7144 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:32 #7145 [Verbose] > │ ## encode_uri_component                                                      │

00:03:32 #7146 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7147 [Verbose] >

00:03:32 #7148 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:32 #7149 [Verbose] > inl encode_uri_component (s : std_string) : js_string =

00:03:32 #7150 [Verbose] >     !\($'"js_sys::encode_uri_component(&!s)"')

00:03:32 #7151 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0504-0406-0a4cb534cafb\main.spi

00:03:32 #7152 [Verbose] >

00:03:32 #7153 [Verbose] > ╭─[ 218.29ms - stdout ]────────────────────────────────────────────────────────╮

00:03:32 #7154 [Verbose] > │ ()                                                                           │

00:03:32 #7155 [Verbose] > │                                                                              │

00:03:32 #7156 [Verbose] > │                                                                              │

00:03:32 #7157 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7158 [Verbose] >

00:03:32 #7159 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:32 #7160 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:32 #7161 [Verbose] > │ ## strip_prefix                                                              │

00:03:32 #7162 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:32 #7163 [Verbose] >

00:03:32 #7164 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:32 #7165 [Verbose] > inl strip_prefix (prefix : char) (s : std_string) : optionm'.option' (rust.ref'

00:03:32 #7166 [Verbose] > str) =

00:03:32 #7167 [Verbose] >     inl s = join s

00:03:32 #7168 [Verbose] >     !\($'"!s.strip_prefix(!prefix)"')

00:03:33 #7169 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0526-2664-223a3b46af6e\main.spi

00:03:33 #7170 [Verbose] >

00:03:33 #7171 [Verbose] > ╭─[ 271.48ms - stdout ]────────────────────────────────────────────────────────╮

00:03:33 #7172 [Verbose] > │ ()                                                                           │

00:03:33 #7173 [Verbose] > │                                                                              │

00:03:33 #7174 [Verbose] > │                                                                              │

00:03:33 #7175 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:33 #7176 [Verbose] >

00:03:33 #7177 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:33 #7178 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:33 #7179 [Verbose] > │ ## base64_decode                                                             │

00:03:33 #7180 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:33 #7181 [Verbose] >

00:03:33 #7182 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:33 #7183 [Verbose] > inl base64_decode (s : std_string) : result std_string std_string =

00:03:33 #7184 [Verbose] >     fun () =>

00:03:33 #7185 [Verbose] >         inl s = join s

00:03:33 #7186 [Verbose] >         inl bytes : resultm.result' (am'.vec u8) base64_decode_error =

00:03:33 #7187 [Verbose] >

00:03:33 #7188 [Verbose] > !\($'"base64::Engine::decode(&base64::engine::general_purpose::STANDARD, !s)"')

00:03:33 #7189 [Verbose] >         inl bytes =

00:03:33 #7190 [Verbose] >             bytes

00:03:33 #7191 [Verbose] >             |> resultm.map_error' format'

00:03:33 #7192 [Verbose] >             |> resultm.try'

00:03:33 #7193 [Verbose] >         inl result : resultm.result' std_string utf8_error =

00:03:33 #7194 [Verbose] >             !\($'"std::str::from_utf8(&!bytes).map(String::from)"')

00:03:33 #7195 [Verbose] >         result

00:03:33 #7196 [Verbose] >         |> resultm.map_error' format'

00:03:33 #7197 [Verbose] >     |> fun x =>

00:03:33 #7198 [Verbose] >         join x ()

00:03:33 #7199 [Verbose] >         |> resultm.unbox

00:03:33 #7200 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0554-5430-55a8b1a8ab16\main.spi

00:03:33 #7201 [Verbose] >

00:03:33 #7202 [Verbose] > ╭─[ 227.18ms - stdout ]────────────────────────────────────────────────────────╮

00:03:33 #7203 [Verbose] > │ ()                                                                           │

00:03:33 #7204 [Verbose] > │                                                                              │

00:03:33 #7205 [Verbose] > │                                                                              │

00:03:33 #7206 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:33 #7207 [Verbose] >

00:03:33 #7208 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:33 #7209 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:33 #7210 [Verbose] > │ ## concat_array_trailing                                                     │

00:03:33 #7211 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:33 #7212 [Verbose] >

00:03:33 #7213 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:33 #7214 [Verbose] > inl concat_array_trailing (separator : string) (input : a i32 string) =

00:03:33 #7215 [Verbose] >     ("", input)

00:03:33 #7216 [Verbose] >     ||> am.fold fun acc (x : string) =>

00:03:33 #7217 [Verbose] >         $'!acc + !x + !separator + ""'

00:03:33 #7218 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0577-7763-71a54384597c\main.spi

00:03:33 #7219 [Verbose] >

00:03:33 #7220 [Verbose] > ╭─[ 231.33ms - stdout ]────────────────────────────────────────────────────────╮

00:03:33 #7221 [Verbose] > │ ()                                                                           │

00:03:33 #7222 [Verbose] > │                                                                              │

00:03:33 #7223 [Verbose] > │                                                                              │

00:03:33 #7224 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:33 #7225 [Verbose] >

00:03:33 #7226 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:33 #7227 [Verbose] > // // test

00:03:33 #7228 [Verbose] > // // rust=

00:03:33 #7229 [Verbose] >

00:03:33 #7230 [Verbose] > ;[[

00:03:33 #7231 [Verbose] >     "1"

00:03:33 #7232 [Verbose] >     "2"

00:03:33 #7233 [Verbose] >     "3"

00:03:33 #7234 [Verbose] > ]]

00:03:33 #7235 [Verbose] > |> fun x =>

00:03:33 #7236 [Verbose] >     inl code = (a x : _ i32 _) |> concat_array_trailing "\n"

00:03:33 #7237 [Verbose] >     code

00:03:33 #7238 [Verbose] >     |> _assert_eq "1\n2\n3\n"

00:03:33 #7239 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-0601-0114-0f50bd0283ff\main.spi

00:03:41 #7240 [Verbose] >

00:03:41 #7241 [Verbose] > ╭─[ 7.74s - return value ]─────────────────────────────────────────────────────╮

00:03:41 #7242 [Verbose] > │ .rs output:                                                                  │

00:03:41 #7243 [Verbose] > │ "1                                                                           │

00:03:41 #7244 [Verbose] > │ 2                                                                            │

00:03:41 #7245 [Verbose] > │ 3                                                                            │

00:03:41 #7246 [Verbose] > │ "                                                                            │

00:03:41 #7247 [Verbose] > │                                                                              │

00:03:41 #7248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:41 #7249 [Verbose] >

00:03:41 #7250 [Verbose] > ╭─[ 7.75s - stdout ]───────────────────────────────────────────────────────────╮

00:03:41 #7251 [Verbose] > │                                                                              │

00:03:41 #7252 [Verbose] > │ .fsx:                                                                        │

00:03:41 #7253 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string}                        │

00:03:41 #7254 [Verbose] > │ let rec method1 (v0 : int32, v1 : Mut0) : bool =                             │

00:03:41 #7255 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:03:41 #7256 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:03:41 #7257 [Verbose] > │     v3                                                                       │

00:03:41 #7258 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:03:41 #7259 [Verbose] > │     v0                                                                       │

00:03:41 #7260 [Verbose] > │ and method0 () : unit =                                                      │

00:03:41 #7261 [Verbose] > │     let v0 : string = "1"                                                    │

00:03:41 #7262 [Verbose] > │     let v1 : string = "2"                                                    │

00:03:41 #7263 [Verbose] > │     let v2 : string = "3"                                                    │

00:03:41 #7264 [Verbose] > │     let v3 : (string []) = [|v0; v1; v2|]                                    │

00:03:41 #7265 [Verbose] > │     let v4 : int32 = v3.Length                                               │

00:03:41 #7266 [Verbose] > │     let v5 : string = ""                                                     │

00:03:41 #7267 [Verbose] > │     let v6 : Mut0 = {l0 = 0; l1 = v5} : Mut0                                 │

00:03:41 #7268 [Verbose] > │     while method1(v4, v6) do                                                 │

00:03:41 #7269 [Verbose] > │         let v8 : int32 = v6.l0                                               │

00:03:41 #7270 [Verbose] > │         let v9 : string = v6.l1                                              │

00:03:41 #7271 [Verbose] > │         let v10 : string = v3.[int v8]                                       │

00:03:41 #7272 [Verbose] > │         let v11 : string = "\n"                                              │

00:03:41 #7273 [Verbose] > │         let v12 : string = v9 + v10 + v11 + ""                               │

00:03:41 #7274 [Verbose] > │         let v13 : int32 = v8 + 1                                             │

00:03:41 #7275 [Verbose] > │         v6.l0 <- v13                                                         │

00:03:41 #7276 [Verbose] > │         v6.l1 <- v12                                                         │

00:03:41 #7277 [Verbose] > │         ()                                                                   │

00:03:41 #7278 [Verbose] > │     let v14 : string = v6.l1                                                 │

00:03:41 #7279 [Verbose] > │     let v15 : string = $"%A{v14}"                                            │

00:03:41 #7280 [Verbose] > │     System.Console.WriteLine v15                                             │

00:03:41 #7281 [Verbose] > │     let v17 : bool = v14 = "1\n2\n3\n"                                       │

00:03:41 #7282 [Verbose] > │     let v19 : bool =                                                         │

00:03:41 #7283 [Verbose] > │         if v17 then                                                          │

00:03:41 #7284 [Verbose] > │             true                                                             │

00:03:41 #7285 [Verbose] > │         else                                                                 │

00:03:41 #7286 [Verbose] > │             method2(v17)                                                     │

00:03:41 #7287 [Verbose] > │     let v20 : string = "1\n2\n3\n"                                           │

00:03:41 #7288 [Verbose] > │     let v21 : string = $"__expect / actual: %A{v14} / expected: %A{v20}"     │

00:03:41 #7289 [Verbose] > │     let v22 : bool = v19 = false                                             │

00:03:41 #7290 [Verbose] > │     if v22 then                                                              │

00:03:41 #7291 [Verbose] > │         failwith<unit> v21                                                   │

00:03:41 #7292 [Verbose] > │ method0()                                                                    │

00:03:41 #7293 [Verbose] > │                                                                              │

00:03:41 #7294 [Verbose] > │                                                                              │

00:03:41 #7295 [Verbose] > │ .rs:                                                                         │

00:03:41 #7296 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:03:41 #7297 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:03:41 #7298 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:03:41 #7299 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:03:41 #7300 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:03:41 #7301 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:03:41 #7302 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:03:41 #7303 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:03:41 #7304 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:03:41 #7305 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:03:41 #7306 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:03:41 #7307 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:03:41 #7308 [Verbose] > │         use super::*;                                                        │

00:03:41 #7309 [Verbose] > │         use fable_library_rust::Native_::LrcPtr;                             │

00:03:41 #7310 [Verbose] > │         use fable_library_rust::Native_::MutCell;                            │

00:03:41 #7311 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:03:41 #7312 [Verbose] > │         use fable_library_rust::NativeArray_::Array;                         │

00:03:41 #7313 [Verbose] > │         use fable_library_rust::NativeArray_::count;                         │

00:03:41 #7314 [Verbose] > │         use fable_library_rust::NativeArray_::new_array;                     │

00:03:41 #7315 [Verbose] > │         use fable_library_rust::String_::append;                             │

00:03:41 #7316 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:03:41 #7317 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │

00:03:41 #7318 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:03:41 #7319 [Verbose] > │         #[derive(Clone, Debug, Default, PartialEq, PartialOrd, Hash, Eq,)]   │

00:03:41 #7320 [Verbose] > │         pub struct Mut0 {                                                    │

00:03:41 #7321 [Verbose] > │             pub l0: MutCell<i32>,                                            │

00:03:41 #7322 [Verbose] > │             pub l1: MutCell<string>,                                         │

00:03:41 #7323 [Verbose] > │         }                                                                    │

00:03:41 #7324 [Verbose] > │         impl core::fmt::Display for Spiral_eval::Mut0 {                      │

00:03:41 #7325 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:03:41 #7326 [Verbose] > │ {                                                                            │

00:03:41 #7327 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:03:41 #7328 [Verbose] > │             }                                                                │

00:03:41 #7329 [Verbose] > │         }                                                                    │

00:03:41 #7330 [Verbose] > │         pub fn method1(v0: i32, v1: LrcPtr<Spiral_eval::Mut0>) -> bool {     │

00:03:41 #7331 [Verbose] > │             v1.l0.get().clone() < v0                                         │

00:03:41 #7332 [Verbose] > │         }                                                                    │

00:03:41 #7333 [Verbose] > │         pub fn method2(v0: bool) -> bool { v0 }                              │

00:03:41 #7334 [Verbose] > │         pub fn method0() {                                                   │

00:03:41 #7335 [Verbose] > │             let v3: Array<string> =                                          │

00:03:41 #7336 [Verbose] > │                 new_array(&[string("1"), string("2"), string("3")]);         │

00:03:41 #7337 [Verbose] > │             let v4: i32 = count(v3.clone());                                 │

00:03:41 #7338 [Verbose] > │             let v6: LrcPtr<Spiral_eval::Mut0> =                              │

00:03:41 #7339 [Verbose] > │                 LrcPtr::new(Spiral_eval::Mut0{l0: MutCell::new(0_i32),       │

00:03:41 #7340 [Verbose] > │                                               l1:                            │

00:03:41 #7341 [Verbose] > │ MutCell::new(string("")),});                                                 │

00:03:41 #7342 [Verbose] > │             while Spiral_eval::method1(v4, v6.clone()) {                     │

00:03:41 #7343 [Verbose] > │                 let v8: i32 = v6.l0.get().clone();                           │

00:03:41 #7344 [Verbose] > │                 let v12: string =                                            │

00:03:41 #7345 [Verbose] > │                     append(append(append(v6.l1.get().clone(), v3[            │

00:03:41 #7346 [Verbose] > │ v8].clone()),                                                                │

00:03:41 #7347 [Verbose] > │                                   string("\n")), string(""));                │

00:03:41 #7348 [Verbose] > │                 let v13: i32 = v8 + 1_i32;                                   │

00:03:41 #7349 [Verbose] > │                 v6.l0.set(v13);                                              │

00:03:41 #7350 [Verbose] > │                 v6.l1.set(v12);                                              │

00:03:41 #7351 [Verbose] > │                 ()                                                           │

00:03:41 #7352 [Verbose] > │             }                                                                │

00:03:41 #7353 [Verbose] > │             {                                                                │

00:03:41 #7354 [Verbose] > │                 let v14: string = v6.l1.get().clone();                       │

00:03:41 #7355 [Verbose] > │                 let v15: string = sprintf!("{:?}", v14.clone());             │

00:03:41 #7356 [Verbose] > │                 printfn!("{0}", v15);                                        │

00:03:41 #7357 [Verbose] > │                 {                                                            │

00:03:41 #7358 [Verbose] > │                     let v17: bool = v14.clone() == string("1\n2\n3\n");      │

00:03:41 #7359 [Verbose] > │                     if (if v17 { true } else { Spiral_eval::method2(v17) })  │

00:03:41 #7360 [Verbose] > │ ==                                                                           │

00:03:41 #7361 [Verbose] > │                            false {                                           │

00:03:41 #7362 [Verbose] > │                         panic!("{}",                                         │

00:03:41 #7363 [Verbose] > │                                sprintf!("__expect / actual: {:?} / expected: │

00:03:41 #7364 [Verbose] > │ {:?}", v14, string("1\n2\n3\n")));                                           │

00:03:41 #7365 [Verbose] > │                     }                                                        │

00:03:41 #7366 [Verbose] > │                 }                                                            │

00:03:41 #7367 [Verbose] > │             }                                                                │

00:03:41 #7368 [Verbose] > │         }                                                                    │

00:03:41 #7369 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:03:41 #7370 [Verbose] > │     }                                                                        │

00:03:41 #7371 [Verbose] > │ }                                                                            │

00:03:41 #7372 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:03:41 #7373 [Verbose] > │                                                                              │

00:03:41 #7374 [Verbose] > │                                                                              │

00:03:41 #7375 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:41 #7376 [Verbose] >

00:03:41 #7377 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:41 #7378 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:41 #7379 [Verbose] > │ ## concat_list_trailing                                                      │

00:03:41 #7380 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:41 #7381 [Verbose] >

00:03:41 #7382 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:41 #7383 [Verbose] > inl concat_list_trailing separator input =

00:03:41 #7384 [Verbose] >     ("", input)

00:03:41 #7385 [Verbose] >     ||> listm.fold fun acc (x : string) =>

00:03:41 #7386 [Verbose] >         $'!acc + !x + !separator + ""'

00:03:41 #7387 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1383-8333-8bb33d3bdb1f\main.spi

00:03:41 #7388 [Verbose] >

00:03:41 #7389 [Verbose] > ╭─[ 220.85ms - stdout ]────────────────────────────────────────────────────────╮

00:03:41 #7390 [Verbose] > │ ()                                                                           │

00:03:41 #7391 [Verbose] > │                                                                              │

00:03:41 #7392 [Verbose] > │                                                                              │

00:03:41 #7393 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:41 #7394 [Verbose] >

00:03:41 #7395 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:41 #7396 [Verbose] > // // test

00:03:41 #7397 [Verbose] > // // rust=

00:03:41 #7398 [Verbose] >

00:03:41 #7399 [Verbose] > [[

00:03:41 #7400 [Verbose] >     "1"

00:03:41 #7401 [Verbose] >     "2"

00:03:41 #7402 [Verbose] >     "3"

00:03:41 #7403 [Verbose] > ]]

00:03:41 #7404 [Verbose] > |> fun x =>

00:03:41 #7405 [Verbose] >     inl code = (x : _) |> concat_list_trailing "\n"

00:03:41 #7406 [Verbose] >     code

00:03:41 #7407 [Verbose] >     |> _assert_eq "1\n2\n3\n"

00:03:41 #7408 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1405-0550-06366d299937\main.spi

00:03:47 #7409 [Verbose] >

00:03:47 #7410 [Verbose] > ╭─[ 5.62s - return value ]─────────────────────────────────────────────────────╮

00:03:47 #7411 [Verbose] > │ .rs output:                                                                  │

00:03:47 #7412 [Verbose] > │ "1                                                                           │

00:03:47 #7413 [Verbose] > │ 2                                                                            │

00:03:47 #7414 [Verbose] > │ 3                                                                            │

00:03:47 #7415 [Verbose] > │ "                                                                            │

00:03:47 #7416 [Verbose] > │                                                                              │

00:03:47 #7417 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:47 #7418 [Verbose] >

00:03:47 #7419 [Verbose] > ╭─[ 5.62s - stdout ]───────────────────────────────────────────────────────────╮

00:03:47 #7420 [Verbose] > │                                                                              │

00:03:47 #7421 [Verbose] > │ .fsx:                                                                        │

00:03:47 #7422 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:03:47 #7423 [Verbose] > │     v0                                                                       │

00:03:47 #7424 [Verbose] > │ and method0 () : unit =                                                      │

00:03:47 #7425 [Verbose] > │     let v0 : string = ""                                                     │

00:03:47 #7426 [Verbose] > │     let v1 : string = "1"                                                    │

00:03:47 #7427 [Verbose] > │     let v2 : string = "\n"                                                   │

00:03:47 #7428 [Verbose] > │     let v3 : string = v0 + v1 + v2 + ""                                      │

00:03:47 #7429 [Verbose] > │     let v4 : string = "2"                                                    │

00:03:47 #7430 [Verbose] > │     let v5 : string = v3 + v4 + v2 + ""                                      │

00:03:47 #7431 [Verbose] > │     let v6 : string = "3"                                                    │

00:03:47 #7432 [Verbose] > │     let v7 : string = v5 + v6 + v2 + ""                                      │

00:03:47 #7433 [Verbose] > │     let v8 : string = $"%A{v7}"                                              │

00:03:47 #7434 [Verbose] > │     System.Console.WriteLine v8                                              │

00:03:47 #7435 [Verbose] > │     let v10 : bool = v7 = "1\n2\n3\n"                                        │

00:03:47 #7436 [Verbose] > │     let v12 : bool =                                                         │

00:03:47 #7437 [Verbose] > │         if v10 then                                                          │

00:03:47 #7438 [Verbose] > │             true                                                             │

00:03:47 #7439 [Verbose] > │         else                                                                 │

00:03:47 #7440 [Verbose] > │             method1(v10)                                                     │

00:03:47 #7441 [Verbose] > │     let v13 : string = "1\n2\n3\n"                                           │

00:03:47 #7442 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v7} / expected: %A{v13}"      │

00:03:47 #7443 [Verbose] > │     let v15 : bool = v12 = false                                             │

00:03:47 #7444 [Verbose] > │     if v15 then                                                              │

00:03:47 #7445 [Verbose] > │         failwith<unit> v14                                                   │

00:03:47 #7446 [Verbose] > │ method0()                                                                    │

00:03:47 #7447 [Verbose] > │                                                                              │

00:03:47 #7448 [Verbose] > │                                                                              │

00:03:47 #7449 [Verbose] > │ .rs:                                                                         │

00:03:47 #7450 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:03:47 #7451 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:03:47 #7452 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:03:47 #7453 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:03:47 #7454 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:03:47 #7455 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:03:47 #7456 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:03:47 #7457 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:03:47 #7458 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:03:47 #7459 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:03:47 #7460 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:03:47 #7461 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:03:47 #7462 [Verbose] > │         use super::*;                                                        │

00:03:47 #7463 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:03:47 #7464 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:03:47 #7465 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │

00:03:47 #7466 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:03:47 #7467 [Verbose] > │         pub fn method1(v0: bool) -> bool { v0 }                              │

00:03:47 #7468 [Verbose] > │         pub fn method0() {                                                   │

00:03:47 #7469 [Verbose] > │             let v7: string = string("1\n2\n3\n");                            │

00:03:47 #7470 [Verbose] > │             let v8: string = sprintf!("{:?}", v7.clone());                   │

00:03:47 #7471 [Verbose] > │             printfn!("{0}", v8);                                             │

00:03:47 #7472 [Verbose] > │             {                                                                │

00:03:47 #7473 [Verbose] > │                 let v10: bool = v7.clone() == string("1\n2\n3\n");           │

00:03:47 #7474 [Verbose] > │                 if (if v10 { true } else { Spiral_eval::method1(v10) }) ==   │

00:03:47 #7475 [Verbose] > │                        false {                                               │

00:03:47 #7476 [Verbose] > │                     panic!("{}",                                             │

00:03:47 #7477 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │

00:03:47 #7478 [Verbose] > │ {:?}", v7, string("1\n2\n3\n")));                                            │

00:03:47 #7479 [Verbose] > │                 }                                                            │

00:03:47 #7480 [Verbose] > │             }                                                                │

00:03:47 #7481 [Verbose] > │         }                                                                    │

00:03:47 #7482 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:03:47 #7483 [Verbose] > │     }                                                                        │

00:03:47 #7484 [Verbose] > │ }                                                                            │

00:03:47 #7485 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:03:47 #7486 [Verbose] > │                                                                              │

00:03:47 #7487 [Verbose] > │                                                                              │

00:03:47 #7488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:47 #7489 [Verbose] >

00:03:47 #7490 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:47 #7491 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:47 #7492 [Verbose] > │ ## concat_list_heap_trailing                                                 │

00:03:47 #7493 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:47 #7494 [Verbose] >

00:03:47 #7495 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:47 #7496 [Verbose] > inl concat_list_heap_trailing separator input =

00:03:47 #7497 [Verbose] >     inl separator = join separator

00:03:47 #7498 [Verbose] >     inl separator = separator |> as_str

00:03:47 #7499 [Verbose] >     ("", input)

00:03:47 #7500 [Verbose] >     ||> listm.fold fun acc (x : string) =>

00:03:47 #7501 [Verbose] >         inl acc = acc |> to_std_string

00:03:47 #7502 [Verbose] >         inl x = x |> as_str

00:03:47 #7503 [Verbose] >         $'$"{!acc}{!x}{!separator}"'

00:03:47 #7504 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1971-7119-766f59180809\main.spi

00:03:47 #7505 [Verbose] >

00:03:47 #7506 [Verbose] > ╭─[ 214.47ms - stdout ]────────────────────────────────────────────────────────╮

00:03:47 #7507 [Verbose] > │ ()                                                                           │

00:03:47 #7508 [Verbose] > │                                                                              │

00:03:47 #7509 [Verbose] > │                                                                              │

00:03:47 #7510 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:47 #7511 [Verbose] >

00:03:47 #7512 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:47 #7513 [Verbose] > // // test

00:03:47 #7514 [Verbose] > // // rust=

00:03:47 #7515 [Verbose] >

00:03:47 #7516 [Verbose] > types ()

00:03:47 #7517 [Verbose] >

00:03:47 #7518 [Verbose] > [[

00:03:47 #7519 [Verbose] >     "1"

00:03:47 #7520 [Verbose] >     "2"

00:03:47 #7521 [Verbose] >     "3"

00:03:47 #7522 [Verbose] > ]]

00:03:47 #7523 [Verbose] > |> fun x =>

00:03:47 #7524 [Verbose] >     inl code = (x : _) |> concat_list_heap_trailing "\n"

00:03:47 #7525 [Verbose] >     code

00:03:47 #7526 [Verbose] >     |> _assert_eq "1\n2\n3\n"

00:03:47 #7527 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-1993-9308-9ffca566eaae\main.spi

00:03:54 #7528 [Verbose] >

00:03:54 #7529 [Verbose] > ╭─[ 6.67s - return value ]─────────────────────────────────────────────────────╮

00:03:54 #7530 [Verbose] > │ .rs output:                                                                  │

00:03:54 #7531 [Verbose] > │ "1                                                                           │

00:03:54 #7532 [Verbose] > │ 2                                                                            │

00:03:54 #7533 [Verbose] > │ 3                                                                            │

00:03:54 #7534 [Verbose] > │ "                                                                            │

00:03:54 #7535 [Verbose] > │                                                                              │

00:03:54 #7536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:54 #7537 [Verbose] >

00:03:54 #7538 [Verbose] > ╭─[ 6.68s - stdout ]───────────────────────────────────────────────────────────╮

00:03:54 #7539 [Verbose] > │                                                                              │

00:03:54 #7540 [Verbose] > │ .fsx:                                                                        │

00:03:54 #7541 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │

00:03:54 #7542 [Verbose] > │ end                                                                          │

00:03:54 #7543 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │

00:03:54 #7544 [Verbose] > │ class end                                                                    │

00:03:54 #7545 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │

00:03:54 #7546 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │

00:03:54 #7547 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │

00:03:54 #7548 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │

00:03:54 #7549 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │

00:03:54 #7550 [Verbose] > │ class end                                                                    │

00:03:54 #7551 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │

00:03:54 #7552 [Verbose] > │ class end                                                                    │

00:03:54 #7553 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │

00:03:54 #7554 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │

00:03:54 #7555 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │

00:03:54 #7556 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │

00:03:54 #7557 [Verbose] > │ class end                                                                    │

00:03:54 #7558 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │

00:03:54 #7559 [Verbose] > │ class end                                                                    │

00:03:54 #7560 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │

00:03:54 #7561 [Verbose] > │ class end                                                                    │

00:03:54 #7562 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │

00:03:54 #7563 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │

00:03:54 #7564 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │

00:03:54 #7565 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │

00:03:54 #7566 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │

00:03:54 #7567 [Verbose] > │ = class end                                                                  │

00:03:54 #7568 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │

00:03:54 #7569 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │

00:03:54 #7570 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │

00:03:54 #7571 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │

00:03:54 #7572 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │

00:03:54 #7573 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │

00:03:54 #7574 [Verbose] > │ base64_DecodeError = class end                                               │

00:03:54 #7575 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │

00:03:54 #7576 [Verbose] > │ borsh_io_Error = class end                                                   │

00:03:54 #7577 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │

00:03:54 #7578 [Verbose] > │ js_sys_JsString = class end                                                  │

00:03:54 #7579 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │

00:03:54 #7580 [Verbose] > │ serde_json_Error = class end                                                 │

00:03:54 #7581 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │

00:03:54 #7582 [Verbose] > │ serde_json_Value = class end                                                 │

00:03:54 #7583 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │

00:03:54 #7584 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │

00:03:54 #7585 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr  │

00:03:54 #7586 [Verbose] > │ = class end                                                                  │

00:03:54 #7587 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type             │

00:03:54 #7588 [Verbose] > │ std_ffi_OsString = class end                                                 │

00:03:54 #7589 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │

00:03:54 #7590 [Verbose] > │ std_str_Utf8Error = class end                                                │

00:03:54 #7591 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │

00:03:54 #7592 [Verbose] > │ std_string_String = class end                                                │

00:03:54 #7593 [Verbose] > │ let rec method1 () : string =                                                │

00:03:54 #7594 [Verbose] > │     let v0 : string = "\n"                                                   │

00:03:54 #7595 [Verbose] > │     v0                                                                       │

00:03:54 #7596 [Verbose] > │ and method2 () : string =                                                    │

00:03:54 #7597 [Verbose] > │     let v0 : string = ""                                                     │

00:03:54 #7598 [Verbose] > │     v0                                                                       │

00:03:54 #7599 [Verbose] > │ and method3 (v0 : string) : string =                                         │

00:03:54 #7600 [Verbose] > │     v0                                                                       │

00:03:54 #7601 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │

00:03:54 #7602 [Verbose] > │     v0                                                                       │

00:03:54 #7603 [Verbose] > │ and method0 () : unit =                                                      │

00:03:54 #7604 [Verbose] > │     let v0 : string = method1()                                              │

00:03:54 #7605 [Verbose] > │     let v1 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:03:54 #7606 [Verbose] > │     let v2 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v0 v1            │

00:03:54 #7607 [Verbose] > │     let v3 : string = method2()                                              │

00:03:54 #7608 [Verbose] > │     let v4 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:03:54 #7609 [Verbose] > │     let v5 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v3 v4            │

00:03:54 #7610 [Verbose] > │     let v6 : string = "String::from($0)"                                     │

00:03:54 #7611 [Verbose] > │     let v7 : std_string_String = Fable.Core.RustInterop.emitRustExpr v5 v6   │

00:03:54 #7612 [Verbose] > │     let v8 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:03:54 #7613 [Verbose] > │     let v9 : string = "1"                                                    │

00:03:54 #7614 [Verbose] > │     let v10 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v9 v8           │

00:03:54 #7615 [Verbose] > │     let v11 : string = $"{v7}{v10}{v2}"                                      │

00:03:54 #7616 [Verbose] > │     let v12 : string = method3(v11)                                          │

00:03:54 #7617 [Verbose] > │     let v13 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:03:54 #7618 [Verbose] > │     let v14 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v12 v13         │

00:03:54 #7619 [Verbose] > │     let v15 : string = "String::from($0)"                                    │

00:03:54 #7620 [Verbose] > │     let v16 : std_string_String = Fable.Core.RustInterop.emitRustExpr v14    │

00:03:54 #7621 [Verbose] > │ v15                                                                          │

00:03:54 #7622 [Verbose] > │     let v17 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:03:54 #7623 [Verbose] > │     let v18 : string = "2"                                                   │

00:03:54 #7624 [Verbose] > │     let v19 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v18 v17         │

00:03:54 #7625 [Verbose] > │     let v20 : string = $"{v16}{v19}{v2}"                                     │

00:03:54 #7626 [Verbose] > │     let v21 : string = method3(v20)                                          │

00:03:54 #7627 [Verbose] > │     let v22 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:03:54 #7628 [Verbose] > │     let v23 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v21 v22         │

00:03:54 #7629 [Verbose] > │     let v24 : string = "String::from($0)"                                    │

00:03:54 #7630 [Verbose] > │     let v25 : std_string_String = Fable.Core.RustInterop.emitRustExpr v23    │

00:03:54 #7631 [Verbose] > │ v24                                                                          │

00:03:54 #7632 [Verbose] > │     let v26 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:03:54 #7633 [Verbose] > │     let v27 : string = "3"                                                   │

00:03:54 #7634 [Verbose] > │     let v28 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v27 v26         │

00:03:54 #7635 [Verbose] > │     let v29 : string = $"{v25}{v28}{v2}"                                     │

00:03:54 #7636 [Verbose] > │     let v30 : string = $"%A{v29}"                                            │

00:03:54 #7637 [Verbose] > │     System.Console.WriteLine v30                                             │

00:03:54 #7638 [Verbose] > │     let v32 : bool = v29 = "1\n2\n3\n"                                       │

00:03:54 #7639 [Verbose] > │     let v34 : bool =                                                         │

00:03:54 #7640 [Verbose] > │         if v32 then                                                          │

00:03:54 #7641 [Verbose] > │             true                                                             │

00:03:54 #7642 [Verbose] > │         else                                                                 │

00:03:54 #7643 [Verbose] > │             method4(v32)                                                     │

00:03:54 #7644 [Verbose] > │     let v35 : string = "1\n2\n3\n"                                           │

00:03:54 #7645 [Verbose] > │     let v36 : string = $"__expect / actual: %A{v29} / expected: %A{v35}"     │

00:03:54 #7646 [Verbose] > │     let v37 : bool = v34 = false                                             │

00:03:54 #7647 [Verbose] > │     if v37 then                                                              │

00:03:54 #7648 [Verbose] > │         failwith<unit> v36                                                   │

00:03:54 #7649 [Verbose] > │ method0()                                                                    │

00:03:54 #7650 [Verbose] > │                                                                              │

00:03:54 #7651 [Verbose] > │                                                                              │

00:03:54 #7652 [Verbose] > │ .rs:                                                                         │

00:03:54 #7653 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:03:54 #7654 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:03:54 #7655 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:03:54 #7656 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:03:54 #7657 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:03:54 #7658 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:03:54 #7659 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:03:54 #7660 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:03:54 #7661 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:03:54 #7662 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:03:54 #7663 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:03:54 #7664 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:03:54 #7665 [Verbose] > │         use super::*;                                                        │

00:03:54 #7666 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:03:54 #7667 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:03:54 #7668 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │

00:03:54 #7669 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:03:54 #7670 [Verbose] > │         pub fn method1() -> string { string("\n") }                          │

00:03:54 #7671 [Verbose] > │         pub fn method2() -> string { string("") }                            │

00:03:54 #7672 [Verbose] > │         pub fn method3(v0: string) -> string { v0 }                          │

00:03:54 #7673 [Verbose] > │         pub fn method4(v0: bool) -> bool { v0 }                              │

00:03:54 #7674 [Verbose] > │         pub fn method0() {                                                   │

00:03:54 #7675 [Verbose] > │             let v0: string = Spiral_eval::method1();                         │

00:03:54 #7676 [Verbose] > │             let v2: &str = fable_library_rust::String_::LrcStr::as_str(&v0); │

00:03:54 #7677 [Verbose] > │             let v3: string = Spiral_eval::method2();                         │

00:03:54 #7678 [Verbose] > │             let v5: &str = fable_library_rust::String_::LrcStr::as_str(&v3); │

00:03:54 #7679 [Verbose] > │             let v12: string =                                                │

00:03:54 #7680 [Verbose] > │                 Spiral_eval::method3(sprintf!("{}{}{}", String::from(v5),    │

00:03:54 #7681 [Verbose] > │                                                                              │

00:03:54 #7682 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&string("1")),                   │

00:03:54 #7683 [Verbose] > │                                               v2.clone()));                  │

00:03:54 #7684 [Verbose] > │             let v14: &str =                                                  │

00:03:54 #7685 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v12);                           │

00:03:54 #7686 [Verbose] > │             let v21: string =                                                │

00:03:54 #7687 [Verbose] > │                 Spiral_eval::method3(sprintf!("{}{}{}", String::from(v14),   │

00:03:54 #7688 [Verbose] > │                                                                              │

00:03:54 #7689 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&string("2")),                   │

00:03:54 #7690 [Verbose] > │                                               v2.clone()));                  │

00:03:54 #7691 [Verbose] > │             let v23: &str =                                                  │

00:03:54 #7692 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&v21);                           │

00:03:54 #7693 [Verbose] > │             let v29: string =                                                │

00:03:54 #7694 [Verbose] > │                 sprintf!("{}{}{}", String::from(v23),                        │

00:03:54 #7695 [Verbose] > │                                                                              │

00:03:54 #7696 [Verbose] > │ fable_library_rust::String_::LrcStr::as_str(&string("3")),                   │

00:03:54 #7697 [Verbose] > │                          v2);                                                │

00:03:54 #7698 [Verbose] > │             let v30: string = sprintf!("{:?}", v29.clone());                 │

00:03:54 #7699 [Verbose] > │             printfn!("{0}", v30);                                            │

00:03:54 #7700 [Verbose] > │             {                                                                │

00:03:54 #7701 [Verbose] > │                 let v32: bool = v29.clone() == string("1\n2\n3\n");          │

00:03:54 #7702 [Verbose] > │                 if (if v32 { true } else { Spiral_eval::method4(v32) }) ==   │

00:03:54 #7703 [Verbose] > │                        false {                                               │

00:03:54 #7704 [Verbose] > │                     panic!("{}",                                             │

00:03:54 #7705 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │

00:03:54 #7706 [Verbose] > │ {:?}", v29, string("1\n2\n3\n")));                                           │

00:03:54 #7707 [Verbose] > │                 }                                                            │

00:03:54 #7708 [Verbose] > │             }                                                                │

00:03:54 #7709 [Verbose] > │         }                                                                    │

00:03:54 #7710 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:03:54 #7711 [Verbose] > │     }                                                                        │

00:03:54 #7712 [Verbose] > │ }                                                                            │

00:03:54 #7713 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:03:54 #7714 [Verbose] > │                                                                              │

00:03:54 #7715 [Verbose] > │                                                                              │

00:03:54 #7716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:54 #7717 [Verbose] >

00:03:54 #7718 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:54 #7719 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:54 #7720 [Verbose] > │ ## concat                                                                    │

00:03:54 #7721 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:54 #7722 [Verbose] >

00:03:54 #7723 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:54 #7724 [Verbose] > inl concat (a : string) (b : seq.seq' _) : string =

00:03:54 #7725 [Verbose] >     $"!b |> String.concat !a"

00:03:54 #7726 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2671-7132-7d8118116654\main.spi

00:03:54 #7727 [Verbose] >

00:03:54 #7728 [Verbose] > ╭─[ 264.41ms - stdout ]────────────────────────────────────────────────────────╮

00:03:54 #7729 [Verbose] > │ ()                                                                           │

00:03:54 #7730 [Verbose] > │                                                                              │

00:03:54 #7731 [Verbose] > │                                                                              │

00:03:54 #7732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:54 #7733 [Verbose] >

00:03:54 #7734 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:54 #7735 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:54 #7736 [Verbose] > │ ## ellipsis                                                                  │

00:03:54 #7737 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:54 #7738 [Verbose] >

00:03:54 #7739 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:54 #7740 [Verbose] > inl ellipsis (max : i32) (s : string) =

00:03:54 #7741 [Verbose] >     if sm.length s <= max

00:03:54 #7742 [Verbose] >     then s

00:03:54 #7743 [Verbose] >     else s |> slice 0 (max - 1) |> fun x => $'!x + "..."'

00:03:54 #7744 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2697-9796-97bdbbd09788\main.spi

00:03:54 #7745 [Verbose] >

00:03:54 #7746 [Verbose] > ╭─[ 193.68ms - stdout ]────────────────────────────────────────────────────────╮

00:03:54 #7747 [Verbose] > │ ()                                                                           │

00:03:54 #7748 [Verbose] > │                                                                              │

00:03:54 #7749 [Verbose] > │                                                                              │

00:03:54 #7750 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:54 #7751 [Verbose] >

00:03:54 #7752 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:54 #7753 [Verbose] > // // test

00:03:54 #7754 [Verbose] >

00:03:54 #7755 [Verbose] > "12345"

00:03:54 #7756 [Verbose] > |> ellipsis 2

00:03:54 #7757 [Verbose] > |> _assert_eq "12..."

00:03:54 #7758 [Verbose] >

00:03:54 #7759 [Verbose] > "12345"

00:03:54 #7760 [Verbose] > |> ellipsis 4

00:03:54 #7761 [Verbose] > |> _assert_eq "1234..."

00:03:55 #7762 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2717-1743-1605b122d068\main.spi

00:03:55 #7763 [Verbose] >

00:03:55 #7764 [Verbose] > ╭─[ 309.22ms - stdout ]────────────────────────────────────────────────────────╮

00:03:55 #7765 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:03:55 #7766 [Verbose] > │     v0                                                                       │

00:03:55 #7767 [Verbose] > │ and method0 () : unit =                                                      │

00:03:55 #7768 [Verbose] > │     let v0 : string = "12"                                                   │

00:03:55 #7769 [Verbose] > │     let v1 : string = v0 + "..."                                             │

00:03:55 #7770 [Verbose] > │     let v2 : string = $"%A{v1}"                                              │

00:03:55 #7771 [Verbose] > │     System.Console.WriteLine v2                                              │

00:03:55 #7772 [Verbose] > │     let v4 : bool = v1 = "12..."                                             │

00:03:55 #7773 [Verbose] > │     let v6 : bool =                                                          │

00:03:55 #7774 [Verbose] > │         if v4 then                                                           │

00:03:55 #7775 [Verbose] > │             true                                                             │

00:03:55 #7776 [Verbose] > │         else                                                                 │

00:03:55 #7777 [Verbose] > │             method1(v4)                                                      │

00:03:55 #7778 [Verbose] > │     let v7 : string = "12..."                                                │

00:03:55 #7779 [Verbose] > │     let v8 : string = $"__expect / actual: %A{v1} / expected: %A{v7}"        │

00:03:55 #7780 [Verbose] > │     let v9 : bool = v6 = false                                               │

00:03:55 #7781 [Verbose] > │     if v9 then                                                               │

00:03:55 #7782 [Verbose] > │         failwith<unit> v8                                                    │

00:03:55 #7783 [Verbose] > │     let v10 : string = "1234"                                                │

00:03:55 #7784 [Verbose] > │     let v11 : string = v10 + "..."                                           │

00:03:55 #7785 [Verbose] > │     let v12 : string = $"%A{v11}"                                            │

00:03:55 #7786 [Verbose] > │     System.Console.WriteLine v12                                             │

00:03:55 #7787 [Verbose] > │     let v14 : bool = v11 = "1234..."                                         │

00:03:55 #7788 [Verbose] > │     let v16 : bool =                                                         │

00:03:55 #7789 [Verbose] > │         if v14 then                                                          │

00:03:55 #7790 [Verbose] > │             true                                                             │

00:03:55 #7791 [Verbose] > │         else                                                                 │

00:03:55 #7792 [Verbose] > │             method1(v14)                                                     │

00:03:55 #7793 [Verbose] > │     let v17 : string = "1234..."                                             │

00:03:55 #7794 [Verbose] > │     let v18 : string = $"__expect / actual: %A{v11} / expected: %A{v17}"     │

00:03:55 #7795 [Verbose] > │     let v19 : bool = v16 = false                                             │

00:03:55 #7796 [Verbose] > │     if v19 then                                                              │

00:03:55 #7797 [Verbose] > │         failwith<unit> v18                                                   │

00:03:55 #7798 [Verbose] > │ method0()                                                                    │

00:03:55 #7799 [Verbose] > │                                                                              │

00:03:55 #7800 [Verbose] > │ "12..."                                                                      │

00:03:55 #7801 [Verbose] > │ "1234..."                                                                    │

00:03:55 #7802 [Verbose] > │                                                                              │

00:03:55 #7803 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:55 #7804 [Verbose] >

00:03:55 #7805 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:55 #7806 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:55 #7807 [Verbose] > │ ## ellipsis_end                                                              │

00:03:55 #7808 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:55 #7809 [Verbose] >

00:03:55 #7810 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:55 #7811 [Verbose] > inl ellipsis_end (max : i64) (s : string) =

00:03:55 #7812 [Verbose] >     inl len = sm.length s

00:03:55 #7813 [Verbose] >     if len <= max

00:03:55 #7814 [Verbose] >     then s

00:03:55 #7815 [Verbose] >     else

00:03:55 #7816 [Verbose] >         inl half = f64 max / 2

00:03:55 #7817 [Verbose] >         inl start_half = half |> math.ceil |> i64

00:03:55 #7818 [Verbose] >         inl end_half = half |> math.floor |> i64

00:03:55 #7819 [Verbose] >         inl start = s |> slice 0 (start_half - 1)

00:03:55 #7820 [Verbose] >         inl end = s |> slice (len - end_half) (len - 1)

00:03:55 #7821 [Verbose] >         (a ;[[start; "..."; end]] : _ i32 _)

00:03:55 #7822 [Verbose] >         |> seq.of_array

00:03:55 #7823 [Verbose] >         |> concat ""

00:03:55 #7824 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2750-5052-534f510bda49\main.spi

00:03:55 #7825 [Verbose] >

00:03:55 #7826 [Verbose] > ╭─[ 234.65ms - stdout ]────────────────────────────────────────────────────────╮

00:03:55 #7827 [Verbose] > │ ()                                                                           │

00:03:55 #7828 [Verbose] > │                                                                              │

00:03:55 #7829 [Verbose] > │                                                                              │

00:03:55 #7830 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:55 #7831 [Verbose] >

00:03:55 #7832 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:55 #7833 [Verbose] > // // test

00:03:55 #7834 [Verbose] >

00:03:55 #7835 [Verbose] > "12345"

00:03:55 #7836 [Verbose] > |> ellipsis_end 2

00:03:55 #7837 [Verbose] > |> _assert_eq "1...5"

00:03:55 #7838 [Verbose] >

00:03:55 #7839 [Verbose] > "12345"

00:03:55 #7840 [Verbose] > |> ellipsis_end 3

00:03:55 #7841 [Verbose] > |> _assert_eq "12...5"

00:03:55 #7842 [Verbose] >

00:03:55 #7843 [Verbose] > "1234567"

00:03:55 #7844 [Verbose] > |> ellipsis_end 4

00:03:55 #7845 [Verbose] > |> _assert_eq "12...67"

00:03:55 #7846 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2773-7396-78e805c001ac\main.spi

00:03:55 #7847 [Verbose] >

00:03:55 #7848 [Verbose] > ╭─[ 377.95ms - stdout ]────────────────────────────────────────────────────────╮

00:03:55 #7849 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:03:55 #7850 [Verbose] > │     v0                                                                       │

00:03:55 #7851 [Verbose] > │ and method0 () : unit =                                                      │

00:03:55 #7852 [Verbose] > │     let v0 : float = float 2L                                                │

00:03:55 #7853 [Verbose] > │     let v1 : float = v0 / 2.0                                                │

00:03:55 #7854 [Verbose] > │     let v2 : (float -> float) = ceil                                         │

00:03:55 #7855 [Verbose] > │     let v3 : float = v2 v1                                                   │

00:03:55 #7856 [Verbose] > │     let v4 : int64 = int64 v3                                                │

00:03:55 #7857 [Verbose] > │     let v5 : (float -> float) = floor                                        │

00:03:55 #7858 [Verbose] > │     let v6 : float = v5 v1                                                   │

00:03:55 #7859 [Verbose] > │     let v7 : int64 = int64 v6                                                │

00:03:55 #7860 [Verbose] > │     let v8 : int64 = v4 - 1L                                                 │

00:03:55 #7861 [Verbose] > │     let v9 : string = "12345".[int 0L..int v8]                               │

00:03:55 #7862 [Verbose] > │     let v10 : int64 = 5L - v7                                                │

00:03:55 #7863 [Verbose] > │     let v11 : string = "12345".[int v10..int 4L]                             │

00:03:55 #7864 [Verbose] > │     let v12 : string = "..."                                                 │

00:03:55 #7865 [Verbose] > │     let v13 : (string []) = [|v9; v12; v11|]                                 │

00:03:55 #7866 [Verbose] > │     let v14 : ((string []) -> string seq) = Seq.ofArray                      │

00:03:55 #7867 [Verbose] > │     let v15 : string seq = v14 v13                                           │

00:03:55 #7868 [Verbose] > │     let v16 : string = ""                                                    │

00:03:55 #7869 [Verbose] > │     let v17 : string = v15 |> String.concat v16                              │

00:03:55 #7870 [Verbose] > │     let v18 : string = $"%A{v17}"                                            │

00:03:55 #7871 [Verbose] > │     System.Console.WriteLine v18                                             │

00:03:55 #7872 [Verbose] > │     let v20 : bool = v17 = "1...5"                                           │

00:03:55 #7873 [Verbose] > │     let v22 : bool =                                                         │

00:03:55 #7874 [Verbose] > │         if v20 then                                                          │

00:03:55 #7875 [Verbose] > │             true                                                             │

00:03:55 #7876 [Verbose] > │         else                                                                 │

00:03:55 #7877 [Verbose] > │             method1(v20)                                                     │

00:03:55 #7878 [Verbose] > │     let v23 : string = "1...5"                                               │

00:03:55 #7879 [Verbose] > │     let v24 : string = $"__expect / actual: %A{v17} / expected: %A{v23}"     │

00:03:55 #7880 [Verbose] > │     let v25 : bool = v22 = false                                             │

00:03:55 #7881 [Verbose] > │     if v25 then                                                              │

00:03:55 #7882 [Verbose] > │         failwith<unit> v24                                                   │

00:03:55 #7883 [Verbose] > │     let v26 : float = float 3L                                               │

00:03:55 #7884 [Verbose] > │     let v27 : float = v26 / 2.0                                              │

00:03:55 #7885 [Verbose] > │     let v28 : (float -> float) = ceil                                        │

00:03:55 #7886 [Verbose] > │     let v29 : float = v28 v27                                                │

00:03:55 #7887 [Verbose] > │     let v30 : int64 = int64 v29                                              │

00:03:55 #7888 [Verbose] > │     let v31 : (float -> float) = floor                                       │

00:03:55 #7889 [Verbose] > │     let v32 : float = v31 v27                                                │

00:03:55 #7890 [Verbose] > │     let v33 : int64 = int64 v32                                              │

00:03:55 #7891 [Verbose] > │     let v34 : int64 = v30 - 1L                                               │

00:03:55 #7892 [Verbose] > │     let v35 : string = "12345".[int 0L..int v34]                             │

00:03:55 #7893 [Verbose] > │     let v36 : int64 = 5L - v33                                               │

00:03:55 #7894 [Verbose] > │     let v37 : string = "12345".[int v36..int 4L]                             │

00:03:55 #7895 [Verbose] > │     let v38 : (string []) = [|v35; v12; v37|]                                │

00:03:55 #7896 [Verbose] > │     let v39 : ((string []) -> string seq) = Seq.ofArray                      │

00:03:55 #7897 [Verbose] > │     let v40 : string seq = v39 v38                                           │

00:03:55 #7898 [Verbose] > │     let v41 : string = v40 |> String.concat v16                              │

00:03:55 #7899 [Verbose] > │     let v42 : string = $"%A{v41}"                                            │

00:03:55 #7900 [Verbose] > │     System.Console.WriteLine v42                                             │

00:03:55 #7901 [Verbose] > │     let v44 : bool = v41 = "12...5"                                          │

00:03:55 #7902 [Verbose] > │     let v46 : bool =                                                         │

00:03:55 #7903 [Verbose] > │         if v44 then                                                          │

00:03:55 #7904 [Verbose] > │             true                                                             │

00:03:55 #7905 [Verbose] > │         else                                                                 │

00:03:55 #7906 [Verbose] > │             method1(v44)                                                     │

00:03:55 #7907 [Verbose] > │     let v47 : string = "12...5"                                              │

00:03:55 #7908 [Verbose] > │     let v48 : string = $"__expect / actual: %A{v41} / expected: %A{v47}"     │

00:03:55 #7909 [Verbose] > │     let v49 : bool = v46 = false                                             │

00:03:55 #7910 [Verbose] > │     if v49 then                                                              │

00:03:55 #7911 [Verbose] > │         failwith<unit> v48                                                   │

00:03:55 #7912 [Verbose] > │     let v50 : float = float 4L                                               │

00:03:55 #7913 [Verbose] > │     let v51 : float = v50 / 2.0                                              │

00:03:55 #7914 [Verbose] > │     let v52 : (float -> float) = ceil                                        │

00:03:55 #7915 [Verbose] > │     let v53 : float = v52 v51                                                │

00:03:55 #7916 [Verbose] > │     let v54 : int64 = int64 v53                                              │

00:03:55 #7917 [Verbose] > │     let v55 : (float -> float) = floor                                       │

00:03:55 #7918 [Verbose] > │     let v56 : float = v55 v51                                                │

00:03:55 #7919 [Verbose] > │     let v57 : int64 = int64 v56                                              │

00:03:55 #7920 [Verbose] > │     let v58 : int64 = v54 - 1L                                               │

00:03:55 #7921 [Verbose] > │     let v59 : string = "1234567".[int 0L..int v58]                           │

00:03:55 #7922 [Verbose] > │     let v60 : int64 = 7L - v57                                               │

00:03:55 #7923 [Verbose] > │     let v61 : string = "1234567".[int v60..int 6L]                           │

00:03:55 #7924 [Verbose] > │     let v62 : (string []) = [|v59; v12; v61|]                                │

00:03:55 #7925 [Verbose] > │     let v63 : ((string []) -> string seq) = Seq.ofArray                      │

00:03:55 #7926 [Verbose] > │     let v64 : string seq = v63 v62                                           │

00:03:55 #7927 [Verbose] > │     let v65 : string = v64 |> String.concat v16                              │

00:03:55 #7928 [Verbose] > │     let v66 : string = $"%A{v65}"                                            │

00:03:55 #7929 [Verbose] > │     System.Console.WriteLine v66                                             │

00:03:55 #7930 [Verbose] > │     let v68 : bool = v65 = "12...67"                                         │

00:03:55 #7931 [Verbose] > │     let v70 : bool =                                                         │

00:03:55 #7932 [Verbose] > │         if v68 then                                                          │

00:03:55 #7933 [Verbose] > │             true                                                             │

00:03:55 #7934 [Verbose] > │         else                                                                 │

00:03:55 #7935 [Verbose] > │             method1(v68)                                                     │

00:03:55 #7936 [Verbose] > │     let v71 : string = "12...67"                                             │

00:03:55 #7937 [Verbose] > │     let v72 : string = $"__expect / actual: %A{v65} / expected: %A{v71}"     │

00:03:55 #7938 [Verbose] > │     let v73 : bool = v70 = false                                             │

00:03:55 #7939 [Verbose] > │     if v73 then                                                              │

00:03:55 #7940 [Verbose] > │         failwith<unit> v72                                                   │

00:03:55 #7941 [Verbose] > │ method0()                                                                    │

00:03:55 #7942 [Verbose] > │                                                                              │

00:03:55 #7943 [Verbose] > │ "1...5"                                                                      │

00:03:55 #7944 [Verbose] > │ "12...5"                                                                     │

00:03:55 #7945 [Verbose] > │ "12...67"                                                                    │

00:03:55 #7946 [Verbose] > │                                                                              │

00:03:55 #7947 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:55 #7948 [Verbose] >

00:03:55 #7949 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:55 #7950 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:55 #7951 [Verbose] > │ ## format_ellipsis                                                           │

00:03:55 #7952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:55 #7953 [Verbose] >

00:03:55 #7954 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:55 #7955 [Verbose] > inl format_ellipsis s =

00:03:55 #7956 [Verbose] >     s

00:03:55 #7957 [Verbose] >     |> format_debug

00:03:55 #7958 [Verbose] >     |> ellipsis_end 400

00:03:56 #7959 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2815-1569-17008b9a1cfe\main.spi

00:03:56 #7960 [Verbose] >

00:03:56 #7961 [Verbose] > ╭─[ 440.38ms - stdout ]────────────────────────────────────────────────────────╮

00:03:56 #7962 [Verbose] > │ ()                                                                           │

00:03:56 #7963 [Verbose] > │                                                                              │

00:03:56 #7964 [Verbose] > │                                                                              │

00:03:56 #7965 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:56 #7966 [Verbose] >

00:03:56 #7967 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:56 #7968 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:56 #7969 [Verbose] > │ ## split                                                                     │

00:03:56 #7970 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:56 #7971 [Verbose] >

00:03:56 #7972 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:56 #7973 [Verbose] > inl split (separator : string) (str : string) : array_base string =

00:03:56 #7974 [Verbose] >     $"!str.Split !separator"

00:03:56 #7975 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2860-6042-65b791ed0d48\main.spi

00:03:56 #7976 [Verbose] >

00:03:56 #7977 [Verbose] > ╭─[ 228.56ms - stdout ]────────────────────────────────────────────────────────╮

00:03:56 #7978 [Verbose] > │ ()                                                                           │

00:03:56 #7979 [Verbose] > │                                                                              │

00:03:56 #7980 [Verbose] > │                                                                              │

00:03:56 #7981 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:56 #7982 [Verbose] >

00:03:56 #7983 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:56 #7984 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:56 #7985 [Verbose] > │ ## split_string                                                              │

00:03:56 #7986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:56 #7987 [Verbose] >

00:03:56 #7988 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:56 #7989 [Verbose] > inl split_string (separator : array_base string) (str : string) : array_base

00:03:56 #7990 [Verbose] > string =

00:03:56 #7991 [Verbose] >     run_target function

00:03:56 #7992 [Verbose] >         | Fsharp (Native) => fun () => $"!str.Split (!separator,

00:03:56 #7993 [Verbose] > System.StringSplitOptions.None)"

00:03:56 #7994 [Verbose] >         | _ => fun () => str |> split ((a separator : _ i32 _) |> seq.of_array

00:03:56 #7995 [Verbose] > |> concat (join ""))

00:03:56 #7996 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2884-8466-837ad32852f9\main.spi

00:03:56 #7997 [Verbose] >

00:03:56 #7998 [Verbose] > ╭─[ 224.64ms - stdout ]────────────────────────────────────────────────────────╮

00:03:56 #7999 [Verbose] > │ ()                                                                           │

00:03:56 #8000 [Verbose] > │                                                                              │

00:03:56 #8001 [Verbose] > │                                                                              │

00:03:56 #8002 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:56 #8003 [Verbose] >

00:03:56 #8004 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:56 #8005 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:56 #8006 [Verbose] > │ ## join'                                                                     │

00:03:56 #8007 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:56 #8008 [Verbose] >

00:03:56 #8009 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:56 #8010 [Verbose] > inl join' (concat : string) (s : a i32 string) : string =

00:03:56 #8011 [Verbose] >     $"System.String.Join (!concat, !s)"

00:03:56 #8012 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2907-0720-037093a0fbe6\main.spi

00:03:57 #8013 [Verbose] >

00:03:57 #8014 [Verbose] > ╭─[ 214.77ms - stdout ]────────────────────────────────────────────────────────╮

00:03:57 #8015 [Verbose] > │ ()                                                                           │

00:03:57 #8016 [Verbose] > │                                                                              │

00:03:57 #8017 [Verbose] > │                                                                              │

00:03:57 #8018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:57 #8019 [Verbose] >

00:03:57 #8020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:57 #8021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:57 #8022 [Verbose] > │ ## to_char_array                                                             │

00:03:57 #8023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:57 #8024 [Verbose] >

00:03:57 #8025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:57 #8026 [Verbose] > inl to_char_array (str : string) : a i32 char =

00:03:57 #8027 [Verbose] >     am.init (str |> sm.length) (fun i => sm.index str i)

00:03:57 #8028 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2929-2923-2c4eb441bc0b\main.spi

00:03:57 #8029 [Verbose] >

00:03:57 #8030 [Verbose] > ╭─[ 215.24ms - stdout ]────────────────────────────────────────────────────────╮

00:03:57 #8031 [Verbose] > │ ()                                                                           │

00:03:57 #8032 [Verbose] > │                                                                              │

00:03:57 #8033 [Verbose] > │                                                                              │

00:03:57 #8034 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:57 #8035 [Verbose] >

00:03:57 #8036 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:57 #8037 [Verbose] > // // test

00:03:57 #8038 [Verbose] >

00:03:57 #8039 [Verbose] > "abc"

00:03:57 #8040 [Verbose] > |> to_char_array

00:03:57 #8041 [Verbose] > |> _assert_eq (a ;[['a'; 'b'; 'c']])

00:03:57 #8042 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2951-5109-562265f41981\main.spi

00:03:57 #8043 [Verbose] >

00:03:57 #8044 [Verbose] > ╭─[ 415.95ms - stdout ]────────────────────────────────────────────────────────╮

00:03:57 #8045 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:03:57 #8046 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:03:57 #8047 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:03:57 #8048 [Verbose] > │     let v2 : bool = v1 < 3                                                   │

00:03:57 #8049 [Verbose] > │     v2                                                                       │

00:03:57 #8050 [Verbose] > │ and method2 (v0 : (char []), v1 : (char []), v2 : int32) : bool =            │

00:03:57 #8051 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:03:57 #8052 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:03:57 #8053 [Verbose] > │     if v4 then                                                               │

00:03:57 #8054 [Verbose] > │         let v5 : char = v0.[int v2]                                          │

00:03:57 #8055 [Verbose] > │         let v6 : char = v1.[int v2]                                          │

00:03:57 #8056 [Verbose] > │         let v7 : bool = v5 = v6                                              │

00:03:57 #8057 [Verbose] > │         if v7 then                                                           │

00:03:57 #8058 [Verbose] > │             let v8 : int32 = v2 + 1                                          │

00:03:57 #8059 [Verbose] > │             method2(v0, v1, v8)                                              │

00:03:57 #8060 [Verbose] > │         else                                                                 │

00:03:57 #8061 [Verbose] > │             false                                                            │

00:03:57 #8062 [Verbose] > │     else                                                                     │

00:03:57 #8063 [Verbose] > │         true                                                                 │

00:03:57 #8064 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:03:57 #8065 [Verbose] > │     v0                                                                       │

00:03:57 #8066 [Verbose] > │ and method0 () : unit =                                                      │

00:03:57 #8067 [Verbose] > │     let v0 : (char []) = Array.zeroCreate<char> (3)                          │

00:03:57 #8068 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:03:57 #8069 [Verbose] > │     while method1(v1) do                                                     │

00:03:57 #8070 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:03:57 #8071 [Verbose] > │         let v4 : char = "abc".[int v3]                                       │

00:03:57 #8072 [Verbose] > │         v0.[int v3] <- v4                                                    │

00:03:57 #8073 [Verbose] > │         let v5 : int32 = v3 + 1                                              │

00:03:57 #8074 [Verbose] > │         v1.l0 <- v5                                                          │

00:03:57 #8075 [Verbose] > │         ()                                                                   │

00:03:57 #8076 [Verbose] > │     let v6 : (char []) = [|'a'; 'b'; 'c'|]                                   │

00:03:57 #8077 [Verbose] > │     let v7 : string = $"%A{v0}"                                              │

00:03:57 #8078 [Verbose] > │     System.Console.WriteLine v7                                              │

00:03:57 #8079 [Verbose] > │     let v8 : int32 = v0.Length                                               │

00:03:57 #8080 [Verbose] > │     let v9 : int32 = v6.Length                                               │

00:03:57 #8081 [Verbose] > │     let v10 : bool = v8 = v9                                                 │

00:03:57 #8082 [Verbose] > │     let v11 : bool = v10 <> true                                             │

00:03:57 #8083 [Verbose] > │     let v14 : bool =                                                         │

00:03:57 #8084 [Verbose] > │         if v11 then                                                          │

00:03:57 #8085 [Verbose] > │             false                                                            │

00:03:57 #8086 [Verbose] > │         else                                                                 │

00:03:57 #8087 [Verbose] > │             let v12 : int32 = 0                                              │

00:03:57 #8088 [Verbose] > │             method2(v0, v6, v12)                                             │

00:03:57 #8089 [Verbose] > │     let v16 : bool =                                                         │

00:03:57 #8090 [Verbose] > │         if v14 then                                                          │

00:03:57 #8091 [Verbose] > │             true                                                             │

00:03:57 #8092 [Verbose] > │         else                                                                 │

00:03:57 #8093 [Verbose] > │             method3(v14)                                                     │

00:03:57 #8094 [Verbose] > │     let v17 : string = $"__expect / actual: %A{v0} / expected: %A{v6}"       │

00:03:57 #8095 [Verbose] > │     let v18 : bool = v16 = false                                             │

00:03:57 #8096 [Verbose] > │     if v18 then                                                              │

00:03:57 #8097 [Verbose] > │         failwith<unit> v17                                                   │

00:03:57 #8098 [Verbose] > │ method0()                                                                    │

00:03:57 #8099 [Verbose] > │                                                                              │

00:03:57 #8100 [Verbose] > │ [|'a'; 'b'; 'c'|]                                                            │

00:03:57 #8101 [Verbose] > │                                                                              │

00:03:57 #8102 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:57 #8103 [Verbose] >

00:03:57 #8104 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:57 #8105 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:57 #8106 [Verbose] > │ ## to_char_list                                                              │

00:03:57 #8107 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:57 #8108 [Verbose] >

00:03:57 #8109 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:57 #8110 [Verbose] > inl to_char_list (str : string) : list char =

00:03:57 #8111 [Verbose] >     listm.init (str |> sm.length) (fun (i : i64) => sm.index str i)

00:03:57 #8112 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-2996-9631-92a286910f8f\main.spi

00:03:57 #8113 [Verbose] >

00:03:57 #8114 [Verbose] > ╭─[ 273.84ms - stdout ]────────────────────────────────────────────────────────╮

00:03:57 #8115 [Verbose] > │ ()                                                                           │

00:03:57 #8116 [Verbose] > │                                                                              │

00:03:57 #8117 [Verbose] > │                                                                              │

00:03:57 #8118 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:57 #8119 [Verbose] >

00:03:57 #8120 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:57 #8121 [Verbose] > // // test

00:03:57 #8122 [Verbose] >

00:03:57 #8123 [Verbose] > "abc"

00:03:57 #8124 [Verbose] > |> to_char_list

00:03:57 #8125 [Verbose] > |> _assert_eq [['a'; 'b'; 'c']]

00:03:58 #8126 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-3024-2415-2ea31fdd4bd9\main.spi

00:03:58 #8127 [Verbose] >

00:03:58 #8128 [Verbose] > ╭─[ 600.22ms - stdout ]────────────────────────────────────────────────────────╮

00:03:58 #8129 [Verbose] > │ type UH0 =                                                                   │

00:03:58 #8130 [Verbose] > │     | UH0_0                                                                  │

00:03:58 #8131 [Verbose] > │     | UH0_1 of char * UH0                                                    │

00:03:58 #8132 [Verbose] > │ let rec method0 () : unit =                                                  │

00:03:58 #8133 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:03:58 #8134 [Verbose] > │     let v1 : UH0 = UH0_1('c', v0)                                            │

00:03:58 #8135 [Verbose] > │     let v2 : UH0 = UH0_1('b', v1)                                            │

00:03:58 #8136 [Verbose] > │     let v3 : UH0 = UH0_1('a', v2)                                            │

00:03:58 #8137 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:03:58 #8138 [Verbose] > │     System.Console.WriteLine v4                                              │

00:03:58 #8139 [Verbose] > │     let v23 : UH0 = UH0_0                                                    │

00:03:58 #8140 [Verbose] > │     let v24 : UH0 = UH0_1('c', v23)                                          │

00:03:58 #8141 [Verbose] > │     let v25 : UH0 = UH0_1('b', v24)                                          │

00:03:58 #8142 [Verbose] > │     let v26 : UH0 = UH0_1('a', v25)                                          │

00:03:58 #8143 [Verbose] > │     let v27 : UH0 = UH0_0                                                    │

00:03:58 #8144 [Verbose] > │     let v28 : UH0 = UH0_1('c', v27)                                          │

00:03:58 #8145 [Verbose] > │     let v29 : UH0 = UH0_1('b', v28)                                          │

00:03:58 #8146 [Verbose] > │     let v30 : UH0 = UH0_1('a', v29)                                          │

00:03:58 #8147 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │

00:03:58 #8148 [Verbose] > │     ()                                                                       │

00:03:58 #8149 [Verbose] > │ method0()                                                                    │

00:03:58 #8150 [Verbose] > │                                                                              │

00:03:58 #8151 [Verbose] > │ UH0_1 ('a', UH0_1 ('b', UH0_1 ('c', UH0_0)))                                 │

00:03:58 #8152 [Verbose] > │                                                                              │

00:03:58 #8153 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:58 #8154 [Verbose] >

00:03:58 #8155 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:58 #8156 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:58 #8157 [Verbose] > │ ## to_string std_string                                                      │

00:03:58 #8158 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:58 #8159 [Verbose] >

00:03:58 #8160 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:58 #8161 [Verbose] > open rust

00:03:58 #8162 [Verbose] > instance to_string std_string = from_std_string

00:03:58 #8163 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-3085-8564-8c1c21bc63a4\main.spi

00:03:58 #8164 [Verbose] >

00:03:58 #8165 [Verbose] > ╭─[ 215.20ms - stdout ]────────────────────────────────────────────────────────╮

00:03:58 #8166 [Verbose] > │ ()                                                                           │

00:03:58 #8167 [Verbose] > │                                                                              │

00:03:58 #8168 [Verbose] > │                                                                              │

00:03:58 #8169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:58 #8170 [Verbose] >

00:03:58 #8171 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:03:58 #8172 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:03:58 #8173 [Verbose] > │ ## main                                                                      │

00:03:58 #8174 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:03:58 #8175 [Verbose] >

00:03:58 #8176 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:03:58 #8177 [Verbose] > inl main () =

00:03:58 #8178 [Verbose] >     $"let contains x = !contains x" : ()

00:03:58 #8179 [Verbose] >     $"let ends_with x = !ends_with x" : ()

00:03:58 #8180 [Verbose] >     $"let pad_left x = !pad_left x" : ()

00:03:58 #8181 [Verbose] >     $"let pad_right x = !pad_right x" : ()

00:03:58 #8182 [Verbose] >     $"let replace x = !replace x" : ()

00:03:58 #8183 [Verbose] >     inl slice (a : i32) (b : i32) c = slice a b c

00:03:58 #8184 [Verbose] >     $"let slice x = !slice x" : ()

00:03:58 #8185 [Verbose] >     $"let split x = !split x" : ()

00:03:58 #8186 [Verbose] >     $"let split_string x = !split_string x" : ()

00:03:58 #8187 [Verbose] >     $"let starts_with x = !starts_with x" : ()

00:03:58 #8188 [Verbose] >     $"let substring x = !substring x" : ()

00:03:58 #8189 [Verbose] >     $"let to_lower x = !to_lower x" : ()

00:03:58 #8190 [Verbose] >     $"let to_upper x = !to_upper x" : ()

00:03:58 #8191 [Verbose] >     $"let trim x = !trim x" : ()

00:03:58 #8192 [Verbose] >     $"let trim_end x = !trim_end x" : ()

00:03:58 #8193 [Verbose] >     $"let trim_start x = !trim_start x" : ()

00:03:58 #8194 [Verbose] >     $"let ellipsis x = !ellipsis x" : ()

00:03:58 #8195 [Verbose] >     $"let ellipsis_end x = !ellipsis_end x" : ()

00:03:58 #8196 [Verbose] >     $"let format_exception x = !format_exception x" : ()

00:03:58 #8197 [Verbose] >     $"let concat_array_trailing x = !concat_array_trailing x" : ()

00:03:58 #8198 [Verbose] >     inl concat a (b : seq.seq' string) = concat a b

00:03:58 #8199 [Verbose] >     $"let concat x = !concat x" : ()

00:03:58 #8200 [Verbose] >     $"let join' x = !join' x" : ()

00:03:58 #8201 [Verbose] >     $"let to_char_array x = !to_char_array x" : ()

00:03:58 #8202 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-3107-0768-0560ffe31d84\main.spi

00:03:59 #8203 [Verbose] >

00:03:59 #8204 [Verbose] > ╭─[ 567.01ms - stdout ]────────────────────────────────────────────────────────╮

00:03:59 #8205 [Verbose] > │ type Mut0 = {mutable l0 : int32; mutable l1 : string}                        │

00:03:59 #8206 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │

00:03:59 #8207 [Verbose] > │ let rec closure1 (v0 : string) (v1 : string) : bool =                        │

00:03:59 #8208 [Verbose] > │     let v2 : bool = v1.Contains v0                                           │

00:03:59 #8209 [Verbose] > │     v2                                                                       │

00:03:59 #8210 [Verbose] > │ and closure0 () (v0 : string) : (string -> bool) =                           │

00:03:59 #8211 [Verbose] > │     closure1(v0)                                                             │

00:03:59 #8212 [Verbose] > │ and closure3 (v0 : string) (v1 : string) : bool =                            │

00:03:59 #8213 [Verbose] > │     let v2 : bool = v1.EndsWith v0                                           │

00:03:59 #8214 [Verbose] > │     v2                                                                       │

00:03:59 #8215 [Verbose] > │ and closure2 () (v0 : string) : (string -> bool) =                           │

00:03:59 #8216 [Verbose] > │     closure3(v0)                                                             │

00:03:59 #8217 [Verbose] > │ and closure6 (v0 : int32, v1 : char) (v2 : string) : string =                │

00:03:59 #8218 [Verbose] > │     let v3 : string = v2.PadLeft (v0, v1)                                    │

00:03:59 #8219 [Verbose] > │     v3                                                                       │

00:03:59 #8220 [Verbose] > │ and closure5 (v0 : int32) (v1 : char) : (string -> string) =                 │

00:03:59 #8221 [Verbose] > │     closure6(v0, v1)                                                         │

00:03:59 #8222 [Verbose] > │ and closure4 () (v0 : int32) : (char -> (string -> string)) =                │

00:03:59 #8223 [Verbose] > │     closure5(v0)                                                             │

00:03:59 #8224 [Verbose] > │ and closure8 (v0 : int32) (v1 : string) : string =                           │

00:03:59 #8225 [Verbose] > │     let v2 : string = v1.PadRight v0                                         │

00:03:59 #8226 [Verbose] > │     v2                                                                       │

00:03:59 #8227 [Verbose] > │ and closure7 () (v0 : int32) : (string -> string) =                          │

00:03:59 #8228 [Verbose] > │     closure8(v0)                                                             │

00:03:59 #8229 [Verbose] > │ and closure11 (v0 : string, v1 : string) (v2 : string) : string =            │

00:03:59 #8230 [Verbose] > │     let v3 : string = v2.Replace (v0, v1)                                    │

00:03:59 #8231 [Verbose] > │     v3                                                                       │

00:03:59 #8232 [Verbose] > │ and closure10 (v0 : string) (v1 : string) : (string -> string) =             │

00:03:59 #8233 [Verbose] > │     closure11(v0, v1)                                                        │

00:03:59 #8234 [Verbose] > │ and closure9 () (v0 : string) : (string -> (string -> string)) =             │

00:03:59 #8235 [Verbose] > │     closure10(v0)                                                            │

00:03:59 #8236 [Verbose] > │ and closure14 (v0 : int32, v1 : int32) (v2 : string) : string =              │

00:03:59 #8237 [Verbose] > │     let v3 : string = v2.[int v0..int v1]                                    │

00:03:59 #8238 [Verbose] > │     v3                                                                       │

00:03:59 #8239 [Verbose] > │ and closure13 (v0 : int32) (v1 : int32) : (string -> string) =               │

00:03:59 #8240 [Verbose] > │     closure14(v0, v1)                                                        │

00:03:59 #8241 [Verbose] > │ and closure12 () (v0 : int32) : (int32 -> (string -> string)) =              │

00:03:59 #8242 [Verbose] > │     closure13(v0)                                                            │

00:03:59 #8243 [Verbose] > │ and closure16 (v0 : string) (v1 : string) : (string []) =                    │

00:03:59 #8244 [Verbose] > │     let v2 : (string []) = v1.Split v0                                       │

00:03:59 #8245 [Verbose] > │     v2                                                                       │

00:03:59 #8246 [Verbose] > │ and closure15 () (v0 : string) : (string -> (string [])) =                   │

00:03:59 #8247 [Verbose] > │     closure16(v0)                                                            │

00:03:59 #8248 [Verbose] > │ and method0 () : string =                                                    │

00:03:59 #8249 [Verbose] > │     let v0 : string = ""                                                     │

00:03:59 #8250 [Verbose] > │     v0                                                                       │

00:03:59 #8251 [Verbose] > │ and closure18 (v0 : (string [])) (v1 : string) : (string []) =               │

00:03:59 #8252 [Verbose] > │     let v2 : (string []) option = None                                       │

00:03:59 #8253 [Verbose] > │     let mutable _v2 = v2                                                     │

00:03:59 #8254 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:03:59 #8255 [Verbose] > │     let v3 : ((string []) -> string seq) = Seq.ofArray                       │

00:03:59 #8256 [Verbose] > │     let v4 : string seq = v3 v0                                              │

00:03:59 #8257 [Verbose] > │     let v5 : string = method0()                                              │

00:03:59 #8258 [Verbose] > │     let v6 : string = v4 |> String.concat v5                                 │

00:03:59 #8259 [Verbose] > │     let v7 : (string []) = v1.Split v6                                       │

00:03:59 #8260 [Verbose] > │     v7                                                                       │

00:03:59 #8261 [Verbose] > │     #endif                                                                   │

00:03:59 #8262 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:03:59 #8263 [Verbose] > │     let v8 : ((string []) -> string seq) = Seq.ofArray                       │

00:03:59 #8264 [Verbose] > │     let v9 : string seq = v8 v0                                              │

00:03:59 #8265 [Verbose] > │     let v10 : string = method0()                                             │

00:03:59 #8266 [Verbose] > │     let v11 : string = v9 |> String.concat v10                               │

00:03:59 #8267 [Verbose] > │     let v12 : (string []) = v1.Split v11                                     │

00:03:59 #8268 [Verbose] > │     v12                                                                      │

00:03:59 #8269 [Verbose] > │     #endif                                                                   │

00:03:59 #8270 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:03:59 #8271 [Verbose] > │     let v13 : ((string []) -> string seq) = Seq.ofArray                      │

00:03:59 #8272 [Verbose] > │     let v14 : string seq = v13 v0                                            │

00:03:59 #8273 [Verbose] > │     let v15 : string = method0()                                             │

00:03:59 #8274 [Verbose] > │     let v16 : string = v14 |> String.concat v15                              │

00:03:59 #8275 [Verbose] > │     let v17 : (string []) = v1.Split v16                                     │

00:03:59 #8276 [Verbose] > │     v17                                                                      │

00:03:59 #8277 [Verbose] > │     #endif                                                                   │

00:03:59 #8278 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:03:59 #8279 [Verbose] > │     let v18 : (string []) = v1.Split (v0, System.StringSplitOptions.None)    │

00:03:59 #8280 [Verbose] > │     v18                                                                      │

00:03:59 #8281 [Verbose] > │     #endif                                                                   │

00:03:59 #8282 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:03:59 #8283 [Verbose] > │     let v19 : ((string []) -> string seq) = Seq.ofArray                      │

00:03:59 #8284 [Verbose] > │     let v20 : string seq = v19 v0                                            │

00:03:59 #8285 [Verbose] > │     let v21 : string = method0()                                             │

00:03:59 #8286 [Verbose] > │     let v22 : string = v20 |> String.concat v21                              │

00:03:59 #8287 [Verbose] > │     let v23 : (string []) = v1.Split v22                                     │

00:03:59 #8288 [Verbose] > │     v23                                                                      │

00:03:59 #8289 [Verbose] > │     #endif                                                                   │

00:03:59 #8290 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:03:59 #8291 [Verbose] > │     let v24 : ((string []) -> string seq) = Seq.ofArray                      │

00:03:59 #8292 [Verbose] > │     let v25 : string seq = v24 v0                                            │

00:03:59 #8293 [Verbose] > │     let v26 : string = method0()                                             │

00:03:59 #8294 [Verbose] > │     let v27 : string = v25 |> String.concat v26                              │

00:03:59 #8295 [Verbose] > │     let v28 : (string []) = v1.Split v27                                     │

00:03:59 #8296 [Verbose] > │     v28                                                                      │

00:03:59 #8297 [Verbose] > │     #endif                                                                   │

00:03:59 #8298 [Verbose] > │     |> fun x -> _v2 <- Some x                                                │

00:03:59 #8299 [Verbose] > │     let v29 : (string []) = _v2 |> Option.get                                │

00:03:59 #8300 [Verbose] > │     v29                                                                      │

00:03:59 #8301 [Verbose] > │ and closure17 () (v0 : (string [])) : (string -> (string [])) =              │

00:03:59 #8302 [Verbose] > │     closure18(v0)                                                            │

00:03:59 #8303 [Verbose] > │ and closure20 (v0 : string) (v1 : string) : bool =                           │

00:03:59 #8304 [Verbose] > │     let v2 : bool = v1.StartsWith v0                                         │

00:03:59 #8305 [Verbose] > │     v2                                                                       │

00:03:59 #8306 [Verbose] > │ and closure19 () (v0 : string) : (string -> bool) =                          │

00:03:59 #8307 [Verbose] > │     closure20(v0)                                                            │

00:03:59 #8308 [Verbose] > │ and closure23 (v0 : int32, v1 : int32) (v2 : string) : string =              │

00:03:59 #8309 [Verbose] > │     let v3 : string = v2.Substring (v0, v1)                                  │

00:03:59 #8310 [Verbose] > │     v3                                                                       │

00:03:59 #8311 [Verbose] > │ and closure22 (v0 : int32) (v1 : int32) : (string -> string) =               │

00:03:59 #8312 [Verbose] > │     closure23(v0, v1)                                                        │

00:03:59 #8313 [Verbose] > │ and closure21 () (v0 : int32) : (int32 -> (string -> string)) =              │

00:03:59 #8314 [Verbose] > │     closure22(v0)                                                            │

00:03:59 #8315 [Verbose] > │ and closure24 () (v0 : string) : string =                                    │

00:03:59 #8316 [Verbose] > │     let v1 : string = v0.ToLower ()                                          │

00:03:59 #8317 [Verbose] > │     v1                                                                       │

00:03:59 #8318 [Verbose] > │ and closure25 () (v0 : string) : string =                                    │

00:03:59 #8319 [Verbose] > │     let v1 : string = v0.ToUpper ()                                          │

00:03:59 #8320 [Verbose] > │     v1                                                                       │

00:03:59 #8321 [Verbose] > │ and closure26 () (v0 : string) : string =                                    │

00:03:59 #8322 [Verbose] > │     let v1 : string = v0.Trim ()                                             │

00:03:59 #8323 [Verbose] > │     v1                                                                       │

00:03:59 #8324 [Verbose] > │ and closure28 (v0 : (char [])) (v1 : string) : string =                      │

00:03:59 #8325 [Verbose] > │     let v2 : string = v1.TrimEnd v0                                          │

00:03:59 #8326 [Verbose] > │     v2                                                                       │

00:03:59 #8327 [Verbose] > │ and closure27 () (v0 : (char [])) : (string -> string) =                     │

00:03:59 #8328 [Verbose] > │     closure28(v0)                                                            │

00:03:59 #8329 [Verbose] > │ and closure30 (v0 : (char [])) (v1 : string) : string =                      │

00:03:59 #8330 [Verbose] > │     let v2 : string = v1.TrimStart v0                                        │

00:03:59 #8331 [Verbose] > │     v2                                                                       │

00:03:59 #8332 [Verbose] > │ and closure29 () (v0 : (char [])) : (string -> string) =                     │

00:03:59 #8333 [Verbose] > │     closure30(v0)                                                            │

00:03:59 #8334 [Verbose] > │ and closure32 (v0 : int32) (v1 : string) : string =                          │

00:03:59 #8335 [Verbose] > │     let v2 : int32 = v1.Length                                               │

00:03:59 #8336 [Verbose] > │     let v3 : bool = v2 <= v0                                                 │

00:03:59 #8337 [Verbose] > │     if v3 then                                                               │

00:03:59 #8338 [Verbose] > │         v1                                                                   │

00:03:59 #8339 [Verbose] > │     else                                                                     │

00:03:59 #8340 [Verbose] > │         let v4 : int32 = v0 - 1                                              │

00:03:59 #8341 [Verbose] > │         let v5 : string = v1.[int 0..int v4]                                 │

00:03:59 #8342 [Verbose] > │         let v6 : string = v5 + "..."                                         │

00:03:59 #8343 [Verbose] > │         v6                                                                   │

00:03:59 #8344 [Verbose] > │ and closure31 () (v0 : int32) : (string -> string) =                         │

00:03:59 #8345 [Verbose] > │     closure32(v0)                                                            │

00:03:59 #8346 [Verbose] > │ and closure34 (v0 : int64) (v1 : string) : string =                          │

00:03:59 #8347 [Verbose] > │     let v2 : int64 = System.Convert.ToInt64 v1.Length                        │

00:03:59 #8348 [Verbose] > │     let v3 : bool = v2 <= v0                                                 │

00:03:59 #8349 [Verbose] > │     if v3 then                                                               │

00:03:59 #8350 [Verbose] > │         v1                                                                   │

00:03:59 #8351 [Verbose] > │     else                                                                     │

00:03:59 #8352 [Verbose] > │         let v4 : float = float v0                                            │

00:03:59 #8353 [Verbose] > │         let v5 : float = v4 / 2.0                                            │

00:03:59 #8354 [Verbose] > │         let v6 : (float -> float) = ceil                                     │

00:03:59 #8355 [Verbose] > │         let v7 : float = v6 v5                                               │

00:03:59 #8356 [Verbose] > │         let v8 : int64 = int64 v7                                            │

00:03:59 #8357 [Verbose] > │         let v9 : (float -> float) = floor                                    │

00:03:59 #8358 [Verbose] > │         let v10 : float = v9 v5                                              │

00:03:59 #8359 [Verbose] > │         let v11 : int64 = int64 v10                                          │

00:03:59 #8360 [Verbose] > │         let v12 : int64 = v8 - 1L                                            │

00:03:59 #8361 [Verbose] > │         let v13 : string = v1.[int 0L..int v12]                              │

00:03:59 #8362 [Verbose] > │         let v14 : int64 = v2 - v11                                           │

00:03:59 #8363 [Verbose] > │         let v15 : int64 = v2 - 1L                                            │

00:03:59 #8364 [Verbose] > │         let v16 : string = v1.[int v14..int v15]                             │

00:03:59 #8365 [Verbose] > │         let v17 : string = "..."                                             │

00:03:59 #8366 [Verbose] > │         let v18 : (string []) = [|v13; v17; v16|]                            │

00:03:59 #8367 [Verbose] > │         let v19 : ((string []) -> string seq) = Seq.ofArray                  │

00:03:59 #8368 [Verbose] > │         let v20 : string seq = v19 v18                                       │

00:03:59 #8369 [Verbose] > │         let v21 : string = ""                                                │

00:03:59 #8370 [Verbose] > │         let v22 : string = v20 |> String.concat v21                          │

00:03:59 #8371 [Verbose] > │         v22                                                                  │

00:03:59 #8372 [Verbose] > │ and closure33 () (v0 : int64) : (string -> string) =                         │

00:03:59 #8373 [Verbose] > │     closure34(v0)                                                            │

00:03:59 #8374 [Verbose] > │ and closure35 () (v0 : exn) : string =                                       │

00:03:59 #8375 [Verbose] > │     let v1 : string option = None                                            │

00:03:59 #8376 [Verbose] > │     let mutable _v1 = v1                                                     │

00:03:59 #8377 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:03:59 #8378 [Verbose] > │     let v2 : string = $"%A{v0}"                                              │

00:03:59 #8379 [Verbose] > │     v2                                                                       │

00:03:59 #8380 [Verbose] > │     #endif                                                                   │

00:03:59 #8381 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:03:59 #8382 [Verbose] > │     let v3 : string = $"%A{v0}"                                              │

00:03:59 #8383 [Verbose] > │     v3                                                                       │

00:03:59 #8384 [Verbose] > │     #endif                                                                   │

00:03:59 #8385 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:03:59 #8386 [Verbose] > │     let v4 : string = $"%A{v0}"                                              │

00:03:59 #8387 [Verbose] > │     v4                                                                       │

00:03:59 #8388 [Verbose] > │     #endif                                                                   │

00:03:59 #8389 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:03:59 #8390 [Verbose] > │     let v5 : string = $"{v0.GetType ()}: {v0.Message}"                       │

00:03:59 #8391 [Verbose] > │     v5                                                                       │

00:03:59 #8392 [Verbose] > │     #endif                                                                   │

00:03:59 #8393 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:03:59 #8394 [Verbose] > │     let v6 : string = $"%A{v0}"                                              │

00:03:59 #8395 [Verbose] > │     v6                                                                       │

00:03:59 #8396 [Verbose] > │     #endif                                                                   │

00:03:59 #8397 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:03:59 #8398 [Verbose] > │     let v7 : string = $"%A{v0}"                                              │

00:03:59 #8399 [Verbose] > │     v7                                                                       │

00:03:59 #8400 [Verbose] > │     #endif                                                                   │

00:03:59 #8401 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:03:59 #8402 [Verbose] > │     let v8 : string = _v1 |> Option.get                                      │

00:03:59 #8403 [Verbose] > │     v8                                                                       │

00:03:59 #8404 [Verbose] > │ and method1 (v0 : int32, v1 : Mut0) : bool =                                 │

00:03:59 #8405 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:03:59 #8406 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:03:59 #8407 [Verbose] > │     v3                                                                       │

00:03:59 #8408 [Verbose] > │ and closure37 (v0 : string) (v1 : (string [])) : string =                    │

00:03:59 #8409 [Verbose] > │     let v2 : int32 = v1.Length                                               │

00:03:59 #8410 [Verbose] > │     let v3 : string = ""                                                     │

00:03:59 #8411 [Verbose] > │     let v4 : Mut0 = {l0 = 0; l1 = v3} : Mut0                                 │

00:03:59 #8412 [Verbose] > │     while method1(v2, v4) do                                                 │

00:03:59 #8413 [Verbose] > │         let v6 : int32 = v4.l0                                               │

00:03:59 #8414 [Verbose] > │         let v7 : string = v4.l1                                              │

00:03:59 #8415 [Verbose] > │         let v8 : string = v1.[int v6]                                        │

00:03:59 #8416 [Verbose] > │         let v9 : string = v7 + v8 + v0 + ""                                  │

00:03:59 #8417 [Verbose] > │         let v10 : int32 = v6 + 1                                             │

00:03:59 #8418 [Verbose] > │         v4.l0 <- v10                                                         │

00:03:59 #8419 [Verbose] > │         v4.l1 <- v9                                                          │

00:03:59 #8420 [Verbose] > │         ()                                                                   │

00:03:59 #8421 [Verbose] > │     let v11 : string = v4.l1                                                 │

00:03:59 #8422 [Verbose] > │     v11                                                                      │

00:03:59 #8423 [Verbose] > │ and closure36 () (v0 : string) : ((string []) -> string) =                   │

00:03:59 #8424 [Verbose] > │     closure37(v0)                                                            │

00:03:59 #8425 [Verbose] > │ and closure39 (v0 : string) (v1 : string seq) : string =                     │

00:03:59 #8426 [Verbose] > │     let v2 : string = v1 |> String.concat v0                                 │

00:03:59 #8427 [Verbose] > │     v2                                                                       │

00:03:59 #8428 [Verbose] > │ and closure38 () (v0 : string) : (string seq -> string) =                    │

00:03:59 #8429 [Verbose] > │     closure39(v0)                                                            │

00:03:59 #8430 [Verbose] > │ and closure41 (v0 : string) (v1 : (string [])) : string =                    │

00:03:59 #8431 [Verbose] > │     let v2 : string = System.String.Join (v0, v1)                            │

00:03:59 #8432 [Verbose] > │     v2                                                                       │

00:03:59 #8433 [Verbose] > │ and closure40 () (v0 : string) : ((string []) -> string) =                   │

00:03:59 #8434 [Verbose] > │     closure41(v0)                                                            │

00:03:59 #8435 [Verbose] > │ and method2 (v0 : int32, v1 : Mut1) : bool =                                 │

00:03:59 #8436 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:03:59 #8437 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:03:59 #8438 [Verbose] > │     v3                                                                       │

00:03:59 #8439 [Verbose] > │ and closure42 () (v0 : string) : (char []) =                                 │

00:03:59 #8440 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:03:59 #8441 [Verbose] > │     let v2 : (char []) = Array.zeroCreate<char> (v1)                         │

00:03:59 #8442 [Verbose] > │     let v3 : Mut1 = {l0 = 0} : Mut1                                          │

00:03:59 #8443 [Verbose] > │     while method2(v1, v3) do                                                 │

00:03:59 #8444 [Verbose] > │         let v5 : int32 = v3.l0                                               │

00:03:59 #8445 [Verbose] > │         let v6 : char = v0.[int v5]                                          │

00:03:59 #8446 [Verbose] > │         v2.[int v5] <- v6                                                    │

00:03:59 #8447 [Verbose] > │         let v7 : int32 = v5 + 1                                              │

00:03:59 #8448 [Verbose] > │         v3.l0 <- v7                                                          │

00:03:59 #8449 [Verbose] > │         ()                                                                   │

00:03:59 #8450 [Verbose] > │     v2                                                                       │

00:03:59 #8451 [Verbose] > │ let v0 : (string -> (string -> bool)) = closure0()                           │

00:03:59 #8452 [Verbose] > │ let contains x = v0 x                                                        │

00:03:59 #8453 [Verbose] > │ let v1 : (string -> (string -> bool)) = closure2()                           │

00:03:59 #8454 [Verbose] > │ let ends_with x = v1 x                                                       │

00:03:59 #8455 [Verbose] > │ let v2 : (int32 -> (char -> (string -> string))) = closure4()                │

00:03:59 #8456 [Verbose] > │ let pad_left x = v2 x                                                        │

00:03:59 #8457 [Verbose] > │ let v3 : (int32 -> (string -> string)) = closure7()                          │

00:03:59 #8458 [Verbose] > │ let pad_right x = v3 x                                                       │

00:03:59 #8459 [Verbose] > │ let v4 : (string -> (string -> (string -> string))) = closure9()             │

00:03:59 #8460 [Verbose] > │ let replace x = v4 x                                                         │

00:03:59 #8461 [Verbose] > │ let v5 : (int32 -> (int32 -> (string -> string))) = closure12()              │

00:03:59 #8462 [Verbose] > │ let slice x = v5 x                                                           │

00:03:59 #8463 [Verbose] > │ let v6 : (string -> (string -> (string []))) = closure15()                   │

00:03:59 #8464 [Verbose] > │ let split x = v6 x                                                           │

00:03:59 #8465 [Verbose] > │ let v7 : ((string []) -> (string -> (string []))) = closure17()              │

00:03:59 #8466 [Verbose] > │ let split_string x = v7 x                                                    │

00:03:59 #8467 [Verbose] > │ let v8 : (string -> (string -> bool)) = closure19()                          │

00:03:59 #8468 [Verbose] > │ let starts_with x = v8 x                                                     │

00:03:59 #8469 [Verbose] > │ let v9 : (int32 -> (int32 -> (string -> string))) = closure21()              │

00:03:59 #8470 [Verbose] > │ let substring x = v9 x                                                       │

00:03:59 #8471 [Verbose] > │ let v10 : (string -> string) = closure24()                                   │

00:03:59 #8472 [Verbose] > │ let to_lower x = v10 x                                                       │

00:03:59 #8473 [Verbose] > │ let v11 : (string -> string) = closure25()                                   │

00:03:59 #8474 [Verbose] > │ let to_upper x = v11 x                                                       │

00:03:59 #8475 [Verbose] > │ let v12 : (string -> string) = closure26()                                   │

00:03:59 #8476 [Verbose] > │ let trim x = v12 x                                                           │

00:03:59 #8477 [Verbose] > │ let v13 : ((char []) -> (string -> string)) = closure27()                    │

00:03:59 #8478 [Verbose] > │ let trim_end x = v13 x                                                       │

00:03:59 #8479 [Verbose] > │ let v14 : ((char []) -> (string -> string)) = closure29()                    │

00:03:59 #8480 [Verbose] > │ let trim_start x = v14 x                                                     │

00:03:59 #8481 [Verbose] > │ let v15 : (int32 -> (string -> string)) = closure31()                        │

00:03:59 #8482 [Verbose] > │ let ellipsis x = v15 x                                                       │

00:03:59 #8483 [Verbose] > │ let v16 : (int64 -> (string -> string)) = closure33()                        │

00:03:59 #8484 [Verbose] > │ let ellipsis_end x = v16 x                                                   │

00:03:59 #8485 [Verbose] > │ let v17 : (exn -> string) = closure35()                                      │

00:03:59 #8486 [Verbose] > │ let format_exception x = v17 x                                               │

00:03:59 #8487 [Verbose] > │ let v18 : (string -> ((string []) -> string)) = closure36()                  │

00:03:59 #8488 [Verbose] > │ let concat_array_trailing x = v18 x                                          │

00:03:59 #8489 [Verbose] > │ let v19 : (string -> (string seq -> string)) = closure38()                   │

00:03:59 #8490 [Verbose] > │ let concat x = v19 x                                                         │

00:03:59 #8491 [Verbose] > │ let v20 : (string -> ((string []) -> string)) = closure40()                  │

00:03:59 #8492 [Verbose] > │ let join' x = v20 x                                                          │

00:03:59 #8493 [Verbose] > │ let v21 : (string -> (char [])) = closure42()                                │

00:03:59 #8494 [Verbose] > │ let to_char_array x = v21 x                                                  │

00:03:59 #8495 [Verbose] > │ ()                                                                           │

00:03:59 #8496 [Verbose] > │                                                                              │

00:03:59 #8497 [Verbose] > │                                                                              │

00:03:59 #8498 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:01 #8499 [Verbose] > [NbConvertApp] Converting notebook sm'.dib.ipynb to html

00:04:01 #8500 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:04:01 #8501 [Verbose] >   validate(nb)

00:04:02 #8502 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:04:02 #8503 [Verbose] >   return _pygments_highlight(

00:04:03 #8504 [Verbose] > [NbConvertApp] Writing 446538 bytes to sm'.dib.html

00:04:04 #8505 [Debug] executeAsync / exitCode: 0 / output.Length: 139697

00:04:04 #8506 [Debug] main / executeCommand / exitCode: 0

00:04:04 #8507 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 \"listm'.dib\" -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:04:07 #8508 [Verbose] >

00:04:07 #8509 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:07 #8510 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:07 #8511 [Verbose] > │ # listm                                                                      │

00:04:07 #8512 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:07 #8513 [Verbose] >

00:04:07 #8514 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:07 #8515 [Verbose] > // // test

00:04:07 #8516 [Verbose] >

00:04:07 #8517 [Verbose] > open testing

00:04:11 #8518 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4326-2645-219b43f86a8b\main.spi

00:04:13 #8519 [Verbose] >

00:04:13 #8520 [Verbose] > ╭─[ 5.19s - stdout ]───────────────────────────────────────────────────────────╮

00:04:13 #8521 [Verbose] > │ ()                                                                           │

00:04:13 #8522 [Verbose] > │                                                                              │

00:04:13 #8523 [Verbose] > │                                                                              │

00:04:13 #8524 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:13 #8525 [Verbose] >

00:04:13 #8526 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:13 #8527 [Verbose] > // // test

00:04:13 #8528 [Verbose] >

00:04:13 #8529 [Verbose] > prototype append t : t -> t -> t

00:04:13 #8530 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4537-3755-38735d3a899a\main.spi

00:04:13 #8531 [Verbose] >

00:04:13 #8532 [Verbose] > ╭─[ 247.81ms - stdout ]────────────────────────────────────────────────────────╮

00:04:13 #8533 [Verbose] > │ ()                                                                           │

00:04:13 #8534 [Verbose] > │                                                                              │

00:04:13 #8535 [Verbose] > │                                                                              │

00:04:13 #8536 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:13 #8537 [Verbose] >

00:04:13 #8538 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:13 #8539 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:13 #8540 [Verbose] > │ ## list'                                                                     │

00:04:13 #8541 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:13 #8542 [Verbose] >

00:04:13 #8543 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:13 #8544 [Verbose] > nominal list' t = $'`t list'

00:04:13 #8545 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4562-6265-69be6db2a402\main.spi

00:04:13 #8546 [Verbose] >

00:04:13 #8547 [Verbose] > ╭─[ 241.76ms - stdout ]────────────────────────────────────────────────────────╮

00:04:13 #8548 [Verbose] > │ ()                                                                           │

00:04:13 #8549 [Verbose] > │                                                                              │

00:04:13 #8550 [Verbose] > │                                                                              │

00:04:13 #8551 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:13 #8552 [Verbose] >

00:04:13 #8553 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:13 #8554 [Verbose] > inl empty' forall t. () : list' t =

00:04:13 #8555 [Verbose] >     $'[[]]'

00:04:13 #8556 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4587-8742-8dc5f0175826\main.spi

00:04:13 #8557 [Verbose] >

00:04:13 #8558 [Verbose] > ╭─[ 217.97ms - stdout ]────────────────────────────────────────────────────────╮

00:04:13 #8559 [Verbose] > │ ()                                                                           │

00:04:13 #8560 [Verbose] > │                                                                              │

00:04:13 #8561 [Verbose] > │                                                                              │

00:04:13 #8562 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:13 #8563 [Verbose] >

00:04:13 #8564 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:13 #8565 [Verbose] > inl cons' forall t. (head : t) (tail : list' t) : list' t =

00:04:13 #8566 [Verbose] >     $'!head :: !tail '

00:04:13 #8567 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4609-0914-0b7883fef414\main.spi

00:04:14 #8568 [Verbose] >

00:04:14 #8569 [Verbose] > ╭─[ 319.88ms - stdout ]────────────────────────────────────────────────────────╮

00:04:14 #8570 [Verbose] > │ ()                                                                           │

00:04:14 #8571 [Verbose] > │                                                                              │

00:04:14 #8572 [Verbose] > │                                                                              │

00:04:14 #8573 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8574 [Verbose] >

00:04:14 #8575 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:14 #8576 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:14 #8577 [Verbose] > │ ## box                                                                       │

00:04:14 #8578 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8579 [Verbose] >

00:04:14 #8580 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:14 #8581 [Verbose] > inl box forall t. (list : list t) : list' t =

00:04:14 #8582 [Verbose] >     (empty' (), list)

00:04:14 #8583 [Verbose] >     ||> listm.fold fun acc x =>

00:04:14 #8584 [Verbose] >         acc |> cons' x

00:04:14 #8585 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4641-4144-43eda52efc20\main.spi

00:04:14 #8586 [Verbose] >

00:04:14 #8587 [Verbose] > ╭─[ 249.80ms - stdout ]────────────────────────────────────────────────────────╮

00:04:14 #8588 [Verbose] > │ ()                                                                           │

00:04:14 #8589 [Verbose] > │                                                                              │

00:04:14 #8590 [Verbose] > │                                                                              │

00:04:14 #8591 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8592 [Verbose] >

00:04:14 #8593 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:14 #8594 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:14 #8595 [Verbose] > │ ## fold'                                                                     │

00:04:14 #8596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8597 [Verbose] >

00:04:14 #8598 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:14 #8599 [Verbose] > inl fold' forall t u. (fn : t -> u) (init : list u) (list : list' t) : list u =

00:04:14 #8600 [Verbose] >     (init, list)

00:04:14 #8601 [Verbose] >     ||> $'List.fold' (fun acc x => Cons (fn x, acc))

00:04:14 #8602 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4667-6738-6026028af284\main.spi

00:04:14 #8603 [Verbose] >

00:04:14 #8604 [Verbose] > ╭─[ 209.77ms - stdout ]────────────────────────────────────────────────────────╮

00:04:14 #8605 [Verbose] > │ ()                                                                           │

00:04:14 #8606 [Verbose] > │                                                                              │

00:04:14 #8607 [Verbose] > │                                                                              │

00:04:14 #8608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8609 [Verbose] >

00:04:14 #8610 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:14 #8611 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:14 #8612 [Verbose] > │ ## unbox                                                                     │

00:04:14 #8613 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8614 [Verbose] >

00:04:14 #8615 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:14 #8616 [Verbose] > inl unbox forall t. (list : list' t) : list t =

00:04:14 #8617 [Verbose] >     (Nil, list)

00:04:14 #8618 [Verbose] >     ||> fold' id

00:04:14 #8619 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4688-8845-87568e952ed2\main.spi

00:04:14 #8620 [Verbose] >

00:04:14 #8621 [Verbose] > ╭─[ 232.98ms - stdout ]────────────────────────────────────────────────────────╮

00:04:14 #8622 [Verbose] > │ ()                                                                           │

00:04:14 #8623 [Verbose] > │                                                                              │

00:04:14 #8624 [Verbose] > │                                                                              │

00:04:14 #8625 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8626 [Verbose] >

00:04:14 #8627 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:14 #8628 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:14 #8629 [Verbose] > │ ## distinct'                                                                 │

00:04:14 #8630 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:14 #8631 [Verbose] >

00:04:14 #8632 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:14 #8633 [Verbose] > inl distinct' forall t. (list : list' t) : list' t =

00:04:14 #8634 [Verbose] >     list |> $'List.distinct'

00:04:14 #8635 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4712-1244-1e0b05cdcbd7\main.spi

00:04:15 #8636 [Verbose] >

00:04:15 #8637 [Verbose] > ╭─[ 230.41ms - stdout ]────────────────────────────────────────────────────────╮

00:04:15 #8638 [Verbose] > │ ()                                                                           │

00:04:15 #8639 [Verbose] > │                                                                              │

00:04:15 #8640 [Verbose] > │                                                                              │

00:04:15 #8641 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:15 #8642 [Verbose] >

00:04:15 #8643 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:15 #8644 [Verbose] > // // test

00:04:15 #8645 [Verbose] >

00:04:15 #8646 [Verbose] > [[ ""; "" ]]

00:04:15 #8647 [Verbose] > |> box

00:04:15 #8648 [Verbose] > |> distinct'

00:04:15 #8649 [Verbose] > |> unbox

00:04:15 #8650 [Verbose] > |> _assert_eq [[ "" ]]

00:04:15 #8651 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4735-3597-31f154822936\main.spi

00:04:16 #8652 [Verbose] >

00:04:16 #8653 [Verbose] > ╭─[ 1.61s - stdout ]───────────────────────────────────────────────────────────╮

00:04:16 #8654 [Verbose] > │ type UH0 =                                                                   │

00:04:16 #8655 [Verbose] > │     | UH0_0                                                                  │

00:04:16 #8656 [Verbose] > │     | UH0_1 of string * UH0                                                  │

00:04:16 #8657 [Verbose] > │ let rec closure1 (v0 : UH0) (v1 : string) : UH0 =                            │

00:04:16 #8658 [Verbose] > │     UH0_1(v1, v0)                                                            │

00:04:16 #8659 [Verbose] > │ and closure0 () (v0 : UH0) : (string -> UH0) =                               │

00:04:16 #8660 [Verbose] > │     closure1(v0)                                                             │

00:04:16 #8661 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:04:16 #8662 [Verbose] > │     v0                                                                       │

00:04:16 #8663 [Verbose] > │ and method0 () : unit =                                                      │

00:04:16 #8664 [Verbose] > │     let v0 : string list = []                                                │

00:04:16 #8665 [Verbose] > │     let v1 : string = ""                                                     │

00:04:16 #8666 [Verbose] > │     let v2 : string list = v1 :: v0                                          │

00:04:16 #8667 [Verbose] > │     let v3 : string list = v1 :: v2                                          │

00:04:16 #8668 [Verbose] > │     let v4 : (string list -> string list) = List.distinct                    │

00:04:16 #8669 [Verbose] > │     let v5 : string list = v4 v3                                             │

00:04:16 #8670 [Verbose] > │     let v6 : ((UH0 -> (string -> UH0)) -> (UH0 -> (string list -> UH0))) =   │

00:04:16 #8671 [Verbose] > │ List.fold                                                                    │

00:04:16 #8672 [Verbose] > │     let v7 : (UH0 -> (string -> UH0)) = closure0()                           │

00:04:16 #8673 [Verbose] > │     let v8 : (UH0 -> (string list -> UH0)) = v6 v7                           │

00:04:16 #8674 [Verbose] > │     let v9 : UH0 = UH0_0                                                     │

00:04:16 #8675 [Verbose] > │     let v10 : (string list -> UH0) = v8 v9                                   │

00:04:16 #8676 [Verbose] > │     let v11 : UH0 = v10 v5                                                   │

00:04:16 #8677 [Verbose] > │     let v12 : string = $"%A{v11}"                                            │

00:04:16 #8678 [Verbose] > │     System.Console.WriteLine v12                                             │

00:04:16 #8679 [Verbose] > │     let v20 : bool =                                                         │

00:04:16 #8680 [Verbose] > │         match v11 with                                                       │

00:04:16 #8681 [Verbose] > │         | UH0_1(v15, v16) -> (* Cons *)                                      │

00:04:16 #8682 [Verbose] > │             let v17 : bool = v15 = ""                                        │

00:04:16 #8683 [Verbose] > │             if v17 then                                                      │

00:04:16 #8684 [Verbose] > │                 match v16 with                                               │

00:04:16 #8685 [Verbose] > │                 | UH0_0 -> (* Nil *)                                         │

00:04:16 #8686 [Verbose] > │                     true                                                     │

00:04:16 #8687 [Verbose] > │                 | _ ->                                                       │

00:04:16 #8688 [Verbose] > │                     false                                                    │

00:04:16 #8689 [Verbose] > │             else                                                             │

00:04:16 #8690 [Verbose] > │                 false                                                        │

00:04:16 #8691 [Verbose] > │         | _ ->                                                               │

00:04:16 #8692 [Verbose] > │             false                                                            │

00:04:16 #8693 [Verbose] > │     let v22 : bool =                                                         │

00:04:16 #8694 [Verbose] > │         if v20 then                                                          │

00:04:16 #8695 [Verbose] > │             true                                                             │

00:04:16 #8696 [Verbose] > │         else                                                                 │

00:04:16 #8697 [Verbose] > │             method1(v20)                                                     │

00:04:16 #8698 [Verbose] > │     let v23 : UH0 = UH0_0                                                    │

00:04:16 #8699 [Verbose] > │     let v24 : UH0 = UH0_1(v1, v23)                                           │

00:04:16 #8700 [Verbose] > │     let v25 : string = $"__expect / actual: %A{v11} / expected: %A{v24}"     │

00:04:16 #8701 [Verbose] > │     let v26 : bool = v22 = false                                             │

00:04:16 #8702 [Verbose] > │     if v26 then                                                              │

00:04:16 #8703 [Verbose] > │         failwith<unit> v25                                                   │

00:04:16 #8704 [Verbose] > │ method0()                                                                    │

00:04:16 #8705 [Verbose] > │                                                                              │

00:04:16 #8706 [Verbose] > │ UH0_1 ("", UH0_0)                                                            │

00:04:16 #8707 [Verbose] > │                                                                              │

00:04:16 #8708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:16 #8709 [Verbose] >

00:04:16 #8710 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:16 #8711 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:16 #8712 [Verbose] > │ ## append                                                                    │

00:04:16 #8713 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:16 #8714 [Verbose] >

00:04:16 #8715 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:16 #8716 [Verbose] > instance append list t =

00:04:16 #8717 [Verbose] >     listm.append

00:04:16 #8718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4899-9935-92ed833fa7da\main.spi

00:04:17 #8719 [Verbose] >

00:04:17 #8720 [Verbose] > ╭─[ 336.66ms - stdout ]────────────────────────────────────────────────────────╮

00:04:17 #8721 [Verbose] > │ ()                                                                           │

00:04:17 #8722 [Verbose] > │                                                                              │

00:04:17 #8723 [Verbose] > │                                                                              │

00:04:17 #8724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:17 #8725 [Verbose] >

00:04:17 #8726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:17 #8727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:17 #8728 [Verbose] > │ ## /@                                                                        │

00:04:17 #8729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:17 #8730 [Verbose] >

00:04:17 #8731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:17 #8732 [Verbose] > inl (/@) a b =

00:04:17 #8733 [Verbose] >     b |> append a

00:04:17 #8734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4933-3393-32a033a1cd96\main.spi

00:04:17 #8735 [Verbose] >

00:04:17 #8736 [Verbose] > ╭─[ 628.14ms - stdout ]────────────────────────────────────────────────────────╮

00:04:17 #8737 [Verbose] > │ ()                                                                           │

00:04:17 #8738 [Verbose] > │                                                                              │

00:04:17 #8739 [Verbose] > │                                                                              │

00:04:17 #8740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:17 #8741 [Verbose] >

00:04:17 #8742 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:17 #8743 [Verbose] > // // test

00:04:17 #8744 [Verbose] >

00:04:17 #8745 [Verbose] > [[ "a"; "b" ]] /@ [[ "c"; "d" ]]

00:04:17 #8746 [Verbose] > |> _assert_eq [[ "a"; "b"; "c"; "d" ]]

00:04:17 #8747 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-4996-9676-9bb9b091da85\main.spi

00:04:18 #8748 [Verbose] >

00:04:18 #8749 [Verbose] > ╭─[ 360.74ms - stdout ]────────────────────────────────────────────────────────╮

00:04:18 #8750 [Verbose] > │ type UH0 =                                                                   │

00:04:18 #8751 [Verbose] > │     | UH0_0                                                                  │

00:04:18 #8752 [Verbose] > │     | UH0_1 of string * UH0                                                  │

00:04:18 #8753 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:18 #8754 [Verbose] > │     let v0 : string = "a"                                                    │

00:04:18 #8755 [Verbose] > │     let v1 : string = "b"                                                    │

00:04:18 #8756 [Verbose] > │     let v2 : string = "c"                                                    │

00:04:18 #8757 [Verbose] > │     let v3 : string = "d"                                                    │

00:04:18 #8758 [Verbose] > │     let v4 : UH0 = UH0_0                                                     │

00:04:18 #8759 [Verbose] > │     let v5 : UH0 = UH0_1(v3, v4)                                             │

00:04:18 #8760 [Verbose] > │     let v6 : UH0 = UH0_1(v2, v5)                                             │

00:04:18 #8761 [Verbose] > │     let v7 : UH0 = UH0_1(v1, v6)                                             │

00:04:18 #8762 [Verbose] > │     let v8 : UH0 = UH0_1(v0, v7)                                             │

00:04:18 #8763 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │

00:04:18 #8764 [Verbose] > │     System.Console.WriteLine v9                                              │

00:04:18 #8765 [Verbose] > │     let v35 : UH0 = UH0_0                                                    │

00:04:18 #8766 [Verbose] > │     let v36 : UH0 = UH0_1(v3, v35)                                           │

00:04:18 #8767 [Verbose] > │     let v37 : UH0 = UH0_1(v2, v36)                                           │

00:04:18 #8768 [Verbose] > │     let v38 : UH0 = UH0_1(v1, v37)                                           │

00:04:18 #8769 [Verbose] > │     let v39 : UH0 = UH0_1(v0, v38)                                           │

00:04:18 #8770 [Verbose] > │     let v40 : UH0 = UH0_0                                                    │

00:04:18 #8771 [Verbose] > │     let v41 : UH0 = UH0_1(v3, v40)                                           │

00:04:18 #8772 [Verbose] > │     let v42 : UH0 = UH0_1(v2, v41)                                           │

00:04:18 #8773 [Verbose] > │     let v43 : UH0 = UH0_1(v1, v42)                                           │

00:04:18 #8774 [Verbose] > │     let v44 : UH0 = UH0_1(v0, v43)                                           │

00:04:18 #8775 [Verbose] > │     let v45 : string = $"__expect / actual: %A{v39} / expected: %A{v44}"     │

00:04:18 #8776 [Verbose] > │     ()                                                                       │

00:04:18 #8777 [Verbose] > │ method0()                                                                    │

00:04:18 #8778 [Verbose] > │                                                                              │

00:04:18 #8779 [Verbose] > │ UH0_1 ("a", UH0_1 ("b", UH0_1 ("c", UH0_1 ("d", UH0_0))))                    │

00:04:18 #8780 [Verbose] > │                                                                              │

00:04:18 #8781 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:18 #8782 [Verbose] >

00:04:18 #8783 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:18 #8784 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:18 #8785 [Verbose] > │ ## init_series                                                               │

00:04:18 #8786 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:18 #8787 [Verbose] >

00:04:18 #8788 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:18 #8789 [Verbose] > inl init_series start end inc =

00:04:18 #8790 [Verbose] >     inl total : f64 = conv ((end - start) / inc) + 1

00:04:18 #8791 [Verbose] >     listm.init total (conv >> (*) inc >> (+) start)

00:04:18 #8792 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5035-3593-3e670901724d\main.spi

00:04:18 #8793 [Verbose] >

00:04:18 #8794 [Verbose] > ╭─[ 238.45ms - stdout ]────────────────────────────────────────────────────────╮

00:04:18 #8795 [Verbose] > │ ()                                                                           │

00:04:18 #8796 [Verbose] > │                                                                              │

00:04:18 #8797 [Verbose] > │                                                                              │

00:04:18 #8798 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:18 #8799 [Verbose] >

00:04:18 #8800 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:18 #8801 [Verbose] > // // test

00:04:18 #8802 [Verbose] >

00:04:18 #8803 [Verbose] > init_series 0 1 0.5

00:04:18 #8804 [Verbose] > |> _assert_eq [[ 0f64; 0.5; 1 ]]

00:04:18 #8805 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5059-5972-55cb36fb29c9\main.spi

00:04:18 #8806 [Verbose] >

00:04:18 #8807 [Verbose] > ╭─[ 250.13ms - stdout ]────────────────────────────────────────────────────────╮

00:04:18 #8808 [Verbose] > │ type UH0 =                                                                   │

00:04:18 #8809 [Verbose] > │     | UH0_0                                                                  │

00:04:18 #8810 [Verbose] > │     | UH0_1 of float * UH0                                                   │

00:04:18 #8811 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:18 #8812 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:04:18 #8813 [Verbose] > │     let v1 : UH0 = UH0_1(1.0, v0)                                            │

00:04:18 #8814 [Verbose] > │     let v2 : UH0 = UH0_1(0.5, v1)                                            │

00:04:18 #8815 [Verbose] > │     let v3 : UH0 = UH0_1(0.0, v2)                                            │

00:04:18 #8816 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:04:18 #8817 [Verbose] > │     System.Console.WriteLine v4                                              │

00:04:18 #8818 [Verbose] > │     let v23 : UH0 = UH0_0                                                    │

00:04:18 #8819 [Verbose] > │     let v24 : UH0 = UH0_1(1.0, v23)                                          │

00:04:18 #8820 [Verbose] > │     let v25 : UH0 = UH0_1(0.5, v24)                                          │

00:04:18 #8821 [Verbose] > │     let v26 : UH0 = UH0_1(0.0, v25)                                          │

00:04:18 #8822 [Verbose] > │     let v27 : UH0 = UH0_0                                                    │

00:04:18 #8823 [Verbose] > │     let v28 : UH0 = UH0_1(1.0, v27)                                          │

00:04:18 #8824 [Verbose] > │     let v29 : UH0 = UH0_1(0.5, v28)                                          │

00:04:18 #8825 [Verbose] > │     let v30 : UH0 = UH0_1(0.0, v29)                                          │

00:04:18 #8826 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │

00:04:18 #8827 [Verbose] > │     ()                                                                       │

00:04:18 #8828 [Verbose] > │ method0()                                                                    │

00:04:18 #8829 [Verbose] > │                                                                              │

00:04:18 #8830 [Verbose] > │ UH0_1 (0.0, UH0_1 (0.5, UH0_1 (1.0, UH0_0)))                                 │

00:04:18 #8831 [Verbose] > │                                                                              │

00:04:18 #8832 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:18 #8833 [Verbose] >

00:04:18 #8834 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:18 #8835 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:18 #8836 [Verbose] > │ ## try_item                                                                  │

00:04:18 #8837 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:18 #8838 [Verbose] >

00:04:18 #8839 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:18 #8840 [Verbose] > inl rec try_item i = function

00:04:18 #8841 [Verbose] >     | Cons (x, _) when i = 0 => Some x

00:04:18 #8842 [Verbose] >     | Cons (_, xs) => try_item (i - 1) xs

00:04:18 #8843 [Verbose] >     | Nil => None

00:04:18 #8844 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5086-8640-872a7d33b11e\main.spi

00:04:18 #8845 [Verbose] >

00:04:18 #8846 [Verbose] > ╭─[ 292.34ms - stdout ]────────────────────────────────────────────────────────╮

00:04:18 #8847 [Verbose] > │ ()                                                                           │

00:04:18 #8848 [Verbose] > │                                                                              │

00:04:18 #8849 [Verbose] > │                                                                              │

00:04:18 #8850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:18 #8851 [Verbose] >

00:04:18 #8852 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:18 #8853 [Verbose] > // // test

00:04:18 #8854 [Verbose] >

00:04:18 #8855 [Verbose] > listm.init 10i32 id

00:04:18 #8856 [Verbose] > |> try_item 9i32

00:04:18 #8857 [Verbose] > |> _assert_eq (Some 9)

00:04:19 #8858 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5115-1582-1ea033987f59\main.spi

00:04:19 #8859 [Verbose] >

00:04:19 #8860 [Verbose] > ╭─[ 309.83ms - stdout ]────────────────────────────────────────────────────────╮

00:04:19 #8861 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:04:19 #8862 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:04:19 #8863 [Verbose] > │     | US0_1                                                                  │

00:04:19 #8864 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:19 #8865 [Verbose] > │     let v0 : US0 = US0_0(9)                                                  │

00:04:19 #8866 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:04:19 #8867 [Verbose] > │     System.Console.WriteLine v1                                              │

00:04:19 #8868 [Verbose] > │     let v5 : US0 = US0_0(9)                                                  │

00:04:19 #8869 [Verbose] > │     let v6 : US0 = US0_0(9)                                                  │

00:04:19 #8870 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:04:19 #8871 [Verbose] > │     ()                                                                       │

00:04:19 #8872 [Verbose] > │ method0()                                                                    │

00:04:19 #8873 [Verbose] > │                                                                              │

00:04:19 #8874 [Verbose] > │ US0_0 9                                                                      │

00:04:19 #8875 [Verbose] > │                                                                              │

00:04:19 #8876 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:19 #8877 [Verbose] >

00:04:19 #8878 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:19 #8879 [Verbose] > // // test

00:04:19 #8880 [Verbose] >

00:04:19 #8881 [Verbose] > listm.init 10i32 id

00:04:19 #8882 [Verbose] > |> try_item 10i32

00:04:19 #8883 [Verbose] > |> _assert_eq None

00:04:19 #8884 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5147-4748-4befc0b5dba6\main.spi

00:04:19 #8885 [Verbose] >

00:04:19 #8886 [Verbose] > ╭─[ 268.47ms - stdout ]────────────────────────────────────────────────────────╮

00:04:19 #8887 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:04:19 #8888 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:04:19 #8889 [Verbose] > │     | US0_1                                                                  │

00:04:19 #8890 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:19 #8891 [Verbose] > │     let v0 : US0 = US0_1                                                     │

00:04:19 #8892 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:04:19 #8893 [Verbose] > │     System.Console.WriteLine v1                                              │

00:04:19 #8894 [Verbose] > │     let v5 : US0 = US0_1                                                     │

00:04:19 #8895 [Verbose] > │     let v6 : US0 = US0_1                                                     │

00:04:19 #8896 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:04:19 #8897 [Verbose] > │     ()                                                                       │

00:04:19 #8898 [Verbose] > │ method0()                                                                    │

00:04:19 #8899 [Verbose] > │                                                                              │

00:04:19 #8900 [Verbose] > │ US0_1                                                                        │

00:04:19 #8901 [Verbose] > │                                                                              │

00:04:19 #8902 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:19 #8903 [Verbose] >

00:04:19 #8904 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:19 #8905 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:19 #8906 [Verbose] > │ ## list_item                                                                 │

00:04:19 #8907 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:19 #8908 [Verbose] >

00:04:19 #8909 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:19 #8910 [Verbose] > inl item i =

00:04:19 #8911 [Verbose] >     try_item i >> optionm.value

00:04:19 #8912 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5175-7589-7925fb30dd13\main.spi

00:04:19 #8913 [Verbose] >

00:04:19 #8914 [Verbose] > ╭─[ 288.22ms - stdout ]────────────────────────────────────────────────────────╮

00:04:19 #8915 [Verbose] > │ ()                                                                           │

00:04:19 #8916 [Verbose] > │                                                                              │

00:04:19 #8917 [Verbose] > │                                                                              │

00:04:19 #8918 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:19 #8919 [Verbose] >

00:04:19 #8920 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:19 #8921 [Verbose] > // // test

00:04:19 #8922 [Verbose] >

00:04:19 #8923 [Verbose] > listm.init 10i32 id

00:04:19 #8924 [Verbose] > |> item 9i32

00:04:19 #8925 [Verbose] > |> _assert_eq 9

00:04:19 #8926 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5205-0507-06a9ba3f691f\main.spi

00:04:20 #8927 [Verbose] >

00:04:20 #8928 [Verbose] > ╭─[ 309.56ms - stdout ]────────────────────────────────────────────────────────╮

00:04:20 #8929 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:20 #8930 [Verbose] > │     let v0 : string = $"%A{9}"                                               │

00:04:20 #8931 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:20 #8932 [Verbose] > │     let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}"          │

00:04:20 #8933 [Verbose] > │     ()                                                                       │

00:04:20 #8934 [Verbose] > │ method0()                                                                    │

00:04:20 #8935 [Verbose] > │                                                                              │

00:04:20 #8936 [Verbose] > │ 9                                                                            │

00:04:20 #8937 [Verbose] > │                                                                              │

00:04:20 #8938 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #8939 [Verbose] >

00:04:20 #8940 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:20 #8941 [Verbose] > // // test

00:04:20 #8942 [Verbose] >

00:04:20 #8943 [Verbose] > fun () =>

00:04:20 #8944 [Verbose] >     listm.init 10i32 id

00:04:20 #8945 [Verbose] >     |> item 10i32

00:04:20 #8946 [Verbose] >     |> ignore

00:04:20 #8947 [Verbose] > |> _throws

00:04:20 #8948 [Verbose] > |> optionm.map sm'.format_exception

00:04:20 #8949 [Verbose] > |> _assert_eq (Some "System.Exception: Option does not have a value.")

00:04:20 #8950 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5236-3668-355170070a33\main.spi

00:04:20 #8951 [Verbose] >

00:04:20 #8952 [Verbose] > ╭─[ 361.37ms - stdout ]────────────────────────────────────────────────────────╮

00:04:20 #8953 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:04:20 #8954 [Verbose] > │     | US0_0 of f0_0 : exn                                                    │

00:04:20 #8955 [Verbose] > │     | US0_1                                                                  │

00:04:20 #8956 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:04:20 #8957 [Verbose] > │     | US1_0 of f0_0 : string                                                 │

00:04:20 #8958 [Verbose] > │     | US1_1                                                                  │

00:04:20 #8959 [Verbose] > │ let rec closure0 () () : unit =                                              │

00:04:20 #8960 [Verbose] > │     let v0 : int32 = failwith<int32> "Option does not have a value."         │

00:04:20 #8961 [Verbose] > │     ()                                                                       │

00:04:20 #8962 [Verbose] > │ and closure1 () (v0 : exn) : US0 =                                           │

00:04:20 #8963 [Verbose] > │     US0_0(v0)                                                                │

00:04:20 #8964 [Verbose] > │ and method1 (v0 : bool) : bool =                                             │

00:04:20 #8965 [Verbose] > │     v0                                                                       │

00:04:20 #8966 [Verbose] > │ and method0 () : unit =                                                      │

00:04:20 #8967 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:04:20 #8968 [Verbose] > │     let v1 : US0 = US0_1                                                     │

00:04:20 #8969 [Verbose] > │     let v2 : (exn -> US0) = closure1()                                       │

00:04:20 #8970 [Verbose] > │     let v3 : US0 = try v0 (); v1 with ex -> ex |> v2                         │

00:04:20 #8971 [Verbose] > │     let v16 : US1 =                                                          │

00:04:20 #8972 [Verbose] > │         match v3 with                                                        │

00:04:20 #8973 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:04:20 #8974 [Verbose] > │             US1_1                                                            │

00:04:20 #8975 [Verbose] > │         | US0_0(v4) -> (* Some *)                                            │

00:04:20 #8976 [Verbose] > │             let v5 : string option = None                                    │

00:04:20 #8977 [Verbose] > │             let mutable _v5 = v5                                             │

00:04:20 #8978 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:20 #8979 [Verbose] > │             let v6 : string = $"%A{v4}"                                      │

00:04:20 #8980 [Verbose] > │             v6                                                               │

00:04:20 #8981 [Verbose] > │             #endif                                                           │

00:04:20 #8982 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:20 #8983 [Verbose] > │             let v7 : string = $"%A{v4}"                                      │

00:04:20 #8984 [Verbose] > │             v7                                                               │

00:04:20 #8985 [Verbose] > │             #endif                                                           │

00:04:20 #8986 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:20 #8987 [Verbose] > │             let v8 : string = $"%A{v4}"                                      │

00:04:20 #8988 [Verbose] > │             v8                                                               │

00:04:20 #8989 [Verbose] > │             #endif                                                           │

00:04:20 #8990 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:20 #8991 [Verbose] > │             let v9 : string = $"{v4.GetType ()}: {v4.Message}"               │

00:04:20 #8992 [Verbose] > │             v9                                                               │

00:04:20 #8993 [Verbose] > │             #endif                                                           │

00:04:20 #8994 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:20 #8995 [Verbose] > │             let v10 : string = $"%A{v4}"                                     │

00:04:20 #8996 [Verbose] > │             v10                                                              │

00:04:20 #8997 [Verbose] > │             #endif                                                           │

00:04:20 #8998 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:20 #8999 [Verbose] > │             let v11 : string = $"%A{v4}"                                     │

00:04:20 #9000 [Verbose] > │             v11                                                              │

00:04:20 #9001 [Verbose] > │             #endif                                                           │

00:04:20 #9002 [Verbose] > │             |> fun x -> _v5 <- Some x                                        │

00:04:20 #9003 [Verbose] > │             let v12 : string = _v5 |> Option.get                             │

00:04:20 #9004 [Verbose] > │             US1_0(v12)                                                       │

00:04:20 #9005 [Verbose] > │     let v17 : string = $"%A{v16}"                                            │

00:04:20 #9006 [Verbose] > │     System.Console.WriteLine v17                                             │

00:04:20 #9007 [Verbose] > │     let v22 : bool =                                                         │

00:04:20 #9008 [Verbose] > │         match v16 with                                                       │

00:04:20 #9009 [Verbose] > │         | US1_0(v20) -> (* Some *)                                           │

00:04:20 #9010 [Verbose] > │             let v21 : bool = v20 = "System.Exception: Option does not have a │

00:04:20 #9011 [Verbose] > │ value."                                                                      │

00:04:20 #9012 [Verbose] > │             v21                                                              │

00:04:20 #9013 [Verbose] > │         | _ ->                                                               │

00:04:20 #9014 [Verbose] > │             false                                                            │

00:04:20 #9015 [Verbose] > │     let v24 : bool =                                                         │

00:04:20 #9016 [Verbose] > │         if v22 then                                                          │

00:04:20 #9017 [Verbose] > │             true                                                             │

00:04:20 #9018 [Verbose] > │         else                                                                 │

00:04:20 #9019 [Verbose] > │             method1(v22)                                                     │

00:04:20 #9020 [Verbose] > │     let v25 : string = "System.Exception: Option does not have a value."     │

00:04:20 #9021 [Verbose] > │     let v26 : US1 = US1_0(v25)                                               │

00:04:20 #9022 [Verbose] > │     let v27 : string = $"__expect / actual: %A{v16} / expected: %A{v26}"     │

00:04:20 #9023 [Verbose] > │     let v28 : bool = v24 = false                                             │

00:04:20 #9024 [Verbose] > │     if v28 then                                                              │

00:04:20 #9025 [Verbose] > │         failwith<unit> v27                                                   │

00:04:20 #9026 [Verbose] > │ method0()                                                                    │

00:04:20 #9027 [Verbose] > │                                                                              │

00:04:20 #9028 [Verbose] > │ US1_0 "System.Exception: Option does not have a value."                      │

00:04:20 #9029 [Verbose] > │                                                                              │

00:04:20 #9030 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #9031 [Verbose] >

00:04:20 #9032 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:20 #9033 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:20 #9034 [Verbose] > │ ## try_item_                                                                 │

00:04:20 #9035 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #9036 [Verbose] >

00:04:20 #9037 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:20 #9038 [Verbose] > let rec try_item_ i = function

00:04:20 #9039 [Verbose] >     | Cons (x, _) when i = 0 => Some x

00:04:20 #9040 [Verbose] >     | Cons (_, xs) => try_item_ (i - 1) xs

00:04:20 #9041 [Verbose] >     | Nil => None

00:04:20 #9042 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5276-7605-7b7133b9c0db\main.spi

00:04:20 #9043 [Verbose] >

00:04:20 #9044 [Verbose] > ╭─[ 220.87ms - stdout ]────────────────────────────────────────────────────────╮

00:04:20 #9045 [Verbose] > │ ()                                                                           │

00:04:20 #9046 [Verbose] > │                                                                              │

00:04:20 #9047 [Verbose] > │                                                                              │

00:04:20 #9048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #9049 [Verbose] >

00:04:20 #9050 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:20 #9051 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:20 #9052 [Verbose] > │ ## item_                                                                     │

00:04:20 #9053 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #9054 [Verbose] >

00:04:20 #9055 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:20 #9056 [Verbose] > inl item_ i =

00:04:20 #9057 [Verbose] >     try_item_ i >> optionm.value

00:04:20 #9058 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5298-9875-9910087440e0\main.spi

00:04:20 #9059 [Verbose] >

00:04:20 #9060 [Verbose] > ╭─[ 228.60ms - stdout ]────────────────────────────────────────────────────────╮

00:04:20 #9061 [Verbose] > │ ()                                                                           │

00:04:20 #9062 [Verbose] > │                                                                              │

00:04:20 #9063 [Verbose] > │                                                                              │

00:04:20 #9064 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #9065 [Verbose] >

00:04:20 #9066 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:20 #9067 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:20 #9068 [Verbose] > │ ## sum                                                                       │

00:04:20 #9069 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:20 #9070 [Verbose] >

00:04:20 #9071 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:20 #9072 [Verbose] > inl sum list =

00:04:20 #9073 [Verbose] >     list |> listm.fold (+) 0

00:04:21 #9074 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5322-2242-22dc8e4315ce\main.spi

00:04:21 #9075 [Verbose] >

00:04:21 #9076 [Verbose] > ╭─[ 241.54ms - stdout ]────────────────────────────────────────────────────────╮

00:04:21 #9077 [Verbose] > │ ()                                                                           │

00:04:21 #9078 [Verbose] > │                                                                              │

00:04:21 #9079 [Verbose] > │                                                                              │

00:04:21 #9080 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:21 #9081 [Verbose] >

00:04:21 #9082 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:21 #9083 [Verbose] > // // test

00:04:21 #9084 [Verbose] >

00:04:21 #9085 [Verbose] > listm.init 10i32 id

00:04:21 #9086 [Verbose] > |> sum

00:04:21 #9087 [Verbose] > |> _assert_eq 45

00:04:21 #9088 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5346-4661-4ec3590fa29b\main.spi

00:04:21 #9089 [Verbose] >

00:04:21 #9090 [Verbose] > ╭─[ 229.49ms - stdout ]────────────────────────────────────────────────────────╮

00:04:21 #9091 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:21 #9092 [Verbose] > │     let v0 : string = $"%A{45}"                                              │

00:04:21 #9093 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:21 #9094 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:04:21 #9095 [Verbose] > │     ()                                                                       │

00:04:21 #9096 [Verbose] > │ method0()                                                                    │

00:04:21 #9097 [Verbose] > │                                                                              │

00:04:21 #9098 [Verbose] > │ 45                                                                           │

00:04:21 #9099 [Verbose] > │                                                                              │

00:04:21 #9100 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:21 #9101 [Verbose] >

00:04:21 #9102 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:21 #9103 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:21 #9104 [Verbose] > │ ## unzip                                                                     │

00:04:21 #9105 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:21 #9106 [Verbose] >

00:04:21 #9107 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:21 #9108 [Verbose] > inl unzip list =

00:04:21 #9109 [Verbose] >     (([[]], [[]]), list)

00:04:21 #9110 [Verbose] >     ||> listm.fold fun (acc_x, acc_y) (x, y) =>

00:04:21 #9111 [Verbose] >         x :: acc_x, y :: acc_y

00:04:21 #9112 [Verbose] >     |> fun x, y =>

00:04:21 #9113 [Verbose] >         x |> listm.rev, y |> listm.rev

00:04:21 #9114 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5370-7065-7675f8b6b884\main.spi

00:04:21 #9115 [Verbose] >

00:04:21 #9116 [Verbose] > ╭─[ 243.23ms - stdout ]────────────────────────────────────────────────────────╮

00:04:21 #9117 [Verbose] > │ ()                                                                           │

00:04:21 #9118 [Verbose] > │                                                                              │

00:04:21 #9119 [Verbose] > │                                                                              │

00:04:21 #9120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:21 #9121 [Verbose] >

00:04:21 #9122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:21 #9123 [Verbose] > // // test

00:04:21 #9124 [Verbose] >

00:04:21 #9125 [Verbose] > listm.init 10i32 id

00:04:21 #9126 [Verbose] > |> listm.map (fun x => x, x)

00:04:21 #9127 [Verbose] > |> unzip

00:04:21 #9128 [Verbose] > |> fun x, y =>

00:04:21 #9129 [Verbose] >     x |> sum

00:04:21 #9130 [Verbose] >     |> _assert_eq 45

00:04:21 #9131 [Verbose] >

00:04:21 #9132 [Verbose] >     y |> sum

00:04:21 #9133 [Verbose] >     |> _assert_eq 45

00:04:21 #9134 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5395-9508-92a8f7b9d726\main.spi

00:04:21 #9135 [Verbose] >

00:04:21 #9136 [Verbose] > ╭─[ 261.83ms - stdout ]────────────────────────────────────────────────────────╮

00:04:21 #9137 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:21 #9138 [Verbose] > │     let v0 : string = $"%A{45}"                                              │

00:04:21 #9139 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:21 #9140 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:04:21 #9141 [Verbose] > │     let v2 : string = $"%A{45}"                                              │

00:04:21 #9142 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:21 #9143 [Verbose] > │     let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:04:21 #9144 [Verbose] > │     ()                                                                       │

00:04:21 #9145 [Verbose] > │ method0()                                                                    │

00:04:21 #9146 [Verbose] > │                                                                              │

00:04:21 #9147 [Verbose] > │ 45                                                                           │

00:04:21 #9148 [Verbose] > │ 45                                                                           │

00:04:21 #9149 [Verbose] > │                                                                              │

00:04:21 #9150 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:21 #9151 [Verbose] >

00:04:21 #9152 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:21 #9153 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:21 #9154 [Verbose] > │ ## try_index_of                                                              │

00:04:21 #9155 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:21 #9156 [Verbose] >

00:04:21 #9157 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:21 #9158 [Verbose] > inl try_index_of item list =

00:04:21 #9159 [Verbose] >     inl rec loop i = function

00:04:21 #9160 [Verbose] >         | [[]] => None

00:04:21 #9161 [Verbose] >         | x :: xs =>

00:04:21 #9162 [Verbose] >             if x = item

00:04:21 #9163 [Verbose] >             then Some i

00:04:21 #9164 [Verbose] >             else loop (i + 1) xs

00:04:21 #9165 [Verbose] >     loop 0 list

00:04:21 #9166 [Verbose] >

00:04:21 #9167 [Verbose] > inl index_of item =

00:04:21 #9168 [Verbose] >     try_index_of item >> optionm.value

00:04:21 #9169 [Verbose] >

00:04:21 #9170 [Verbose] > inl try_index_of_ item list =

00:04:21 #9171 [Verbose] >     let rec loop i = function

00:04:21 #9172 [Verbose] >         | [[]] => None

00:04:21 #9173 [Verbose] >         | x :: xs =>

00:04:21 #9174 [Verbose] >             if x = item

00:04:21 #9175 [Verbose] >             then Some i

00:04:21 #9176 [Verbose] >             else loop (i + 1) xs

00:04:21 #9177 [Verbose] >     loop 0 list

00:04:21 #9178 [Verbose] >

00:04:21 #9179 [Verbose] > inl index_of_ item =

00:04:21 #9180 [Verbose] >     try_index_of_ item >> optionm.value

00:04:21 #9181 [Verbose] >

00:04:21 #9182 [Verbose] > inl try_index_of__ item list =

00:04:21 #9183 [Verbose] >     inl i = mut 0

00:04:21 #9184 [Verbose] >     inl list = mut list

00:04:21 #9185 [Verbose] >     inl result = mut None

00:04:21 #9186 [Verbose] >     let rec loop () =

00:04:21 #9187 [Verbose] >         match *list with

00:04:21 #9188 [Verbose] >         | [[]] => result <- None

00:04:21 #9189 [Verbose] >         | x :: xs =>

00:04:21 #9190 [Verbose] >             if x = item

00:04:21 #9191 [Verbose] >             then result <- Some *i

00:04:21 #9192 [Verbose] >             else

00:04:21 #9193 [Verbose] >                 i <- *i + 1

00:04:21 #9194 [Verbose] >                 list <- xs

00:04:21 #9195 [Verbose] >                 loop ()

00:04:21 #9196 [Verbose] >     loop ()

00:04:21 #9197 [Verbose] >     *result

00:04:21 #9198 [Verbose] >

00:04:21 #9199 [Verbose] > inl index_of__ item =

00:04:21 #9200 [Verbose] >     try_index_of__ item >> optionm.value

00:04:22 #9201 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5422-2250-23bdf2655358\main.spi

00:04:22 #9202 [Verbose] >

00:04:22 #9203 [Verbose] > ╭─[ 458.54ms - stdout ]────────────────────────────────────────────────────────╮

00:04:22 #9204 [Verbose] > │ ()                                                                           │

00:04:22 #9205 [Verbose] > │                                                                              │

00:04:22 #9206 [Verbose] > │                                                                              │

00:04:22 #9207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:22 #9208 [Verbose] >

00:04:22 #9209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:22 #9210 [Verbose] > // // test

00:04:22 #9211 [Verbose] >

00:04:22 #9212 [Verbose] > listm.init 10i32 id

00:04:22 #9213 [Verbose] > |> index_of 5i32

00:04:22 #9214 [Verbose] > |> _assert_eq 5i32

00:04:22 #9215 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5468-6848-6476a6831147\main.spi

00:04:22 #9216 [Verbose] >

00:04:22 #9217 [Verbose] > ╭─[ 321.51ms - stdout ]────────────────────────────────────────────────────────╮

00:04:22 #9218 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:22 #9219 [Verbose] > │     let v0 : string = $"%A{5}"                                               │

00:04:22 #9220 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:22 #9221 [Verbose] > │     let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}"          │

00:04:22 #9222 [Verbose] > │     ()                                                                       │

00:04:22 #9223 [Verbose] > │ method0()                                                                    │

00:04:22 #9224 [Verbose] > │                                                                              │

00:04:22 #9225 [Verbose] > │ 5                                                                            │

00:04:22 #9226 [Verbose] > │                                                                              │

00:04:22 #9227 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:22 #9228 [Verbose] >

00:04:22 #9229 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:22 #9230 [Verbose] > // // test

00:04:22 #9231 [Verbose] >

00:04:22 #9232 [Verbose] > listm.init 10i32 id

00:04:22 #9233 [Verbose] > |> try_index_of 10i32

00:04:22 #9234 [Verbose] > |> _assert_eq (None : option i32)

00:04:22 #9235 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5501-0156-0ba3e561a755\main.spi

00:04:22 #9236 [Verbose] >

00:04:22 #9237 [Verbose] > ╭─[ 248.25ms - stdout ]────────────────────────────────────────────────────────╮

00:04:22 #9238 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:04:22 #9239 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:04:22 #9240 [Verbose] > │     | US0_1                                                                  │

00:04:22 #9241 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:22 #9242 [Verbose] > │     let v0 : US0 = US0_1                                                     │

00:04:22 #9243 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:04:22 #9244 [Verbose] > │     System.Console.WriteLine v1                                              │

00:04:22 #9245 [Verbose] > │     let v5 : US0 = US0_1                                                     │

00:04:22 #9246 [Verbose] > │     let v6 : US0 = US0_1                                                     │

00:04:22 #9247 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:04:22 #9248 [Verbose] > │     ()                                                                       │

00:04:22 #9249 [Verbose] > │ method0()                                                                    │

00:04:22 #9250 [Verbose] > │                                                                              │

00:04:22 #9251 [Verbose] > │ US0_1                                                                        │

00:04:22 #9252 [Verbose] > │                                                                              │

00:04:22 #9253 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:22 #9254 [Verbose] >

00:04:22 #9255 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:22 #9256 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:22 #9257 [Verbose] > │ ## try_find                                                                  │

00:04:22 #9258 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:23 #9259 [Verbose] >

00:04:23 #9260 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:23 #9261 [Verbose] > inl try_find fn list =

00:04:23 #9262 [Verbose] >     inl rec loop = function

00:04:23 #9263 [Verbose] >         | [[]] => None

00:04:23 #9264 [Verbose] >         | x :: xs =>

00:04:23 #9265 [Verbose] >             if fn x

00:04:23 #9266 [Verbose] >             then Some x

00:04:23 #9267 [Verbose] >             else loop xs

00:04:23 #9268 [Verbose] >     loop list

00:04:23 #9269 [Verbose] >

00:04:23 #9270 [Verbose] > inl try_find_ fn list =

00:04:23 #9271 [Verbose] >     let rec loop = function

00:04:23 #9272 [Verbose] >         | [[]] => None

00:04:23 #9273 [Verbose] >         | x :: xs =>

00:04:23 #9274 [Verbose] >             if fn x

00:04:23 #9275 [Verbose] >             then Some x

00:04:23 #9276 [Verbose] >             else loop xs

00:04:23 #9277 [Verbose] >     loop list

00:04:23 #9278 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5527-2764-2381f1d0b12a\main.spi

00:04:23 #9279 [Verbose] >

00:04:23 #9280 [Verbose] > ╭─[ 204.81ms - stdout ]────────────────────────────────────────────────────────╮

00:04:23 #9281 [Verbose] > │ ()                                                                           │

00:04:23 #9282 [Verbose] > │                                                                              │

00:04:23 #9283 [Verbose] > │                                                                              │

00:04:23 #9284 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:23 #9285 [Verbose] >

00:04:23 #9286 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:23 #9287 [Verbose] > // // test

00:04:23 #9288 [Verbose] >

00:04:23 #9289 [Verbose] > listm.init 10i32 id

00:04:23 #9290 [Verbose] > |> try_find ((=) 5i32)

00:04:23 #9291 [Verbose] > |> _assert_eq (Some 5i32)

00:04:23 #9292 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5548-4806-4de4577fcdba\main.spi

00:04:23 #9293 [Verbose] >

00:04:23 #9294 [Verbose] > ╭─[ 260.99ms - stdout ]────────────────────────────────────────────────────────╮

00:04:23 #9295 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:04:23 #9296 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:04:23 #9297 [Verbose] > │     | US0_1                                                                  │

00:04:23 #9298 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:23 #9299 [Verbose] > │     let v0 : US0 = US0_0(5)                                                  │

00:04:23 #9300 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:04:23 #9301 [Verbose] > │     System.Console.WriteLine v1                                              │

00:04:23 #9302 [Verbose] > │     let v5 : US0 = US0_0(5)                                                  │

00:04:23 #9303 [Verbose] > │     let v6 : US0 = US0_0(5)                                                  │

00:04:23 #9304 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:04:23 #9305 [Verbose] > │     ()                                                                       │

00:04:23 #9306 [Verbose] > │ method0()                                                                    │

00:04:23 #9307 [Verbose] > │                                                                              │

00:04:23 #9308 [Verbose] > │ US0_0 5                                                                      │

00:04:23 #9309 [Verbose] > │                                                                              │

00:04:23 #9310 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:23 #9311 [Verbose] >

00:04:23 #9312 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:23 #9313 [Verbose] > inl find x =

00:04:23 #9314 [Verbose] >     try_find x >> optionm.value

00:04:23 #9315 [Verbose] >

00:04:23 #9316 [Verbose] > inl find_ x =

00:04:23 #9317 [Verbose] >     try_find_ x >> optionm.value

00:04:23 #9318 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5575-7529-7f4fcae43dc7\main.spi

00:04:23 #9319 [Verbose] >

00:04:23 #9320 [Verbose] > ╭─[ 195.27ms - stdout ]────────────────────────────────────────────────────────╮

00:04:23 #9321 [Verbose] > │ ()                                                                           │

00:04:23 #9322 [Verbose] > │                                                                              │

00:04:23 #9323 [Verbose] > │                                                                              │

00:04:23 #9324 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:23 #9325 [Verbose] >

00:04:23 #9326 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:23 #9327 [Verbose] > // // test

00:04:23 #9328 [Verbose] >

00:04:23 #9329 [Verbose] > listm.init 10i32 id

00:04:23 #9330 [Verbose] > |> find ((=) 5i32)

00:04:23 #9331 [Verbose] > |> _assert_eq 5i32

00:04:23 #9332 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5594-9494-9e96f636c86a\main.spi

00:04:23 #9333 [Verbose] >

00:04:23 #9334 [Verbose] > ╭─[ 247.87ms - stdout ]────────────────────────────────────────────────────────╮

00:04:23 #9335 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:23 #9336 [Verbose] > │     let v0 : string = $"%A{5}"                                               │

00:04:23 #9337 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:23 #9338 [Verbose] > │     let v1 : string = $"__expect / actual: %A{5} / expected: %A{5}"          │

00:04:23 #9339 [Verbose] > │     ()                                                                       │

00:04:23 #9340 [Verbose] > │ method0()                                                                    │

00:04:23 #9341 [Verbose] > │                                                                              │

00:04:23 #9342 [Verbose] > │ 5                                                                            │

00:04:23 #9343 [Verbose] > │                                                                              │

00:04:23 #9344 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:23 #9345 [Verbose] >

00:04:23 #9346 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:23 #9347 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:23 #9348 [Verbose] > │ ## choose                                                                    │

00:04:23 #9349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:23 #9350 [Verbose] >

00:04:23 #9351 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:23 #9352 [Verbose] > inl choose f l =

00:04:23 #9353 [Verbose] >     (l, [[]])

00:04:23 #9354 [Verbose] >     ||> listm.foldBack fun x acc =>

00:04:23 #9355 [Verbose] >         match f x with

00:04:23 #9356 [Verbose] >         | Some y => y :: acc

00:04:23 #9357 [Verbose] >         | None => acc

00:04:24 #9358 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5620-2097-217ba13660fc\main.spi

00:04:24 #9359 [Verbose] >

00:04:24 #9360 [Verbose] > ╭─[ 194.90ms - stdout ]────────────────────────────────────────────────────────╮

00:04:24 #9361 [Verbose] > │ ()                                                                           │

00:04:24 #9362 [Verbose] > │                                                                              │

00:04:24 #9363 [Verbose] > │                                                                              │

00:04:24 #9364 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:24 #9365 [Verbose] >

00:04:24 #9366 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:24 #9367 [Verbose] > // // test

00:04:24 #9368 [Verbose] >

00:04:24 #9369 [Verbose] > listm.init 10i32 id

00:04:24 #9370 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)

00:04:24 #9371 [Verbose] > |> _assert_eq [[ 0; 2; 4; 6; 8 ]]

00:04:24 #9372 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5640-4036-4f59543969f9\main.spi

00:04:24 #9373 [Verbose] >

00:04:24 #9374 [Verbose] > ╭─[ 361.85ms - stdout ]────────────────────────────────────────────────────────╮

00:04:24 #9375 [Verbose] > │ type UH0 =                                                                   │

00:04:24 #9376 [Verbose] > │     | UH0_0                                                                  │

00:04:24 #9377 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:04:24 #9378 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:24 #9379 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:04:24 #9380 [Verbose] > │     let v1 : UH0 = UH0_1(8, v0)                                              │

00:04:24 #9381 [Verbose] > │     let v2 : UH0 = UH0_1(6, v1)                                              │

00:04:24 #9382 [Verbose] > │     let v3 : UH0 = UH0_1(4, v2)                                              │

00:04:24 #9383 [Verbose] > │     let v4 : UH0 = UH0_1(2, v3)                                              │

00:04:24 #9384 [Verbose] > │     let v5 : UH0 = UH0_1(0, v4)                                              │

00:04:24 #9385 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │

00:04:24 #9386 [Verbose] > │     System.Console.WriteLine v6                                              │

00:04:24 #9387 [Verbose] > │     let v40 : UH0 = UH0_0                                                    │

00:04:24 #9388 [Verbose] > │     let v41 : UH0 = UH0_1(8, v40)                                            │

00:04:24 #9389 [Verbose] > │     let v42 : UH0 = UH0_1(6, v41)                                            │

00:04:24 #9390 [Verbose] > │     let v43 : UH0 = UH0_1(4, v42)                                            │

00:04:24 #9391 [Verbose] > │     let v44 : UH0 = UH0_1(2, v43)                                            │

00:04:24 #9392 [Verbose] > │     let v45 : UH0 = UH0_1(0, v44)                                            │

00:04:24 #9393 [Verbose] > │     let v46 : UH0 = UH0_0                                                    │

00:04:24 #9394 [Verbose] > │     let v47 : UH0 = UH0_1(8, v46)                                            │

00:04:24 #9395 [Verbose] > │     let v48 : UH0 = UH0_1(6, v47)                                            │

00:04:24 #9396 [Verbose] > │     let v49 : UH0 = UH0_1(4, v48)                                            │

00:04:24 #9397 [Verbose] > │     let v50 : UH0 = UH0_1(2, v49)                                            │

00:04:24 #9398 [Verbose] > │     let v51 : UH0 = UH0_1(0, v50)                                            │

00:04:24 #9399 [Verbose] > │     let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}"     │

00:04:24 #9400 [Verbose] > │     ()                                                                       │

00:04:24 #9401 [Verbose] > │ method0()                                                                    │

00:04:24 #9402 [Verbose] > │                                                                              │

00:04:24 #9403 [Verbose] > │ UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 (8, UH0_0)))))                 │

00:04:24 #9404 [Verbose] > │                                                                              │

00:04:24 #9405 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:24 #9406 [Verbose] >

00:04:24 #9407 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:24 #9408 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:24 #9409 [Verbose] > │ ## zip_with                                                                  │

00:04:24 #9410 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:24 #9411 [Verbose] >

00:04:24 #9412 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:24 #9413 [Verbose] > inl zip_with fn xs ys =

00:04:24 #9414 [Verbose] >     inl rec loop acc xs ys =

00:04:24 #9415 [Verbose] >         match xs, ys with

00:04:24 #9416 [Verbose] >         | Cons (x, xs), Cons (y, ys) =>

00:04:24 #9417 [Verbose] >             loop (fn x y :: acc) xs ys

00:04:24 #9418 [Verbose] >         | _ => listm.rev acc

00:04:24 #9419 [Verbose] >     loop [[]] xs ys

00:04:24 #9420 [Verbose] >

00:04:24 #9421 [Verbose] > inl zip_with_ fn xs ys =

00:04:24 #9422 [Verbose] >     let rec loop acc xs ys =

00:04:24 #9423 [Verbose] >         match xs, ys with

00:04:24 #9424 [Verbose] >         | Cons (x, xs), Cons (y, ys) =>

00:04:24 #9425 [Verbose] >             loop (fn x y :: acc) xs ys

00:04:24 #9426 [Verbose] >         | _ => listm.rev acc

00:04:24 #9427 [Verbose] >     loop [[]] xs ys

00:04:24 #9428 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5679-7904-7832146fe127\main.spi

00:04:24 #9429 [Verbose] >

00:04:24 #9430 [Verbose] > ╭─[ 206.26ms - stdout ]────────────────────────────────────────────────────────╮

00:04:24 #9431 [Verbose] > │ ()                                                                           │

00:04:24 #9432 [Verbose] > │                                                                              │

00:04:24 #9433 [Verbose] > │                                                                              │

00:04:24 #9434 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:24 #9435 [Verbose] >

00:04:24 #9436 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:24 #9437 [Verbose] > // // test

00:04:24 #9438 [Verbose] >

00:04:24 #9439 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4; 5; 6 ]])

00:04:24 #9440 [Verbose] > ||> zip_with (+)

00:04:24 #9441 [Verbose] > |> _assert_eq [[ 5; 7; 9 ]]

00:04:24 #9442 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5699-9968-942efe8eddeb\main.spi

00:04:25 #9443 [Verbose] >

00:04:25 #9444 [Verbose] > ╭─[ 308.24ms - stdout ]────────────────────────────────────────────────────────╮

00:04:25 #9445 [Verbose] > │ type UH0 =                                                                   │

00:04:25 #9446 [Verbose] > │     | UH0_0                                                                  │

00:04:25 #9447 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:04:25 #9448 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:25 #9449 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:04:25 #9450 [Verbose] > │     let v1 : UH0 = UH0_1(9, v0)                                              │

00:04:25 #9451 [Verbose] > │     let v2 : UH0 = UH0_1(7, v1)                                              │

00:04:25 #9452 [Verbose] > │     let v3 : UH0 = UH0_1(5, v2)                                              │

00:04:25 #9453 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:04:25 #9454 [Verbose] > │     System.Console.WriteLine v4                                              │

00:04:25 #9455 [Verbose] > │     let v23 : UH0 = UH0_0                                                    │

00:04:25 #9456 [Verbose] > │     let v24 : UH0 = UH0_1(9, v23)                                            │

00:04:25 #9457 [Verbose] > │     let v25 : UH0 = UH0_1(7, v24)                                            │

00:04:25 #9458 [Verbose] > │     let v26 : UH0 = UH0_1(5, v25)                                            │

00:04:25 #9459 [Verbose] > │     let v27 : UH0 = UH0_0                                                    │

00:04:25 #9460 [Verbose] > │     let v28 : UH0 = UH0_1(9, v27)                                            │

00:04:25 #9461 [Verbose] > │     let v29 : UH0 = UH0_1(7, v28)                                            │

00:04:25 #9462 [Verbose] > │     let v30 : UH0 = UH0_1(5, v29)                                            │

00:04:25 #9463 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │

00:04:25 #9464 [Verbose] > │     ()                                                                       │

00:04:25 #9465 [Verbose] > │ method0()                                                                    │

00:04:25 #9466 [Verbose] > │                                                                              │

00:04:25 #9467 [Verbose] > │ UH0_1 (5, UH0_1 (7, UH0_1 (9, UH0_0)))                                       │

00:04:25 #9468 [Verbose] > │                                                                              │

00:04:25 #9469 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:25 #9470 [Verbose] >

00:04:25 #9471 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:25 #9472 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:25 #9473 [Verbose] > │ ## zip                                                                       │

00:04:25 #9474 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:25 #9475 [Verbose] >

00:04:25 #9476 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:25 #9477 [Verbose] > inl zip xs ys =

00:04:25 #9478 [Verbose] >     zip_with pair xs ys

00:04:25 #9479 [Verbose] >

00:04:25 #9480 [Verbose] > inl zip_ xs ys =

00:04:25 #9481 [Verbose] >     zip_with_ pair xs ys

00:04:25 #9482 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5732-3285-35dfcbf943d9\main.spi

00:04:25 #9483 [Verbose] >

00:04:25 #9484 [Verbose] > ╭─[ 449.77ms - stdout ]────────────────────────────────────────────────────────╮

00:04:25 #9485 [Verbose] > │ ()                                                                           │

00:04:25 #9486 [Verbose] > │                                                                              │

00:04:25 #9487 [Verbose] > │                                                                              │

00:04:25 #9488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:25 #9489 [Verbose] >

00:04:25 #9490 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:25 #9491 [Verbose] > // // test

00:04:25 #9492 [Verbose] >

00:04:25 #9493 [Verbose] > ([[ 1i32; 2; 3 ]], [[ 4i32; 5; 6 ]])

00:04:25 #9494 [Verbose] > ||> zip

00:04:25 #9495 [Verbose] > |> _assert_eq [[ 1, 4; 2, 5; 3, 6 ]]

00:04:25 #9496 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5777-7788-74cae4141c88\main.spi

00:04:25 #9497 [Verbose] >

00:04:25 #9498 [Verbose] > ╭─[ 358.30ms - stdout ]────────────────────────────────────────────────────────╮

00:04:25 #9499 [Verbose] > │ type UH0 =                                                                   │

00:04:25 #9500 [Verbose] > │     | UH0_0                                                                  │

00:04:25 #9501 [Verbose] > │     | UH0_1 of int32 * int32 * UH0                                           │

00:04:25 #9502 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:25 #9503 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:04:25 #9504 [Verbose] > │     let v1 : UH0 = UH0_1(3, 6, v0)                                           │

00:04:25 #9505 [Verbose] > │     let v2 : UH0 = UH0_1(2, 5, v1)                                           │

00:04:25 #9506 [Verbose] > │     let v3 : UH0 = UH0_1(1, 4, v2)                                           │

00:04:25 #9507 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:04:25 #9508 [Verbose] > │     System.Console.WriteLine v4                                              │

00:04:25 #9509 [Verbose] > │     let v23 : UH0 = UH0_0                                                    │

00:04:25 #9510 [Verbose] > │     let v24 : UH0 = UH0_1(3, 6, v23)                                         │

00:04:25 #9511 [Verbose] > │     let v25 : UH0 = UH0_1(2, 5, v24)                                         │

00:04:25 #9512 [Verbose] > │     let v26 : UH0 = UH0_1(1, 4, v25)                                         │

00:04:25 #9513 [Verbose] > │     let v27 : UH0 = UH0_0                                                    │

00:04:25 #9514 [Verbose] > │     let v28 : UH0 = UH0_1(3, 6, v27)                                         │

00:04:25 #9515 [Verbose] > │     let v29 : UH0 = UH0_1(2, 5, v28)                                         │

00:04:25 #9516 [Verbose] > │     let v30 : UH0 = UH0_1(1, 4, v29)                                         │

00:04:25 #9517 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │

00:04:25 #9518 [Verbose] > │     ()                                                                       │

00:04:25 #9519 [Verbose] > │ method0()                                                                    │

00:04:25 #9520 [Verbose] > │                                                                              │

00:04:25 #9521 [Verbose] > │ UH0_1 (1, 4, UH0_1 (2, 5, UH0_1 (3, 6, UH0_0)))                              │

00:04:25 #9522 [Verbose] > │                                                                              │

00:04:25 #9523 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:25 #9524 [Verbose] >

00:04:25 #9525 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:25 #9526 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:25 #9527 [Verbose] > │ ## indexed                                                                   │

00:04:25 #9528 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:25 #9529 [Verbose] >

00:04:25 #9530 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:25 #9531 [Verbose] > inl indexed list =

00:04:25 #9532 [Verbose] >     (([[]], 0), list)

00:04:25 #9533 [Verbose] >     ||> listm.fold fun (acc, i) x =>

00:04:25 #9534 [Verbose] >         (i, x) :: acc, i + 1

00:04:25 #9535 [Verbose] >     |> fst

00:04:25 #9536 [Verbose] >     |> listm.rev

00:04:26 #9537 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5815-1560-12b731782b1b\main.spi

00:04:26 #9538 [Verbose] >

00:04:26 #9539 [Verbose] > ╭─[ 231.78ms - stdout ]────────────────────────────────────────────────────────╮

00:04:26 #9540 [Verbose] > │ ()                                                                           │

00:04:26 #9541 [Verbose] > │                                                                              │

00:04:26 #9542 [Verbose] > │                                                                              │

00:04:26 #9543 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:26 #9544 [Verbose] >

00:04:26 #9545 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:26 #9546 [Verbose] > // // test

00:04:26 #9547 [Verbose] >

00:04:26 #9548 [Verbose] > listm.init 5i32 ((*) 2)

00:04:26 #9549 [Verbose] > |> indexed

00:04:26 #9550 [Verbose] > |> _assert_eq [[ 0i32, 0; 1, 2; 2, 4; 3, 6; 4, 8 ]]

00:04:26 #9551 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5838-3888-38b32bce6e5d\main.spi

00:04:26 #9552 [Verbose] >

00:04:26 #9553 [Verbose] > ╭─[ 304.11ms - stdout ]────────────────────────────────────────────────────────╮

00:04:26 #9554 [Verbose] > │ type UH0 =                                                                   │

00:04:26 #9555 [Verbose] > │     | UH0_0                                                                  │

00:04:26 #9556 [Verbose] > │     | UH0_1 of int32 * int32 * UH0                                           │

00:04:26 #9557 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:26 #9558 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:04:26 #9559 [Verbose] > │     let v1 : UH0 = UH0_1(4, 8, v0)                                           │

00:04:26 #9560 [Verbose] > │     let v2 : UH0 = UH0_1(3, 6, v1)                                           │

00:04:26 #9561 [Verbose] > │     let v3 : UH0 = UH0_1(2, 4, v2)                                           │

00:04:26 #9562 [Verbose] > │     let v4 : UH0 = UH0_1(1, 2, v3)                                           │

00:04:26 #9563 [Verbose] > │     let v5 : UH0 = UH0_1(0, 0, v4)                                           │

00:04:26 #9564 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │

00:04:26 #9565 [Verbose] > │     System.Console.WriteLine v6                                              │

00:04:26 #9566 [Verbose] > │     let v40 : UH0 = UH0_0                                                    │

00:04:26 #9567 [Verbose] > │     let v41 : UH0 = UH0_1(4, 8, v40)                                         │

00:04:26 #9568 [Verbose] > │     let v42 : UH0 = UH0_1(3, 6, v41)                                         │

00:04:26 #9569 [Verbose] > │     let v43 : UH0 = UH0_1(2, 4, v42)                                         │

00:04:26 #9570 [Verbose] > │     let v44 : UH0 = UH0_1(1, 2, v43)                                         │

00:04:26 #9571 [Verbose] > │     let v45 : UH0 = UH0_1(0, 0, v44)                                         │

00:04:26 #9572 [Verbose] > │     let v46 : UH0 = UH0_0                                                    │

00:04:26 #9573 [Verbose] > │     let v47 : UH0 = UH0_1(4, 8, v46)                                         │

00:04:26 #9574 [Verbose] > │     let v48 : UH0 = UH0_1(3, 6, v47)                                         │

00:04:26 #9575 [Verbose] > │     let v49 : UH0 = UH0_1(2, 4, v48)                                         │

00:04:26 #9576 [Verbose] > │     let v50 : UH0 = UH0_1(1, 2, v49)                                         │

00:04:26 #9577 [Verbose] > │     let v51 : UH0 = UH0_1(0, 0, v50)                                         │

00:04:26 #9578 [Verbose] > │     let v52 : string = $"__expect / actual: %A{v45} / expected: %A{v51}"     │

00:04:26 #9579 [Verbose] > │     ()                                                                       │

00:04:26 #9580 [Verbose] > │ method0()                                                                    │

00:04:26 #9581 [Verbose] > │                                                                              │

00:04:26 #9582 [Verbose] > │ UH0_1 (0, 0, UH0_1 (1, 2, UH0_1 (2, 4, UH0_1 (3, 6, UH0_1 (4, 8, UH0_0)))))  │

00:04:26 #9583 [Verbose] > │                                                                              │

00:04:26 #9584 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:26 #9585 [Verbose] >

00:04:26 #9586 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:26 #9587 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:26 #9588 [Verbose] > │ ## group_by                                                                  │

00:04:26 #9589 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:26 #9590 [Verbose] >

00:04:26 #9591 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:26 #9592 [Verbose] > inl group_by fn list =

00:04:26 #9593 [Verbose] >     (list, [[]])

00:04:26 #9594 [Verbose] >     ||> listm.foldBack fun x acc =>

00:04:26 #9595 [Verbose] >         inl xk = fn x

00:04:26 #9596 [Verbose] >         inl found, new_acc =

00:04:26 #9597 [Verbose] >             ((false, [[]]), acc)

00:04:26 #9598 [Verbose] >             ||> listm.fold fun (found, acc') (k, xs) =>

00:04:26 #9599 [Verbose] >                 if k = xk

00:04:26 #9600 [Verbose] >                 then true, (k, x :: xs) :: acc'

00:04:26 #9601 [Verbose] >                 else found, (k, xs) :: acc'

00:04:26 #9602 [Verbose] >         if found

00:04:26 #9603 [Verbose] >         then new_acc

00:04:26 #9604 [Verbose] >         else (xk, [[ x ]]) :: new_acc

00:04:26 #9605 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5870-7096-7bd6dcc0d586\main.spi

00:04:26 #9606 [Verbose] >

00:04:26 #9607 [Verbose] > ╭─[ 224.76ms - stdout ]────────────────────────────────────────────────────────╮

00:04:26 #9608 [Verbose] > │ ()                                                                           │

00:04:26 #9609 [Verbose] > │                                                                              │

00:04:26 #9610 [Verbose] > │                                                                              │

00:04:26 #9611 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:26 #9612 [Verbose] >

00:04:26 #9613 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:26 #9614 [Verbose] > // // test

00:04:26 #9615 [Verbose] >

00:04:26 #9616 [Verbose] > listm.init 10i32 id

00:04:26 #9617 [Verbose] > |> group_by (fun x => x % 2 = 0)

00:04:26 #9618 [Verbose] > |> _assert_eq [[ true, [[ 0; 2; 4; 6; 8 ]]; false, [[ 1; 3; 5; 7; 9 ]] ]]

00:04:26 #9619 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5893-9381-9fd3200c75b2\main.spi

00:04:27 #9620 [Verbose] >

00:04:27 #9621 [Verbose] > ╭─[ 391.66ms - stdout ]────────────────────────────────────────────────────────╮

00:04:27 #9622 [Verbose] > │ type UH0 =                                                                   │

00:04:27 #9623 [Verbose] > │     | UH0_0                                                                  │

00:04:27 #9624 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:04:27 #9625 [Verbose] > │ and UH1 =                                                                    │

00:04:27 #9626 [Verbose] > │     | UH1_0                                                                  │

00:04:27 #9627 [Verbose] > │     | UH1_1 of bool * UH0 * UH1                                              │

00:04:27 #9628 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:27 #9629 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:04:27 #9630 [Verbose] > │     let v1 : UH0 = UH0_1(8, v0)                                              │

00:04:27 #9631 [Verbose] > │     let v2 : UH0 = UH0_1(6, v1)                                              │

00:04:27 #9632 [Verbose] > │     let v3 : UH0 = UH0_1(4, v2)                                              │

00:04:27 #9633 [Verbose] > │     let v4 : UH0 = UH0_1(2, v3)                                              │

00:04:27 #9634 [Verbose] > │     let v5 : UH0 = UH0_1(0, v4)                                              │

00:04:27 #9635 [Verbose] > │     let v6 : UH0 = UH0_0                                                     │

00:04:27 #9636 [Verbose] > │     let v7 : UH0 = UH0_1(9, v6)                                              │

00:04:27 #9637 [Verbose] > │     let v8 : UH0 = UH0_1(7, v7)                                              │

00:04:27 #9638 [Verbose] > │     let v9 : UH0 = UH0_1(5, v8)                                              │

00:04:27 #9639 [Verbose] > │     let v10 : UH0 = UH0_1(3, v9)                                             │

00:04:27 #9640 [Verbose] > │     let v11 : UH0 = UH0_1(1, v10)                                            │

00:04:27 #9641 [Verbose] > │     let v12 : UH1 = UH1_0                                                    │

00:04:27 #9642 [Verbose] > │     let v13 : UH1 = UH1_1(false, v11, v12)                                   │

00:04:27 #9643 [Verbose] > │     let v14 : UH1 = UH1_1(true, v5, v13)                                     │

00:04:27 #9644 [Verbose] > │     let v15 : string = $"%A{v14}"                                            │

00:04:27 #9645 [Verbose] > │     System.Console.WriteLine v15                                             │

00:04:27 #9646 [Verbose] > │     let v112 : UH0 = UH0_0                                                   │

00:04:27 #9647 [Verbose] > │     let v113 : UH0 = UH0_1(8, v112)                                          │

00:04:27 #9648 [Verbose] > │     let v114 : UH0 = UH0_1(6, v113)                                          │

00:04:27 #9649 [Verbose] > │     let v115 : UH0 = UH0_1(4, v114)                                          │

00:04:27 #9650 [Verbose] > │     let v116 : UH0 = UH0_1(2, v115)                                          │

00:04:27 #9651 [Verbose] > │     let v117 : UH0 = UH0_1(0, v116)                                          │

00:04:27 #9652 [Verbose] > │     let v118 : UH0 = UH0_0                                                   │

00:04:27 #9653 [Verbose] > │     let v119 : UH0 = UH0_1(9, v118)                                          │

00:04:27 #9654 [Verbose] > │     let v120 : UH0 = UH0_1(7, v119)                                          │

00:04:27 #9655 [Verbose] > │     let v121 : UH0 = UH0_1(5, v120)                                          │

00:04:27 #9656 [Verbose] > │     let v122 : UH0 = UH0_1(3, v121)                                          │

00:04:27 #9657 [Verbose] > │     let v123 : UH0 = UH0_1(1, v122)                                          │

00:04:27 #9658 [Verbose] > │     let v124 : UH1 = UH1_0                                                   │

00:04:27 #9659 [Verbose] > │     let v125 : UH1 = UH1_1(false, v123, v124)                                │

00:04:27 #9660 [Verbose] > │     let v126 : UH1 = UH1_1(true, v117, v125)                                 │

00:04:27 #9661 [Verbose] > │     let v127 : UH0 = UH0_0                                                   │

00:04:27 #9662 [Verbose] > │     let v128 : UH0 = UH0_1(8, v127)                                          │

00:04:27 #9663 [Verbose] > │     let v129 : UH0 = UH0_1(6, v128)                                          │

00:04:27 #9664 [Verbose] > │     let v130 : UH0 = UH0_1(4, v129)                                          │

00:04:27 #9665 [Verbose] > │     let v131 : UH0 = UH0_1(2, v130)                                          │

00:04:27 #9666 [Verbose] > │     let v132 : UH0 = UH0_1(0, v131)                                          │

00:04:27 #9667 [Verbose] > │     let v133 : UH0 = UH0_0                                                   │

00:04:27 #9668 [Verbose] > │     let v134 : UH0 = UH0_1(9, v133)                                          │

00:04:27 #9669 [Verbose] > │     let v135 : UH0 = UH0_1(7, v134)                                          │

00:04:27 #9670 [Verbose] > │     let v136 : UH0 = UH0_1(5, v135)                                          │

00:04:27 #9671 [Verbose] > │     let v137 : UH0 = UH0_1(3, v136)                                          │

00:04:27 #9672 [Verbose] > │     let v138 : UH0 = UH0_1(1, v137)                                          │

00:04:27 #9673 [Verbose] > │     let v139 : UH1 = UH1_0                                                   │

00:04:27 #9674 [Verbose] > │     let v140 : UH1 = UH1_1(false, v138, v139)                                │

00:04:27 #9675 [Verbose] > │     let v141 : UH1 = UH1_1(true, v132, v140)                                 │

00:04:27 #9676 [Verbose] > │     let v142 : string = $"__expect / actual: %A{v126} / expected: %A{v141}"  │

00:04:27 #9677 [Verbose] > │     ()                                                                       │

00:04:27 #9678 [Verbose] > │ method0()                                                                    │

00:04:27 #9679 [Verbose] > │                                                                              │

00:04:27 #9680 [Verbose] > │ UH1_1                                                                        │

00:04:27 #9681 [Verbose] > │   (true, UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 (8, UH0_0))))),       │

00:04:27 #9682 [Verbose] > │    UH1_1                                                                     │

00:04:27 #9683 [Verbose] > │      (false, UH0_1 (1, UH0_1 (3, UH0_1 (5, UH0_1 (7, UH0_1 (9, UH0_0))))),   │

00:04:27 #9684 [Verbose] > │ UH1_0))                                                                      │

00:04:27 #9685 [Verbose] > │                                                                              │

00:04:27 #9686 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:27 #9687 [Verbose] >

00:04:27 #9688 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:27 #9689 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:27 #9690 [Verbose] > │ ## forall'                                                                   │

00:04:27 #9691 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:27 #9692 [Verbose] >

00:04:27 #9693 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:27 #9694 [Verbose] > inl forall' fn (head :: tail) =

00:04:27 #9695 [Verbose] >     (true, tail)

00:04:27 #9696 [Verbose] >     ||> listm.fold fun acc x =>

00:04:27 #9697 [Verbose] >         acc && x = head

00:04:27 #9698 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5937-3782-324de55e8cf4\main.spi

00:04:27 #9699 [Verbose] >

00:04:27 #9700 [Verbose] > ╭─[ 245.09ms - stdout ]────────────────────────────────────────────────────────╮

00:04:27 #9701 [Verbose] > │ ()                                                                           │

00:04:27 #9702 [Verbose] > │                                                                              │

00:04:27 #9703 [Verbose] > │                                                                              │

00:04:27 #9704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:27 #9705 [Verbose] >

00:04:27 #9706 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:27 #9707 [Verbose] > // // test

00:04:27 #9708 [Verbose] >

00:04:27 #9709 [Verbose] > [[ 1i32; 1; 1; 1; 1 ]]

00:04:27 #9710 [Verbose] > |> forall' ((=) 1i32)

00:04:27 #9711 [Verbose] > |> _assert_eq true

00:04:27 #9712 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5962-6253-601a3879d3cb\main.spi

00:04:27 #9713 [Verbose] >

00:04:27 #9714 [Verbose] > ╭─[ 242.05ms - stdout ]────────────────────────────────────────────────────────╮

00:04:27 #9715 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:27 #9716 [Verbose] > │     let v0 : string = $"%A{true}"                                            │

00:04:27 #9717 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:27 #9718 [Verbose] > │     let v1 : string = $"__expect / actual: %A{true} / expected: %A{true}"    │

00:04:27 #9719 [Verbose] > │     ()                                                                       │

00:04:27 #9720 [Verbose] > │ method0()                                                                    │

00:04:27 #9721 [Verbose] > │                                                                              │

00:04:27 #9722 [Verbose] > │ true                                                                         │

00:04:27 #9723 [Verbose] > │                                                                              │

00:04:27 #9724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:27 #9725 [Verbose] >

00:04:27 #9726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:27 #9727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:27 #9728 [Verbose] > │ ## last                                                                      │

00:04:27 #9729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:27 #9730 [Verbose] >

00:04:27 #9731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:27 #9732 [Verbose] > inl last list =

00:04:27 #9733 [Verbose] >     list

00:04:27 #9734 [Verbose] >     |> listm.rev

00:04:27 #9735 [Verbose] >     |> item 0i32

00:04:27 #9736 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1253-5987-8773-880347694352\main.spi

00:04:27 #9737 [Verbose] >

00:04:27 #9738 [Verbose] > ╭─[ 228.84ms - stdout ]────────────────────────────────────────────────────────╮

00:04:27 #9739 [Verbose] > │ ()                                                                           │

00:04:27 #9740 [Verbose] > │                                                                              │

00:04:27 #9741 [Verbose] > │                                                                              │

00:04:27 #9742 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:27 #9743 [Verbose] >

00:04:27 #9744 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:27 #9745 [Verbose] > // // test

00:04:27 #9746 [Verbose] >

00:04:27 #9747 [Verbose] > listm.init 10i32 id

00:04:27 #9748 [Verbose] > |> last

00:04:27 #9749 [Verbose] > |> _assert_eq 9

00:04:27 #9750 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-0010-1082-1978deea3ec5\main.spi

00:04:28 #9751 [Verbose] >

00:04:28 #9752 [Verbose] > ╭─[ 247.71ms - stdout ]────────────────────────────────────────────────────────╮

00:04:28 #9753 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:28 #9754 [Verbose] > │     let v0 : string = $"%A{9}"                                               │

00:04:28 #9755 [Verbose] > │     System.Console.WriteLine v0                                              │

00:04:28 #9756 [Verbose] > │     let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}"          │

00:04:28 #9757 [Verbose] > │     ()                                                                       │

00:04:28 #9758 [Verbose] > │ method0()                                                                    │

00:04:28 #9759 [Verbose] > │                                                                              │

00:04:28 #9760 [Verbose] > │ 9                                                                            │

00:04:28 #9761 [Verbose] > │                                                                              │

00:04:28 #9762 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:28 #9763 [Verbose] >

00:04:28 #9764 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:28 #9765 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:28 #9766 [Verbose] > │ ## try_pick                                                                  │

00:04:28 #9767 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:28 #9768 [Verbose] >

00:04:28 #9769 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:28 #9770 [Verbose] > inl try_pick fn list =

00:04:28 #9771 [Verbose] >     inl rec body fn = function

00:04:28 #9772 [Verbose] >         | [[]] => None

00:04:28 #9773 [Verbose] >         | x :: xs =>

00:04:28 #9774 [Verbose] >             match fn x with

00:04:28 #9775 [Verbose] >             | Some y => Some y

00:04:28 #9776 [Verbose] >             | None => loop xs

00:04:28 #9777 [Verbose] >     and inl loop list =

00:04:28 #9778 [Verbose] >         if var_is list |> not

00:04:28 #9779 [Verbose] >         then body fn list

00:04:28 #9780 [Verbose] >         else

00:04:28 #9781 [Verbose] >             inl fn = join fn

00:04:28 #9782 [Verbose] >             inl list = dyn list

00:04:28 #9783 [Verbose] >             join body fn list

00:04:28 #9784 [Verbose] >     loop list

00:04:28 #9785 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-0036-3642-3aae3465b65e\main.spi

00:04:28 #9786 [Verbose] >

00:04:28 #9787 [Verbose] > ╭─[ 412.55ms - stdout ]────────────────────────────────────────────────────────╮

00:04:28 #9788 [Verbose] > │ ()                                                                           │

00:04:28 #9789 [Verbose] > │                                                                              │

00:04:28 #9790 [Verbose] > │                                                                              │

00:04:28 #9791 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:28 #9792 [Verbose] >

00:04:28 #9793 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:28 #9794 [Verbose] > // // test

00:04:28 #9795 [Verbose] >

00:04:28 #9796 [Verbose] > listm.init 10i32 id

00:04:28 #9797 [Verbose] > |> try_pick (fun x => if x = 5i32 then Some x else None)

00:04:28 #9798 [Verbose] > |> _assert_eq (Some 5i32)

00:04:28 #9799 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-0077-7781-7d64b4b5a931\main.spi

00:04:28 #9800 [Verbose] >

00:04:28 #9801 [Verbose] > ╭─[ 270.58ms - stdout ]────────────────────────────────────────────────────────╮

00:04:28 #9802 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:04:28 #9803 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:04:28 #9804 [Verbose] > │     | US0_1                                                                  │

00:04:28 #9805 [Verbose] > │ let rec method0 () : unit =                                                  │

00:04:28 #9806 [Verbose] > │     let v0 : US0 = US0_0(5)                                                  │

00:04:28 #9807 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:04:28 #9808 [Verbose] > │     System.Console.WriteLine v1                                              │

00:04:28 #9809 [Verbose] > │     let v5 : US0 = US0_0(5)                                                  │

00:04:28 #9810 [Verbose] > │     let v6 : US0 = US0_0(5)                                                  │

00:04:28 #9811 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:04:28 #9812 [Verbose] > │     ()                                                                       │

00:04:28 #9813 [Verbose] > │ method0()                                                                    │

00:04:28 #9814 [Verbose] > │                                                                              │

00:04:28 #9815 [Verbose] > │ US0_0 5                                                                      │

00:04:28 #9816 [Verbose] > │                                                                              │

00:04:28 #9817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:31 #9818 [Verbose] > [NbConvertApp] Converting notebook listm'.dib.ipynb to html

00:04:31 #9819 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:04:31 #9820 [Verbose] >   validate(nb)

00:04:32 #9821 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:04:32 #9822 [Verbose] >   return _pygments_highlight(

00:04:32 #9823 [Verbose] > [NbConvertApp] Writing 384035 bytes to listm'.dib.html

00:04:33 #9824 [Debug] executeAsync / exitCode: 0 / output.Length: 75202

00:04:33 #9825 [Debug] main / executeCommand / exitCode: 0

00:04:33 #9826 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 benchmark.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:04:36 #9827 [Verbose] >

00:04:37 #9828 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:37 #9829 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:37 #9830 [Verbose] > │ ## benchmark (Polyglot)                                                      │

00:04:37 #9831 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:37 #9832 [Verbose] >

00:04:37 #9833 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:37 #9834 [Verbose] > // // test

00:04:37 #9835 [Verbose] >

00:04:37 #9836 [Verbose] > open testing

00:04:40 #9837 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1238-3847-348ad8f6adf8\main.spi

00:04:42 #9838 [Verbose] >

00:04:42 #9839 [Verbose] > ╭─[ 4.95s - stdout ]───────────────────────────────────────────────────────────╮

00:04:42 #9840 [Verbose] > │ ()                                                                           │

00:04:42 #9841 [Verbose] > │                                                                              │

00:04:42 #9842 [Verbose] > │                                                                              │

00:04:42 #9843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9844 [Verbose] >

00:04:42 #9845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:42 #9846 [Verbose] > inl (/@) x = listm'.(/@) x

00:04:42 #9847 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1435-3509-305125462abc\main.spi

00:04:42 #9848 [Verbose] >

00:04:42 #9849 [Verbose] > ╭─[ 205.04ms - stdout ]────────────────────────────────────────────────────────╮

00:04:42 #9850 [Verbose] > │ ()                                                                           │

00:04:42 #9851 [Verbose] > │                                                                              │

00:04:42 #9852 [Verbose] > │                                                                              │

00:04:42 #9853 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9854 [Verbose] >

00:04:42 #9855 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:42 #9856 [Verbose] > inl gc_collect () =

00:04:42 #9857 [Verbose] >     run_target function

00:04:42 #9858 [Verbose] >         | Fsharp _ => fun () => $"System.GC.Collect ()"

00:04:42 #9859 [Verbose] >         | _ => fun () => ()

00:04:42 #9860 [Verbose] >

00:04:42 #9861 [Verbose] > inl printfn x =

00:04:42 #9862 [Verbose] >     console.write_line x

00:04:42 #9863 [Verbose] >

00:04:42 #9864 [Verbose] > nominal stopwatch = $"System.Diagnostics.Stopwatch"

00:04:42 #9865 [Verbose] >

00:04:42 #9866 [Verbose] > inl stopwatch () : stopwatch =

00:04:42 #9867 [Verbose] >     $"`stopwatch" ()

00:04:42 #9868 [Verbose] >

00:04:42 #9869 [Verbose] > inl stopwatch_elapsed_milliseconds (stopwatch : stopwatch) : i64 =

00:04:42 #9870 [Verbose] >     $"!stopwatch.ElapsedMilliseconds"

00:04:42 #9871 [Verbose] >

00:04:42 #9872 [Verbose] > inl stopwatch_start (stopwatch : stopwatch) : () =

00:04:42 #9873 [Verbose] >     $"!stopwatch.Start ()"

00:04:42 #9874 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1455-5523-5d9c1fa67c29\main.spi

00:04:42 #9875 [Verbose] >

00:04:42 #9876 [Verbose] > ╭─[ 213.08ms - stdout ]────────────────────────────────────────────────────────╮

00:04:42 #9877 [Verbose] > │ ()                                                                           │

00:04:42 #9878 [Verbose] > │                                                                              │

00:04:42 #9879 [Verbose] > │                                                                              │

00:04:42 #9880 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9881 [Verbose] >

00:04:42 #9882 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:42 #9883 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:42 #9884 [Verbose] > │ ## test_case_result                                                          │

00:04:42 #9885 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9886 [Verbose] >

00:04:42 #9887 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:42 #9888 [Verbose] > type test_case_result =

00:04:42 #9889 [Verbose] >     {

00:04:42 #9890 [Verbose] >         Input : string

00:04:42 #9891 [Verbose] >         Expected : string

00:04:42 #9892 [Verbose] >         Result : string

00:04:42 #9893 [Verbose] >         TimeList : a u64 i64

00:04:42 #9894 [Verbose] >     }

00:04:42 #9895 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1477-7707-73978dbe5804\main.spi

00:04:42 #9896 [Verbose] >

00:04:42 #9897 [Verbose] > ╭─[ 241.97ms - stdout ]────────────────────────────────────────────────────────╮

00:04:42 #9898 [Verbose] > │ ()                                                                           │

00:04:42 #9899 [Verbose] > │                                                                              │

00:04:42 #9900 [Verbose] > │                                                                              │

00:04:42 #9901 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9902 [Verbose] >

00:04:42 #9903 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:42 #9904 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:42 #9905 [Verbose] > │ ## run                                                                       │

00:04:42 #9906 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9907 [Verbose] >

00:04:42 #9908 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:42 #9909 [Verbose] > inl run forall input expected.

00:04:42 #9910 [Verbose] >     count

00:04:42 #9911 [Verbose] >     (solutions : list (string * (input -> expected)))

00:04:42 #9912 [Verbose] >     ((input, expected) : (input * expected))

00:04:42 #9913 [Verbose] >     : test_case_result

00:04:42 #9914 [Verbose] >     =

00:04:42 #9915 [Verbose] >     inl input_str = input |> sm'.format_debug

00:04:42 #9916 [Verbose] >

00:04:42 #9917 [Verbose] >     printfn ""

00:04:42 #9918 [Verbose] >     printfn ($"$\"Solution: {!input_str}  \"" : string)

00:04:42 #9919 [Verbose] >

00:04:42 #9920 [Verbose] >     inl performance_invoke (fn : () -> expected) =

00:04:42 #9921 [Verbose] >         gc_collect ()

00:04:42 #9922 [Verbose] >         inl stopwatch = stopwatch ()

00:04:42 #9923 [Verbose] >         stopwatch |> stopwatch_start

00:04:42 #9924 [Verbose] >         inl time1 = stopwatch |> stopwatch_elapsed_milliseconds

00:04:42 #9925 [Verbose] >         inl result : expected =

00:04:42 #9926 [Verbose] >             am'.init_series 0 count 1i32

00:04:42 #9927 [Verbose] >             |> am'.parallel_map fun _n => fn ()

00:04:42 #9928 [Verbose] >             |> am'.last

00:04:42 #9929 [Verbose] >         inl time2 = (stopwatch |> stopwatch_elapsed_milliseconds) - time1

00:04:42 #9930 [Verbose] >         result, time2

00:04:42 #9931 [Verbose] >

00:04:42 #9932 [Verbose] >     inl results_with_time : a u64 _ =

00:04:42 #9933 [Verbose] >         solutions

00:04:42 #9934 [Verbose] >         |> listm'.indexed

00:04:42 #9935 [Verbose] >         |> listm.toArray

00:04:42 #9936 [Verbose] >         |> am.map fun ((i : i32), (test_name, solution)) =>

00:04:42 #9937 [Verbose] >             inl result, time = performance_invoke fun () => solution input

00:04:42 #9938 [Verbose] >             printfn ($"$\"Test case {!i + 1}. {!test_name}. Time: {!time}  \"" :

00:04:42 #9939 [Verbose] > string)

00:04:42 #9940 [Verbose] >             result, time

00:04:42 #9941 [Verbose] >

00:04:42 #9942 [Verbose] >     match results_with_time |> am.map fst with

00:04:42 #9943 [Verbose] >     | array when length array <= 1 => ()

00:04:42 #9944 [Verbose] >     | array when array |> am.forall' ((=) (index array 0)) => ()

00:04:42 #9945 [Verbose] >     | results => failwith ($"$\"Challenge error: {!results}\"" : string)

00:04:42 #9946 [Verbose] >

00:04:42 #9947 [Verbose] >     {

00:04:42 #9948 [Verbose] >         Input = input_str

00:04:42 #9949 [Verbose] >         Expected = expected |> sm'.format_debug

00:04:42 #9950 [Verbose] >         Result = results_with_time |> am.map fst |> fun array => index array 0

00:04:42 #9951 [Verbose] > |> sm'.format_debug

00:04:42 #9952 [Verbose] >         TimeList = results_with_time |> am.map snd

00:04:42 #9953 [Verbose] >     }

00:04:42 #9954 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1501-0194-0367215b9ea6\main.spi

00:04:42 #9955 [Verbose] >

00:04:42 #9956 [Verbose] > ╭─[ 218.30ms - stdout ]────────────────────────────────────────────────────────╮

00:04:42 #9957 [Verbose] > │ ()                                                                           │

00:04:42 #9958 [Verbose] > │                                                                              │

00:04:42 #9959 [Verbose] > │                                                                              │

00:04:42 #9960 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9961 [Verbose] >

00:04:42 #9962 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:42 #9963 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:42 #9964 [Verbose] > │ ## run_all                                                                   │

00:04:42 #9965 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:42 #9966 [Verbose] >

00:04:42 #9967 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:42 #9968 [Verbose] > inl run_all forall input expected.

00:04:42 #9969 [Verbose] >     test_name

00:04:42 #9970 [Verbose] >     count

00:04:42 #9971 [Verbose] >     (solutions : list (string * (input -> expected)))

00:04:42 #9972 [Verbose] >     test_cases

00:04:42 #9973 [Verbose] >     =

00:04:42 #9974 [Verbose] >     printfn ""

00:04:42 #9975 [Verbose] >     printfn ""

00:04:42 #9976 [Verbose] >     printfn ($"$\"Test: {!test_name}\"" : string)

00:04:42 #9977 [Verbose] >     test_cases

00:04:42 #9978 [Verbose] >     |> listm.toArray

00:04:42 #9979 [Verbose] >     |> am.map (run count solutions)

00:04:43 #9980 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1524-2435-22676a2398e7\main.spi

00:04:43 #9981 [Verbose] >

00:04:43 #9982 [Verbose] > ╭─[ 207.41ms - stdout ]────────────────────────────────────────────────────────╮

00:04:43 #9983 [Verbose] > │ ()                                                                           │

00:04:43 #9984 [Verbose] > │                                                                              │

00:04:43 #9985 [Verbose] > │                                                                              │

00:04:43 #9986 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:43 #9987 [Verbose] >

00:04:43 #9988 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:43 #9989 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:43 #9990 [Verbose] > │ ## sort_result_list                                                          │

00:04:43 #9991 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:43 #9992 [Verbose] >

00:04:43 #9993 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:43 #9994 [Verbose] > inl sort_result_list results =

00:04:43 #9995 [Verbose] >     inl table =

00:04:43 #9996 [Verbose] >         inl rows =

00:04:43 #9997 [Verbose] >             results

00:04:43 #9998 [Verbose] >             |> am.map fun (result : test_case_result) =>

00:04:43 #9999 [Verbose] >                 inl best =

00:04:43 #10000 [Verbose] >                     result.TimeList

00:04:43 #10001 [Verbose] >                     |> am'.indexed

00:04:43 #10002 [Verbose] >                     |> am.map fun (i, time) =>

00:04:43 #10003 [Verbose] >                         i + 1i64, time

00:04:43 #10004 [Verbose] >                     |> am'.sort_by snd

00:04:43 #10005 [Verbose] >                     |> fun array => index array 0i32

00:04:43 #10006 [Verbose] >                     |> sm'.format_debug

00:04:43 #10007 [Verbose] >                 inl row =

00:04:43 #10008 [Verbose] >                     [[

00:04:43 #10009 [Verbose] >                         result.Input

00:04:43 #10010 [Verbose] >                         result.Expected

00:04:43 #10011 [Verbose] >                         result.Result

00:04:43 #10012 [Verbose] >                         best

00:04:43 #10013 [Verbose] >                     ]]

00:04:43 #10014 [Verbose] >                 inl color : option console.console_color =

00:04:43 #10015 [Verbose] >                     open console

00:04:43 #10016 [Verbose] >                     match result.Expected = result.Result with

00:04:43 #10017 [Verbose] >                     | true => Some $"`console_color.DarkGreen"

00:04:43 #10018 [Verbose] >                     | false => Some $"`console_color.DarkRed"

00:04:43 #10019 [Verbose] >                 row, color

00:04:43 #10020 [Verbose] >

00:04:43 #10021 [Verbose] >         inl header =

00:04:43 #10022 [Verbose] >             [[

00:04:43 #10023 [Verbose] >                 [[

00:04:43 #10024 [Verbose] >                     "Input"

00:04:43 #10025 [Verbose] >                     "Expected"

00:04:43 #10026 [Verbose] >                     "Result"

00:04:43 #10027 [Verbose] >                     "Best"

00:04:43 #10028 [Verbose] >                 ]]

00:04:43 #10029 [Verbose] >                 [[

00:04:43 #10030 [Verbose] >                     "---"

00:04:43 #10031 [Verbose] >                     "---"

00:04:43 #10032 [Verbose] >                     "---"

00:04:43 #10033 [Verbose] >                     "---"

00:04:43 #10034 [Verbose] >                 ]]

00:04:43 #10035 [Verbose] >             ]]

00:04:43 #10036 [Verbose] >             |> listm.map fun row => row, None

00:04:43 #10037 [Verbose] >             |> listm.toArray

00:04:43 #10038 [Verbose] >         rows |> am.append header

00:04:43 #10039 [Verbose] >

00:04:43 #10040 [Verbose] >     inl formattedTable =

00:04:43 #10041 [Verbose] >         inl lengthMap : mapm.map i32 i64 =

00:04:43 #10042 [Verbose] >             table

00:04:43 #10043 [Verbose] >             |> am.map (fst >> listm.toArray)

00:04:43 #10044 [Verbose] >             |> am'.transpose

00:04:43 #10045 [Verbose] >             |> am.map fun column =>

00:04:43 #10046 [Verbose] >                 column

00:04:43 #10047 [Verbose] >                 |> am.map sm.length

00:04:43 #10048 [Verbose] >                 |> am'.sort_descending

00:04:43 #10049 [Verbose] >                 |> am'.try_item 0i32

00:04:43 #10050 [Verbose] >                 |> optionm'.default_value 0i64

00:04:43 #10051 [Verbose] >             |> am'.indexed

00:04:43 #10052 [Verbose] >             |> fun (x : a i32 _) => x

00:04:43 #10053 [Verbose] >             |> mapm.of_array

00:04:43 #10054 [Verbose] >         table

00:04:43 #10055 [Verbose] >         |> am.map fun (row, color) =>

00:04:43 #10056 [Verbose] >             inl newRow =

00:04:43 #10057 [Verbose] >                 row

00:04:43 #10058 [Verbose] >                 |> listm'.indexed

00:04:43 #10059 [Verbose] >                 |> listm.map fun (i, cell) =>

00:04:43 #10060 [Verbose] >                     cell |> sm'.pad_right (lengthMap |> mapm.item i |> conv)

00:04:43 #10061 [Verbose] >                 |> listm.toArray

00:04:43 #10062 [Verbose] >             newRow, color

00:04:43 #10063 [Verbose] >

00:04:43 #10064 [Verbose] >     printfn ""

00:04:43 #10065 [Verbose] >     formattedTable

00:04:43 #10066 [Verbose] >     |> am.iter fun ((row : a i32 string), color) =>

00:04:43 #10067 [Verbose] >         match color with

00:04:43 #10068 [Verbose] >         | Some color => color |> console.set_foreground_color

00:04:43 #10069 [Verbose] >         | None => console.reset_color ()

00:04:43 #10070 [Verbose] >

00:04:43 #10071 [Verbose] >         printfn (row |> sm'.join' "\t| ")

00:04:43 #10072 [Verbose] >

00:04:43 #10073 [Verbose] >         console.reset_color ()

00:04:43 #10074 [Verbose] >

00:04:43 #10075 [Verbose] >     inl averages : a u64 _ =

00:04:43 #10076 [Verbose] >         results

00:04:43 #10077 [Verbose] >         |> am.map fun result =>

00:04:43 #10078 [Verbose] >             result.TimeList

00:04:43 #10079 [Verbose] >             |> am.map ($"float" : i64 -> f64)

00:04:43 #10080 [Verbose] >         |> am'.transpose

00:04:43 #10081 [Verbose] >         |> am.map am'.average

00:04:43 #10082 [Verbose] >         |> am.map ($"int64" : f64 -> i64)

00:04:43 #10083 [Verbose] >         |> am'.indexed

00:04:43 #10084 [Verbose] >

00:04:43 #10085 [Verbose] >     printfn ""

00:04:43 #10086 [Verbose] >     printfn "Average Ranking  "

00:04:43 #10087 [Verbose] >     averages

00:04:43 #10088 [Verbose] >     |> am'.sort_by snd

00:04:43 #10089 [Verbose] >     |> am.iter fun ((i : i32), avg) =>

00:04:43 #10090 [Verbose] >         printfn ($"$\"Test case %d{!i + 1}. Average Time: %A{!avg}  \"" :

00:04:43 #10091 [Verbose] > string)

00:04:43 #10092 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1545-4581-469502926278\main.spi

00:04:43 #10093 [Verbose] >

00:04:43 #10094 [Verbose] > ╭─[ 227.81ms - stdout ]────────────────────────────────────────────────────────╮

00:04:43 #10095 [Verbose] > │ ()                                                                           │

00:04:43 #10096 [Verbose] > │                                                                              │

00:04:43 #10097 [Verbose] > │                                                                              │

00:04:43 #10098 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:43 #10099 [Verbose] >

00:04:43 #10100 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:43 #10101 [Verbose] > // // test

00:04:43 #10102 [Verbose] >

00:04:43 #10103 [Verbose] > inl is_fast () =

00:04:43 #10104 [Verbose] >     false

00:04:43 #10105 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1568-6870-6cb9a98996d8\main.spi

00:04:43 #10106 [Verbose] >

00:04:43 #10107 [Verbose] > ╭─[ 220.73ms - stdout ]────────────────────────────────────────────────────────╮

00:04:43 #10108 [Verbose] > │ ()                                                                           │

00:04:43 #10109 [Verbose] > │                                                                              │

00:04:43 #10110 [Verbose] > │                                                                              │

00:04:43 #10111 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:43 #10112 [Verbose] >

00:04:43 #10113 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:43 #10114 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:43 #10115 [Verbose] > │ ## empty2Tests                                                               │

00:04:43 #10116 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:43 #10117 [Verbose] >

00:04:43 #10118 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:43 #10119 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:43 #10120 [Verbose] > │ Test: Empty2                                                                 │

00:04:43 #10121 [Verbose] > │                                                                              │

00:04:43 #10122 [Verbose] > │ Solution: (a, a)                                                             │

00:04:43 #10123 [Verbose] > │ Test case 1. A. Time: 59L                                                    │

00:04:43 #10124 [Verbose] > │                                                                              │

00:04:43 #10125 [Verbose] > │ Solution: (a, a)                                                             │

00:04:43 #10126 [Verbose] > │ Test case 1. A. Time: 53L                                                    │

00:04:43 #10127 [Verbose] > │                                                                              │

00:04:43 #10128 [Verbose] > │ Input   | Expected        | Result  | Best                                   │

00:04:43 #10129 [Verbose] > │ ---     | ---             | ---     | ---                                    │

00:04:43 #10130 [Verbose] > │ (a, a)  | a               | a       | (1, 59)                                │

00:04:43 #10131 [Verbose] > │ (a, a)  | a               | a       | (1, 53)                                │

00:04:43 #10132 [Verbose] > │                                                                              │

00:04:43 #10133 [Verbose] > │ Averages                                                                     │

00:04:43 #10134 [Verbose] > │ Test case 1. Average Time: 56L                                               │

00:04:43 #10135 [Verbose] > │                                                                              │

00:04:43 #10136 [Verbose] > │ Ranking                                                                      │

00:04:43 #10137 [Verbose] > │ Test case 1. Average Time: 56L                                               │

00:04:43 #10138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:43 #10139 [Verbose] >

00:04:43 #10140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:43 #10141 [Verbose] > // // test

00:04:43 #10142 [Verbose] >

00:04:43 #10143 [Verbose] > inl get_solutions () =

00:04:43 #10144 [Verbose] >     [[

00:04:43 #10145 [Verbose] >         "A",

00:04:43 #10146 [Verbose] >         fun (a, _b) =>

00:04:43 #10147 [Verbose] >             a

00:04:43 #10148 [Verbose] >

00:04:43 #10149 [Verbose] >         "B",

00:04:43 #10150 [Verbose] >         fun (_a, b) =>

00:04:43 #10151 [Verbose] >             b

00:04:43 #10152 [Verbose] >     ]]

00:04:43 #10153 [Verbose] >

00:04:43 #10154 [Verbose] > inl rec empty_2_tests () =

00:04:43 #10155 [Verbose] >     inl test_cases = [[

00:04:43 #10156 [Verbose] >         ("a", "a"), "a"

00:04:43 #10157 [Verbose] >         ("b", "b"), "b"

00:04:43 #10158 [Verbose] >     ]]

00:04:43 #10159 [Verbose] >

00:04:43 #10160 [Verbose] >     inl solutions = get_solutions ()

00:04:43 #10161 [Verbose] >

00:04:43 #10162 [Verbose] >     // inl is_fast () = true

00:04:43 #10163 [Verbose] >

00:04:43 #10164 [Verbose] >     inl count =

00:04:43 #10165 [Verbose] >         if is_fast ()

00:04:43 #10166 [Verbose] >         then 1000i32

00:04:43 #10167 [Verbose] >         else 2000000i32

00:04:43 #10168 [Verbose] >

00:04:43 #10169 [Verbose] >     run_all (nameof empty_2_tests) count solutions test_cases

00:04:43 #10170 [Verbose] >     |> sort_result_list

00:04:43 #10171 [Verbose] >

00:04:43 #10172 [Verbose] > empty_2_tests ()

00:04:43 #10173 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-1593-9309-9aff08780736\main.spi

00:04:57 #10174 [Verbose] >

00:04:57 #10175 [Verbose] > ╭─[ 13.66s - stdout ]──────────────────────────────────────────────────────────╮

00:04:57 #10176 [Verbose] > │ type UH0 =                                                                   │

00:04:57 #10177 [Verbose] > │     | UH0_0                                                                  │

00:04:57 #10178 [Verbose] > │     | UH0_1 of string * string * string * UH0                                │

00:04:57 #10179 [Verbose] > │ and Mut0 = {mutable l0 : uint64}                                             │

00:04:57 #10180 [Verbose] > │ and UH1 =                                                                    │

00:04:57 #10181 [Verbose] > │     | UH1_0                                                                  │

00:04:57 #10182 [Verbose] > │     | UH1_1 of int32 * string * (struct (string * string) -> string) * UH1   │

00:04:57 #10183 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │

00:04:57 #10184 [Verbose] > │ and UH2 =                                                                    │

00:04:57 #10185 [Verbose] > │     | UH2_0                                                                  │

00:04:57 #10186 [Verbose] > │     | UH2_1 of string * UH2                                                  │

00:04:57 #10187 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:04:57 #10188 [Verbose] > │     | US0_0 of f0_0 : System.ConsoleColor                                    │

00:04:57 #10189 [Verbose] > │     | US0_1                                                                  │

00:04:57 #10190 [Verbose] > │ and UH3 =                                                                    │

00:04:57 #10191 [Verbose] > │     | UH3_0                                                                  │

00:04:57 #10192 [Verbose] > │     | UH3_1 of int64 * int64 * UH3                                           │

00:04:57 #10193 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64}       │

00:04:57 #10194 [Verbose] > │ and UH4 =                                                                    │

00:04:57 #10195 [Verbose] > │     | UH4_0                                                                  │

00:04:57 #10196 [Verbose] > │     | UH4_1 of UH2 * US0 * UH4                                               │

00:04:57 #10197 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:04:57 #10198 [Verbose] > │     | US1_0 of f0_0 : int64                                                  │

00:04:57 #10199 [Verbose] > │     | US1_1                                                                  │

00:04:57 #10200 [Verbose] > │ and UH5 =                                                                    │

00:04:57 #10201 [Verbose] > │     | UH5_0                                                                  │

00:04:57 #10202 [Verbose] > │     | UH5_1 of int32 * int64 * UH5                                           │

00:04:57 #10203 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32}       │

00:04:57 #10204 [Verbose] > │ and UH6 =                                                                    │

00:04:57 #10205 [Verbose] > │     | UH6_0                                                                  │

00:04:57 #10206 [Verbose] > │     | UH6_1 of int32 * string * UH6                                          │

00:04:57 #10207 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 =                           │

00:04:57 #10208 [Verbose] > │     match v0 with                                                            │

00:04:57 #10209 [Verbose] > │     | UH0_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:04:57 #10210 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │

00:04:57 #10211 [Verbose] > │         method2(v5, v6)                                                      │

00:04:57 #10212 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:04:57 #10213 [Verbose] > │         v1                                                                   │

00:04:57 #10214 [Verbose] > │ and method3 (v0 : (struct (string * string * string) []), v1 : UH0, v2 :     │

00:04:57 #10215 [Verbose] > │ uint64) : uint64 =                                                           │

00:04:57 #10216 [Verbose] > │     match v1 with                                                            │

00:04:57 #10217 [Verbose] > │     | UH0_1(v3, v4, v5, v6) -> (* Cons *)                                    │

00:04:57 #10218 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │

00:04:57 #10219 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │

00:04:57 #10220 [Verbose] > │         method3(v0, v6, v7)                                                  │

00:04:57 #10221 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:04:57 #10222 [Verbose] > │         v2                                                                   │

00:04:57 #10223 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string * string) []) =            │

00:04:57 #10224 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:04:57 #10225 [Verbose] > │     let v2 : uint64 = method2(v0, v1)                                        │

00:04:57 #10226 [Verbose] > │     let v3 : (struct (string * string * string) []) =                        │

00:04:57 #10227 [Verbose] > │ Array.zeroCreate<struct (string * string * string)>                          │

00:04:57 #10228 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:04:57 #10229 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:04:57 #10230 [Verbose] > │     let v5 : uint64 = method3(v3, v0, v4)                                    │

00:04:57 #10231 [Verbose] > │     v3                                                                       │

00:04:57 #10232 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool =                                │

00:04:57 #10233 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:04:57 #10234 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:04:57 #10235 [Verbose] > │     v3                                                                       │

00:04:57 #10236 [Verbose] > │ and closure1 () struct (v0 : string, v1 : string) : string =                 │

00:04:57 #10237 [Verbose] > │     v0                                                                       │

00:04:57 #10238 [Verbose] > │ and closure2 () struct (v0 : string, v1 : string) : string =                 │

00:04:57 #10239 [Verbose] > │     v1                                                                       │

00:04:57 #10240 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 =                               │

00:04:57 #10241 [Verbose] > │     match v0 with                                                            │

00:04:57 #10242 [Verbose] > │     | UH1_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:04:57 #10243 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │

00:04:57 #10244 [Verbose] > │         method6(v5, v6)                                                      │

00:04:57 #10245 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:04:57 #10246 [Verbose] > │         v1                                                                   │

00:04:57 #10247 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (struct (string * string) ->     │

00:04:57 #10248 [Verbose] > │ string)) []), v1 : UH1, v2 : uint64) : uint64 =                              │

00:04:57 #10249 [Verbose] > │     match v1 with                                                            │

00:04:57 #10250 [Verbose] > │     | UH1_1(v3, v4, v5, v6) -> (* Cons *)                                    │

00:04:57 #10251 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │

00:04:57 #10252 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │

00:04:57 #10253 [Verbose] > │         method7(v0, v6, v7)                                                  │

00:04:57 #10254 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:04:57 #10255 [Verbose] > │         v2                                                                   │

00:04:57 #10256 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (struct (string * string) │

00:04:57 #10257 [Verbose] > │ -> string)) []) =                                                            │

00:04:57 #10258 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:04:57 #10259 [Verbose] > │     let v2 : uint64 = method6(v0, v1)                                        │

00:04:57 #10260 [Verbose] > │     let v3 : (struct (int32 * string * (struct (string * string) -> string)) │

00:04:57 #10261 [Verbose] > │ []) = Array.zeroCreate<struct (int32 * string * (struct (string * string) -> │

00:04:57 #10262 [Verbose] > │ string))> (System.Convert.ToInt32(v2))                                       │

00:04:57 #10263 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:04:57 #10264 [Verbose] > │     let v5 : uint64 = method7(v3, v0, v4)                                    │

00:04:57 #10265 [Verbose] > │     v3                                                                       │

00:04:57 #10266 [Verbose] > │ and method8 (v0 : Mut1) : bool =                                             │

00:04:57 #10267 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:04:57 #10268 [Verbose] > │     let v2 : bool = v1 < 2000001                                             │

00:04:57 #10269 [Verbose] > │     v2                                                                       │

00:04:57 #10270 [Verbose] > │ and closure3 (v0 : string, v1 : string, v2 : (struct (string * string) ->    │

00:04:57 #10271 [Verbose] > │ string)) (v3 : int32) : string =                                             │

00:04:57 #10272 [Verbose] > │     v2 struct (v0, v1)                                                       │

00:04:57 #10273 [Verbose] > │ and method9 (v0 : string, v1 : (string []), v2 : uint64) : bool =            │

00:04:57 #10274 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │

00:04:57 #10275 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:04:57 #10276 [Verbose] > │     if v4 then                                                               │

00:04:57 #10277 [Verbose] > │         let v5 : string = v1.[int v2]                                        │

00:04:57 #10278 [Verbose] > │         let v6 : bool = v0 = v5                                              │

00:04:57 #10279 [Verbose] > │         if v6 then                                                           │

00:04:57 #10280 [Verbose] > │             let v7 : uint64 = v2 + 1UL                                       │

00:04:57 #10281 [Verbose] > │             method9(v0, v1, v7)                                              │

00:04:57 #10282 [Verbose] > │         else                                                                 │

00:04:57 #10283 [Verbose] > │             false                                                            │

00:04:57 #10284 [Verbose] > │     else                                                                     │

00:04:57 #10285 [Verbose] > │         true                                                                 │

00:04:57 #10286 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool =                               │

00:04:57 #10287 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:04:57 #10288 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:04:57 #10289 [Verbose] > │     v3                                                                       │

00:04:57 #10290 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 =                                    │

00:04:57 #10291 [Verbose] > │     match v0 with                                                            │

00:04:57 #10292 [Verbose] > │     | UH3_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10293 [Verbose] > │         let v5 : UH3 = UH3_1(v2, v3, v1)                                     │

00:04:57 #10294 [Verbose] > │         method11(v4, v5)                                                     │

00:04:57 #10295 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:04:57 #10296 [Verbose] > │         v1                                                                   │

00:04:57 #10297 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 =                                │

00:04:57 #10298 [Verbose] > │     match v0 with                                                            │

00:04:57 #10299 [Verbose] > │     | UH3_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10300 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:04:57 #10301 [Verbose] > │         method13(v4, v5)                                                     │

00:04:57 #10302 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:04:57 #10303 [Verbose] > │         v1                                                                   │

00:04:57 #10304 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) :      │

00:04:57 #10305 [Verbose] > │ int32 =                                                                      │

00:04:57 #10306 [Verbose] > │     match v1 with                                                            │

00:04:57 #10307 [Verbose] > │     | UH3_1(v3, v4, v5) -> (* Cons *)                                        │

00:04:57 #10308 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:04:57 #10309 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:04:57 #10310 [Verbose] > │         method14(v0, v5, v6)                                                 │

00:04:57 #10311 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:04:57 #10312 [Verbose] > │         v2                                                                   │

00:04:57 #10313 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) =                      │

00:04:57 #10314 [Verbose] > │     let v1 : int32 = 0                                                       │

00:04:57 #10315 [Verbose] > │     let v2 : int32 = method13(v0, v1)                                        │

00:04:57 #10316 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │

00:04:57 #10317 [Verbose] > │ int64)> (v2)                                                                 │

00:04:57 #10318 [Verbose] > │     let v4 : int32 = 0                                                       │

00:04:57 #10319 [Verbose] > │     let v5 : int32 = method14(v3, v0, v4)                                    │

00:04:57 #10320 [Verbose] > │     v3                                                                       │

00:04:57 #10321 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool =                                │

00:04:57 #10322 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:04:57 #10323 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:04:57 #10324 [Verbose] > │     v3                                                                       │

00:04:57 #10325 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 =                    │

00:04:57 #10326 [Verbose] > │     v1                                                                       │

00:04:57 #10327 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 =                              │

00:04:57 #10328 [Verbose] > │     match v0 with                                                            │

00:04:57 #10329 [Verbose] > │     | UH4_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10330 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:04:57 #10331 [Verbose] > │         method17(v4, v5)                                                     │

00:04:57 #10332 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:04:57 #10333 [Verbose] > │         v1                                                                   │

00:04:57 #10334 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64  │

00:04:57 #10335 [Verbose] > │ =                                                                            │

00:04:57 #10336 [Verbose] > │     match v1 with                                                            │

00:04:57 #10337 [Verbose] > │     | UH4_1(v3, v4, v5) -> (* Cons *)                                        │

00:04:57 #10338 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:04:57 #10339 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:04:57 #10340 [Verbose] > │         method18(v0, v5, v6)                                                 │

00:04:57 #10341 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:04:57 #10342 [Verbose] > │         v2                                                                   │

00:04:57 #10343 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) =                          │

00:04:57 #10344 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:04:57 #10345 [Verbose] > │     let v2 : uint64 = method17(v0, v1)                                       │

00:04:57 #10346 [Verbose] > │     let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)>  │

00:04:57 #10347 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:04:57 #10348 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:04:57 #10349 [Verbose] > │     let v5 : uint64 = method18(v3, v0, v4)                                   │

00:04:57 #10350 [Verbose] > │     v3                                                                       │

00:04:57 #10351 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 =                              │

00:04:57 #10352 [Verbose] > │     match v0 with                                                            │

00:04:57 #10353 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:04:57 #10354 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │

00:04:57 #10355 [Verbose] > │         method20(v3, v4)                                                     │

00:04:57 #10356 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:04:57 #10357 [Verbose] > │         v1                                                                   │

00:04:57 #10358 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │

00:04:57 #10359 [Verbose] > │     match v1 with                                                            │

00:04:57 #10360 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:04:57 #10361 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:04:57 #10362 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │

00:04:57 #10363 [Verbose] > │         method21(v0, v4, v5)                                                 │

00:04:57 #10364 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:04:57 #10365 [Verbose] > │         v2                                                                   │

00:04:57 #10366 [Verbose] > │ and method19 (v0 : UH2) : (string []) =                                      │

00:04:57 #10367 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:04:57 #10368 [Verbose] > │     let v2 : uint64 = method20(v0, v1)                                       │

00:04:57 #10369 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │

00:04:57 #10370 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:04:57 #10371 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:04:57 #10372 [Verbose] > │     let v5 : uint64 = method21(v3, v0, v4)                                   │

00:04:57 #10373 [Verbose] > │     v3                                                                       │

00:04:57 #10374 [Verbose] > │ and closure5 () (v0 : int64) : US1 =                                         │

00:04:57 #10375 [Verbose] > │     US1_0(v0)                                                                │

00:04:57 #10376 [Verbose] > │ and method22 () : (int64 -> US1) =                                           │

00:04:57 #10377 [Verbose] > │     closure5()                                                               │

00:04:57 #10378 [Verbose] > │ and method23 (v0 : uint64, v1 : Mut3) : bool =                               │

00:04:57 #10379 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:04:57 #10380 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:04:57 #10381 [Verbose] > │     v3                                                                       │

00:04:57 #10382 [Verbose] > │ and method24 (v0 : UH5, v1 : UH5) : UH5 =                                    │

00:04:57 #10383 [Verbose] > │     match v0 with                                                            │

00:04:57 #10384 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10385 [Verbose] > │         let v5 : UH5 = UH5_1(v2, v3, v1)                                     │

00:04:57 #10386 [Verbose] > │         method24(v4, v5)                                                     │

00:04:57 #10387 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:04:57 #10388 [Verbose] > │         v1                                                                   │

00:04:57 #10389 [Verbose] > │ and method26 (v0 : UH5, v1 : int32) : int32 =                                │

00:04:57 #10390 [Verbose] > │     match v0 with                                                            │

00:04:57 #10391 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10392 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:04:57 #10393 [Verbose] > │         method26(v4, v5)                                                     │

00:04:57 #10394 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:04:57 #10395 [Verbose] > │         v1                                                                   │

00:04:57 #10396 [Verbose] > │ and method27 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) :      │

00:04:57 #10397 [Verbose] > │ int32 =                                                                      │

00:04:57 #10398 [Verbose] > │     match v1 with                                                            │

00:04:57 #10399 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:04:57 #10400 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:04:57 #10401 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:04:57 #10402 [Verbose] > │         method27(v0, v5, v6)                                                 │

00:04:57 #10403 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:04:57 #10404 [Verbose] > │         v2                                                                   │

00:04:57 #10405 [Verbose] > │ and method25 (v0 : UH5) : (struct (int32 * int64) []) =                      │

00:04:57 #10406 [Verbose] > │     let v1 : int32 = 0                                                       │

00:04:57 #10407 [Verbose] > │     let v2 : int32 = method26(v0, v1)                                        │

00:04:57 #10408 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:04:57 #10409 [Verbose] > │ int64)> (v2)                                                                 │

00:04:57 #10410 [Verbose] > │     let v4 : int32 = 0                                                       │

00:04:57 #10411 [Verbose] > │     let v5 : int32 = method27(v3, v0, v4)                                    │

00:04:57 #10412 [Verbose] > │     v3                                                                       │

00:04:57 #10413 [Verbose] > │ and method28 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) =       │

00:04:57 #10414 [Verbose] > │     match v0 with                                                            │

00:04:57 #10415 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:04:57 #10416 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:04:57 #10417 [Verbose] > │         let v6 : UH6 = UH6_1(v2, v3, v1)                                     │

00:04:57 #10418 [Verbose] > │         method28(v4, v6, v5)                                                 │

00:04:57 #10419 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:04:57 #10420 [Verbose] > │         struct (v1, v2)                                                      │

00:04:57 #10421 [Verbose] > │ and method29 (v0 : UH6, v1 : UH6) : UH6 =                                    │

00:04:57 #10422 [Verbose] > │     match v0 with                                                            │

00:04:57 #10423 [Verbose] > │     | UH6_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10424 [Verbose] > │         let v5 : UH6 = UH6_1(v2, v3, v1)                                     │

00:04:57 #10425 [Verbose] > │         method29(v4, v5)                                                     │

00:04:57 #10426 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:04:57 #10427 [Verbose] > │         v1                                                                   │

00:04:57 #10428 [Verbose] > │ and method30 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 =            │

00:04:57 #10429 [Verbose] > │     match v1 with                                                            │

00:04:57 #10430 [Verbose] > │     | UH6_1(v3, v4, v5) -> (* Cons *)                                        │

00:04:57 #10431 [Verbose] > │         let v6 : UH2 = method30(v0, v5, v2)                                  │

00:04:57 #10432 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │

00:04:57 #10433 [Verbose] > │         let v8 : int32 = int32 v7                                            │

00:04:57 #10434 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │

00:04:57 #10435 [Verbose] > │         UH2_1(v9, v6)                                                        │

00:04:57 #10436 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:04:57 #10437 [Verbose] > │         v2                                                                   │

00:04:57 #10438 [Verbose] > │ and method32 (v0 : UH2, v1 : int32) : int32 =                                │

00:04:57 #10439 [Verbose] > │     match v0 with                                                            │

00:04:57 #10440 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:04:57 #10441 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:04:57 #10442 [Verbose] > │         method32(v3, v4)                                                     │

00:04:57 #10443 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:04:57 #10444 [Verbose] > │         v1                                                                   │

00:04:57 #10445 [Verbose] > │ and method33 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │

00:04:57 #10446 [Verbose] > │     match v1 with                                                            │

00:04:57 #10447 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:04:57 #10448 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:04:57 #10449 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:04:57 #10450 [Verbose] > │         method33(v0, v4, v5)                                                 │

00:04:57 #10451 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:04:57 #10452 [Verbose] > │         v2                                                                   │

00:04:57 #10453 [Verbose] > │ and method31 (v0 : UH2) : (string []) =                                      │

00:04:57 #10454 [Verbose] > │     let v1 : int32 = 0                                                       │

00:04:57 #10455 [Verbose] > │     let v2 : int32 = method32(v0, v1)                                        │

00:04:57 #10456 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │

00:04:57 #10457 [Verbose] > │     let v4 : int32 = 0                                                       │

00:04:57 #10458 [Verbose] > │     let v5 : int32 = method33(v3, v0, v4)                                    │

00:04:57 #10459 [Verbose] > │     v3                                                                       │

00:04:57 #10460 [Verbose] > │ and method35 (v0 : UH5, v1 : uint64) : uint64 =                              │

00:04:57 #10461 [Verbose] > │     match v0 with                                                            │

00:04:57 #10462 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:04:57 #10463 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:04:57 #10464 [Verbose] > │         method35(v4, v5)                                                     │

00:04:57 #10465 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:04:57 #10466 [Verbose] > │         v1                                                                   │

00:04:57 #10467 [Verbose] > │ and method36 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) :     │

00:04:57 #10468 [Verbose] > │ uint64 =                                                                     │

00:04:57 #10469 [Verbose] > │     match v1 with                                                            │

00:04:57 #10470 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:04:57 #10471 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:04:57 #10472 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:04:57 #10473 [Verbose] > │         method36(v0, v5, v6)                                                 │

00:04:57 #10474 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:04:57 #10475 [Verbose] > │         v2                                                                   │

00:04:57 #10476 [Verbose] > │ and method34 (v0 : UH5) : (struct (int32 * int64) []) =                      │

00:04:57 #10477 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:04:57 #10478 [Verbose] > │     let v2 : uint64 = method35(v0, v1)                                       │

00:04:57 #10479 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:04:57 #10480 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │

00:04:57 #10481 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:04:57 #10482 [Verbose] > │     let v5 : uint64 = method36(v3, v0, v4)                                   │

00:04:57 #10483 [Verbose] > │     v3                                                                       │

00:04:57 #10484 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 =                    │

00:04:57 #10485 [Verbose] > │     v1                                                                       │

00:04:57 #10486 [Verbose] > │ and closure0 () () : unit =                                                  │

00:04:57 #10487 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:04:57 #10488 [Verbose] > │     let v1 : string = nameof v0                                              │

00:04:57 #10489 [Verbose] > │     let v2 : string = ""                                                     │

00:04:57 #10490 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:57 #10491 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:57 #10492 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │

00:04:57 #10493 [Verbose] > │     System.Console.WriteLine v3                                              │

00:04:57 #10494 [Verbose] > │     let v4 : string = "a"                                                    │

00:04:57 #10495 [Verbose] > │     let v5 : string = "b"                                                    │

00:04:57 #10496 [Verbose] > │     let v6 : UH0 = UH0_0                                                     │

00:04:57 #10497 [Verbose] > │     let v7 : UH0 = UH0_1(v5, v5, v5, v6)                                     │

00:04:57 #10498 [Verbose] > │     let v8 : UH0 = UH0_1(v4, v4, v4, v7)                                     │

00:04:57 #10499 [Verbose] > │     let v9 : (struct (string * string * string) []) = method1(v8)            │

00:04:57 #10500 [Verbose] > │     let v10 : uint64 = System.Convert.ToUInt64 v9.Length                     │

00:04:57 #10501 [Verbose] > │     let v11 : (struct (string * string * string * (int64 [])) []) =          │

00:04:57 #10502 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:04:57 #10503 [Verbose] > │ (System.Convert.ToInt32(v10))                                                │

00:04:57 #10504 [Verbose] > │     let v12 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:04:57 #10505 [Verbose] > │     while method4(v10, v12) do                                               │

00:04:57 #10506 [Verbose] > │         let v14 : uint64 = v12.l0                                            │

00:04:57 #10507 [Verbose] > │         let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │

00:04:57 #10508 [Verbose] > │         let v18 : string = $"%A{struct (v15, v16)}"                          │

00:04:57 #10509 [Verbose] > │         System.Console.WriteLine v2                                          │

00:04:57 #10510 [Verbose] > │         let v19 : string = $"Solution: {v18}  "                              │

00:04:57 #10511 [Verbose] > │         System.Console.WriteLine v19                                         │

00:04:57 #10512 [Verbose] > │         let v20 : int32 = 0                                                  │

00:04:57 #10513 [Verbose] > │         let v21 : string = "A"                                               │

00:04:57 #10514 [Verbose] > │         let v22 : (struct (string * string) -> string) = closure1()          │

00:04:57 #10515 [Verbose] > │         let v23 : int32 = 1                                                  │

00:04:57 #10516 [Verbose] > │         let v24 : string = "B"                                               │

00:04:57 #10517 [Verbose] > │         let v25 : (struct (string * string) -> string) = closure2()          │

00:04:57 #10518 [Verbose] > │         let v26 : UH1 = UH1_0                                                │

00:04:57 #10519 [Verbose] > │         let v27 : UH1 = UH1_1(v23, v24, v25, v26)                            │

00:04:57 #10520 [Verbose] > │         let v28 : UH1 = UH1_1(v20, v21, v22, v27)                            │

00:04:57 #10521 [Verbose] > │         let v29 : (struct (int32 * string * (struct (string * string) ->     │

00:04:57 #10522 [Verbose] > │ string)) []) = method5(v28)                                                  │

00:04:57 #10523 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │

00:04:57 #10524 [Verbose] > │         let v31 : (struct (string * int64) []) = Array.zeroCreate<struct     │

00:04:57 #10525 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30))                              │

00:04:57 #10526 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #10527 [Verbose] > │         while method4(v30, v32) do                                           │

00:04:57 #10528 [Verbose] > │             let v34 : uint64 = v32.l0                                        │

00:04:57 #10529 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (struct (string *   │

00:04:57 #10530 [Verbose] > │ string) -> string)) = v29.[int v34]                                          │

00:04:57 #10531 [Verbose] > │             let v38 : unit option = None                                     │

00:04:57 #10532 [Verbose] > │             let mutable _v38 = v38                                           │

00:04:57 #10533 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:57 #10534 [Verbose] > │             ()                                                               │

00:04:57 #10535 [Verbose] > │             #endif                                                           │

00:04:57 #10536 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:57 #10537 [Verbose] > │             ()                                                               │

00:04:57 #10538 [Verbose] > │             #endif                                                           │

00:04:57 #10539 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:57 #10540 [Verbose] > │             ()                                                               │

00:04:57 #10541 [Verbose] > │             #endif                                                           │

00:04:57 #10542 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:57 #10543 [Verbose] > │             System.GC.Collect ()                                             │

00:04:57 #10544 [Verbose] > │             ()                                                               │

00:04:57 #10545 [Verbose] > │             #endif                                                           │

00:04:57 #10546 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:57 #10547 [Verbose] > │             System.GC.Collect ()                                             │

00:04:57 #10548 [Verbose] > │             ()                                                               │

00:04:57 #10549 [Verbose] > │             #endif                                                           │

00:04:57 #10550 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:57 #10551 [Verbose] > │             System.GC.Collect ()                                             │

00:04:57 #10552 [Verbose] > │             ()                                                               │

00:04:57 #10553 [Verbose] > │             #endif                                                           │

00:04:57 #10554 [Verbose] > │             |> fun x -> _v38 <- Some x                                       │

00:04:57 #10555 [Verbose] > │             _v38 |> Option.get                                               │

00:04:57 #10556 [Verbose] > │             let v39 : (unit -> System.Diagnostics.Stopwatch) =               │

00:04:57 #10557 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:04:57 #10558 [Verbose] > │             let v40 : System.Diagnostics.Stopwatch = v39 ()                  │

00:04:57 #10559 [Verbose] > │             v40.Start ()                                                     │

00:04:57 #10560 [Verbose] > │             let v41 : int64 = v40.ElapsedMilliseconds                        │

00:04:57 #10561 [Verbose] > │             let v42 : (int32 []) = Array.zeroCreate<int32> (2000001)         │

00:04:57 #10562 [Verbose] > │             let v43 : Mut1 = {l0 = 0} : Mut1                                 │

00:04:57 #10563 [Verbose] > │             while method8(v43) do                                            │

00:04:57 #10564 [Verbose] > │                 let v45 : int32 = v43.l0                                     │

00:04:57 #10565 [Verbose] > │                 v42.[int v45] <- v45                                         │

00:04:57 #10566 [Verbose] > │                 let v46 : int32 = v45 + 1                                    │

00:04:57 #10567 [Verbose] > │                 v43.l0 <- v46                                                │

00:04:57 #10568 [Verbose] > │                 ()                                                           │

00:04:57 #10569 [Verbose] > │             let v47 : ((int32 -> string) -> ((int32 []) -> (string []))) =   │

00:04:57 #10570 [Verbose] > │ Array.Parallel.map                                                           │

00:04:57 #10571 [Verbose] > │             let v48 : (int32 -> string) = closure3(v15, v16, v37)            │

00:04:57 #10572 [Verbose] > │             let v49 : ((int32 []) -> (string [])) = v47 v48                  │

00:04:57 #10573 [Verbose] > │             let v50 : (string []) = v49 v42                                  │

00:04:57 #10574 [Verbose] > │             let v51 : int32 = v50.Length                                     │

00:04:57 #10575 [Verbose] > │             let v52 : int32 = v51 - 1                                        │

00:04:57 #10576 [Verbose] > │             let v53 : string = v50.[int v52]                                 │

00:04:57 #10577 [Verbose] > │             let v54 : int64 = v40.ElapsedMilliseconds                        │

00:04:57 #10578 [Verbose] > │             let v55 : int64 = v54 - v41                                      │

00:04:57 #10579 [Verbose] > │             let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55}  "  │

00:04:57 #10580 [Verbose] > │             System.Console.WriteLine v56                                     │

00:04:57 #10581 [Verbose] > │             v31.[int v34] <- struct (v53, v55)                               │

00:04:57 #10582 [Verbose] > │             let v57 : uint64 = v34 + 1UL                                     │

00:04:57 #10583 [Verbose] > │             v32.l0 <- v57                                                    │

00:04:57 #10584 [Verbose] > │             ()                                                               │

00:04:57 #10585 [Verbose] > │         let v58 : uint64 = System.Convert.ToUInt64 v31.Length                │

00:04:57 #10586 [Verbose] > │         let v59 : (string []) = Array.zeroCreate<string>                     │

00:04:57 #10587 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:04:57 #10588 [Verbose] > │         let v60 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #10589 [Verbose] > │         while method4(v58, v60) do                                           │

00:04:57 #10590 [Verbose] > │             let v62 : uint64 = v60.l0                                        │

00:04:57 #10591 [Verbose] > │             let struct (v63 : string, v64 : int64) = v31.[int v62]           │

00:04:57 #10592 [Verbose] > │             v59.[int v62] <- v63                                             │

00:04:57 #10593 [Verbose] > │             let v65 : uint64 = v62 + 1UL                                     │

00:04:57 #10594 [Verbose] > │             v60.l0 <- v65                                                    │

00:04:57 #10595 [Verbose] > │             ()                                                               │

00:04:57 #10596 [Verbose] > │         let v66 : uint64 = System.Convert.ToUInt64 v59.Length                │

00:04:57 #10597 [Verbose] > │         let v67 : bool = v66 <= 1UL                                          │

00:04:57 #10598 [Verbose] > │         if v67 then                                                          │

00:04:57 #10599 [Verbose] > │             ()                                                               │

00:04:57 #10600 [Verbose] > │         else                                                                 │

00:04:57 #10601 [Verbose] > │             let v68 : string = v59.[int 0UL]                                 │

00:04:57 #10602 [Verbose] > │             let v69 : uint64 = 0UL                                           │

00:04:57 #10603 [Verbose] > │             let v70 : bool = method9(v68, v59, v69)                          │

00:04:57 #10604 [Verbose] > │             if v70 then                                                      │

00:04:57 #10605 [Verbose] > │                 ()                                                           │

00:04:57 #10606 [Verbose] > │             else                                                             │

00:04:57 #10607 [Verbose] > │                 let v71 : string = $"Challenge error: {v59}"                 │

00:04:57 #10608 [Verbose] > │                 failwith<unit> v71                                           │

00:04:57 #10609 [Verbose] > │         let v72 : string = $"%A{v17}"                                        │

00:04:57 #10610 [Verbose] > │         let v73 : (string []) = Array.zeroCreate<string>                     │

00:04:57 #10611 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:04:57 #10612 [Verbose] > │         let v74 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #10613 [Verbose] > │         while method4(v58, v74) do                                           │

00:04:57 #10614 [Verbose] > │             let v76 : uint64 = v74.l0                                        │

00:04:57 #10615 [Verbose] > │             let struct (v77 : string, v78 : int64) = v31.[int v76]           │

00:04:57 #10616 [Verbose] > │             v73.[int v76] <- v77                                             │

00:04:57 #10617 [Verbose] > │             let v79 : uint64 = v76 + 1UL                                     │

00:04:57 #10618 [Verbose] > │             v74.l0 <- v79                                                    │

00:04:57 #10619 [Verbose] > │             ()                                                               │

00:04:57 #10620 [Verbose] > │         let v80 : string = v73.[int 0UL]                                     │

00:04:57 #10621 [Verbose] > │         let v81 : string = $"%A{v80}"                                        │

00:04:57 #10622 [Verbose] > │         let v82 : (int64 []) = Array.zeroCreate<int64>                       │

00:04:57 #10623 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:04:57 #10624 [Verbose] > │         let v83 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #10625 [Verbose] > │         while method4(v58, v83) do                                           │

00:04:57 #10626 [Verbose] > │             let v85 : uint64 = v83.l0                                        │

00:04:57 #10627 [Verbose] > │             let struct (v86 : string, v87 : int64) = v31.[int v85]           │

00:04:57 #10628 [Verbose] > │             v82.[int v85] <- v87                                             │

00:04:57 #10629 [Verbose] > │             let v88 : uint64 = v85 + 1UL                                     │

00:04:57 #10630 [Verbose] > │             v83.l0 <- v88                                                    │

00:04:57 #10631 [Verbose] > │             ()                                                               │

00:04:57 #10632 [Verbose] > │         v11.[int v14] <- struct (v72, v18, v81, v82)                         │

00:04:57 #10633 [Verbose] > │         let v89 : uint64 = v14 + 1UL                                         │

00:04:57 #10634 [Verbose] > │         v12.l0 <- v89                                                        │

00:04:57 #10635 [Verbose] > │         ()                                                                   │

00:04:57 #10636 [Verbose] > │     let v90 : uint64 = System.Convert.ToUInt64 v11.Length                    │

00:04:57 #10637 [Verbose] > │     let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │

00:04:57 #10638 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:04:57 #10639 [Verbose] > │     let v92 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:04:57 #10640 [Verbose] > │     while method4(v90, v92) do                                               │

00:04:57 #10641 [Verbose] > │         let v94 : uint64 = v92.l0                                            │

00:04:57 #10642 [Verbose] > │         let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │

00:04:57 #10643 [Verbose] > │ ])) = v11.[int v94]                                                          │

00:04:57 #10644 [Verbose] > │         let v99 : uint64 = System.Convert.ToUInt64 v98.Length                │

00:04:57 #10645 [Verbose] > │         let v100 : UH3 = UH3_0                                               │

00:04:57 #10646 [Verbose] > │         let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2              │

00:04:57 #10647 [Verbose] > │         while method10(v99, v101) do                                         │

00:04:57 #10648 [Verbose] > │             let v103 : uint64 = v101.l0                                      │

00:04:57 #10649 [Verbose] > │             let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2         │

00:04:57 #10650 [Verbose] > │             let v106 : int64 = v98.[int v103]                                │

00:04:57 #10651 [Verbose] > │             let v107 : int64 = v105 + 1L                                     │

00:04:57 #10652 [Verbose] > │             let v108 : uint64 = v103 + 1UL                                   │

00:04:57 #10653 [Verbose] > │             let v109 : UH3 = UH3_1(v105, v106, v104)                         │

00:04:57 #10654 [Verbose] > │             v101.l0 <- v108                                                  │

00:04:57 #10655 [Verbose] > │             v101.l1 <- v109                                                  │

00:04:57 #10656 [Verbose] > │             v101.l2 <- v107                                                  │

00:04:57 #10657 [Verbose] > │             ()                                                               │

00:04:57 #10658 [Verbose] > │         let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2             │

00:04:57 #10659 [Verbose] > │         let v112 : UH3 = UH3_0                                               │

00:04:57 #10660 [Verbose] > │         let v113 : UH3 = method11(v110, v112)                                │

00:04:57 #10661 [Verbose] > │         let v114 : (struct (int64 * int64) []) = method12(v113)              │

00:04:57 #10662 [Verbose] > │         let v115 : int32 = v114.Length                                       │

00:04:57 #10663 [Verbose] > │         let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:04:57 #10664 [Verbose] > │ (int64 * int64)> (v115)                                                      │

00:04:57 #10665 [Verbose] > │         let v117 : Mut1 = {l0 = 0} : Mut1                                    │

00:04:57 #10666 [Verbose] > │         while method15(v115, v117) do                                        │

00:04:57 #10667 [Verbose] > │             let v119 : int32 = v117.l0                                       │

00:04:57 #10668 [Verbose] > │             let struct (v120 : int64, v121 : int64) = v114.[int v119]        │

00:04:57 #10669 [Verbose] > │             let v122 : int64 = v120 + 1L                                     │

00:04:57 #10670 [Verbose] > │             v116.[int v119] <- struct (v122, v121)                           │

00:04:57 #10671 [Verbose] > │             let v123 : int32 = v119 + 1                                      │

00:04:57 #10672 [Verbose] > │             v117.l0 <- v123                                                  │

00:04:57 #10673 [Verbose] > │             ()                                                               │

00:04:57 #10674 [Verbose] > │         let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:04:57 #10675 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:04:57 #10676 [Verbose] > │         let v125 : (struct (int64 * int64) -> int64) = closure4()            │

00:04:57 #10677 [Verbose] > │         let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:04:57 #10678 [Verbose] > │ ])) = v124 v125                                                              │

00:04:57 #10679 [Verbose] > │         let v127 : (struct (int64 * int64) []) = v126 v116                   │

00:04:57 #10680 [Verbose] > │         let struct (v128 : int64, v129 : int64) = v127.[int 0]               │

00:04:57 #10681 [Verbose] > │         let v130 : string = $"%A{struct (v128, v129)}"                       │

00:04:57 #10682 [Verbose] > │         let v131 : bool = v95 = v97                                          │

00:04:57 #10683 [Verbose] > │         let v136 : US0 =                                                     │

00:04:57 #10684 [Verbose] > │             if v131 then                                                     │

00:04:57 #10685 [Verbose] > │                 let v132 : System.ConsoleColor =                             │

00:04:57 #10686 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:04:57 #10687 [Verbose] > │                 US0_0(v132)                                                  │

00:04:57 #10688 [Verbose] > │             else                                                             │

00:04:57 #10689 [Verbose] > │                 let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:04:57 #10690 [Verbose] > │                 US0_0(v134)                                                  │

00:04:57 #10691 [Verbose] > │         let v137 : UH2 = UH2_0                                               │

00:04:57 #10692 [Verbose] > │         let v138 : UH2 = UH2_1(v130, v137)                                   │

00:04:57 #10693 [Verbose] > │         let v139 : UH2 = UH2_1(v97, v138)                                    │

00:04:57 #10694 [Verbose] > │         let v140 : UH2 = UH2_1(v95, v139)                                    │

00:04:57 #10695 [Verbose] > │         let v141 : UH2 = UH2_1(v96, v140)                                    │

00:04:57 #10696 [Verbose] > │         v91.[int v94] <- struct (v141, v136)                                 │

00:04:57 #10697 [Verbose] > │         let v142 : uint64 = v94 + 1UL                                        │

00:04:57 #10698 [Verbose] > │         v92.l0 <- v142                                                       │

00:04:57 #10699 [Verbose] > │         ()                                                                   │

00:04:57 #10700 [Verbose] > │     let v143 : string = "Input"                                              │

00:04:57 #10701 [Verbose] > │     let v144 : string = "Expected"                                           │

00:04:57 #10702 [Verbose] > │     let v145 : string = "Result"                                             │

00:04:57 #10703 [Verbose] > │     let v146 : string = "Best"                                               │

00:04:57 #10704 [Verbose] > │     let v147 : UH2 = UH2_0                                                   │

00:04:57 #10705 [Verbose] > │     let v148 : UH2 = UH2_1(v146, v147)                                       │

00:04:57 #10706 [Verbose] > │     let v149 : UH2 = UH2_1(v145, v148)                                       │

00:04:57 #10707 [Verbose] > │     let v150 : UH2 = UH2_1(v144, v149)                                       │

00:04:57 #10708 [Verbose] > │     let v151 : UH2 = UH2_1(v143, v150)                                       │

00:04:57 #10709 [Verbose] > │     let v152 : US0 = US0_1                                                   │

00:04:57 #10710 [Verbose] > │     let v153 : string = "---"                                                │

00:04:57 #10711 [Verbose] > │     let v154 : UH2 = UH2_0                                                   │

00:04:57 #10712 [Verbose] > │     let v155 : UH2 = UH2_1(v153, v154)                                       │

00:04:57 #10713 [Verbose] > │     let v156 : UH2 = UH2_1(v153, v155)                                       │

00:04:57 #10714 [Verbose] > │     let v157 : UH2 = UH2_1(v153, v156)                                       │

00:04:57 #10715 [Verbose] > │     let v158 : UH2 = UH2_1(v153, v157)                                       │

00:04:57 #10716 [Verbose] > │     let v159 : US0 = US0_1                                                   │

00:04:57 #10717 [Verbose] > │     let v160 : UH4 = UH4_0                                                   │

00:04:57 #10718 [Verbose] > │     let v161 : UH4 = UH4_1(v158, v159, v160)                                 │

00:04:57 #10719 [Verbose] > │     let v162 : UH4 = UH4_1(v151, v152, v161)                                 │

00:04:57 #10720 [Verbose] > │     let v163 : (struct (UH2 * US0) []) = method16(v162)                      │

00:04:57 #10721 [Verbose] > │     let v164 : uint64 = System.Convert.ToUInt64 v163.Length                  │

00:04:57 #10722 [Verbose] > │     let v165 : uint64 = System.Convert.ToUInt64 v91.Length                   │

00:04:57 #10723 [Verbose] > │     let v166 : uint64 = v164 + v165                                          │

00:04:57 #10724 [Verbose] > │     let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:04:57 #10725 [Verbose] > │ US0)> (System.Convert.ToInt32(v166))                                         │

00:04:57 #10726 [Verbose] > │     let v168 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10727 [Verbose] > │     while method4(v166, v168) do                                             │

00:04:57 #10728 [Verbose] > │         let v170 : uint64 = v168.l0                                          │

00:04:57 #10729 [Verbose] > │         let v171 : bool = v170 < v164                                        │

00:04:57 #10730 [Verbose] > │         let struct (v177 : UH2, v178 : US0) =                                │

00:04:57 #10731 [Verbose] > │             if v171 then                                                     │

00:04:57 #10732 [Verbose] > │                 let struct (v172 : UH2, v173 : US0) = v163.[int v170]        │

00:04:57 #10733 [Verbose] > │                 struct (v172, v173)                                          │

00:04:57 #10734 [Verbose] > │             else                                                             │

00:04:57 #10735 [Verbose] > │                 let v174 : uint64 = v170 - v164                              │

00:04:57 #10736 [Verbose] > │                 let struct (v175 : UH2, v176 : US0) = v91.[int v174]         │

00:04:57 #10737 [Verbose] > │                 struct (v175, v176)                                          │

00:04:57 #10738 [Verbose] > │         v167.[int v170] <- struct (v177, v178)                               │

00:04:57 #10739 [Verbose] > │         let v179 : uint64 = v170 + 1UL                                       │

00:04:57 #10740 [Verbose] > │         v168.l0 <- v179                                                      │

00:04:57 #10741 [Verbose] > │         ()                                                                   │

00:04:57 #10742 [Verbose] > │     let v180 : uint64 = System.Convert.ToUInt64 v167.Length                  │

00:04:57 #10743 [Verbose] > │     let v181 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:04:57 #10744 [Verbose] > │ (System.Convert.ToInt32(v180))                                               │

00:04:57 #10745 [Verbose] > │     let v182 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10746 [Verbose] > │     while method4(v180, v182) do                                             │

00:04:57 #10747 [Verbose] > │         let v184 : uint64 = v182.l0                                          │

00:04:57 #10748 [Verbose] > │         let struct (v185 : UH2, v186 : US0) = v167.[int v184]                │

00:04:57 #10749 [Verbose] > │         let v187 : (string []) = method19(v185)                              │

00:04:57 #10750 [Verbose] > │         v181.[int v184] <- v187                                              │

00:04:57 #10751 [Verbose] > │         let v188 : uint64 = v184 + 1UL                                       │

00:04:57 #10752 [Verbose] > │         v182.l0 <- v188                                                      │

00:04:57 #10753 [Verbose] > │         ()                                                                   │

00:04:57 #10754 [Verbose] > │     let v189 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:04:57 #10755 [Verbose] > │     let v190 : ((string []) []) = v189 v181                                  │

00:04:57 #10756 [Verbose] > │     let v191 : uint64 = System.Convert.ToUInt64 v190.Length                  │

00:04:57 #10757 [Verbose] > │     let v192 : (int64 []) = Array.zeroCreate<int64>                          │

00:04:57 #10758 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │

00:04:57 #10759 [Verbose] > │     let v193 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10760 [Verbose] > │     while method4(v191, v193) do                                             │

00:04:57 #10761 [Verbose] > │         let v195 : uint64 = v193.l0                                          │

00:04:57 #10762 [Verbose] > │         let v196 : (string []) = v190.[int v195]                             │

00:04:57 #10763 [Verbose] > │         let v197 : uint64 = System.Convert.ToUInt64 v196.Length              │

00:04:57 #10764 [Verbose] > │         let v198 : (int64 []) = Array.zeroCreate<int64>                      │

00:04:57 #10765 [Verbose] > │ (System.Convert.ToInt32(v197))                                               │

00:04:57 #10766 [Verbose] > │         let v199 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:04:57 #10767 [Verbose] > │         while method4(v197, v199) do                                         │

00:04:57 #10768 [Verbose] > │             let v201 : uint64 = v199.l0                                      │

00:04:57 #10769 [Verbose] > │             let v202 : string = v196.[int v201]                              │

00:04:57 #10770 [Verbose] > │             let v203 : int64 = System.Convert.ToInt64 v202.Length            │

00:04:57 #10771 [Verbose] > │             v198.[int v201] <- v203                                          │

00:04:57 #10772 [Verbose] > │             let v204 : uint64 = v201 + 1UL                                   │

00:04:57 #10773 [Verbose] > │             v199.l0 <- v204                                                  │

00:04:57 #10774 [Verbose] > │             ()                                                               │

00:04:57 #10775 [Verbose] > │         let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:04:57 #10776 [Verbose] > │         let v206 : (int64 []) = v205 v198                                    │

00:04:57 #10777 [Verbose] > │         let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:04:57 #10778 [Verbose] > │         let v208 : ((int64 []) -> int64 option) = v207 0                     │

00:04:57 #10779 [Verbose] > │         let v209 : int64 option = v208 v206                                  │

00:04:57 #10780 [Verbose] > │         let v210 : (int64 -> US1) = method22()                               │

00:04:57 #10781 [Verbose] > │         let v211 : US1 = US1_1                                               │

00:04:57 #10782 [Verbose] > │         let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │

00:04:57 #10783 [Verbose] > │         let v215 : int64 =                                                   │

00:04:57 #10784 [Verbose] > │             match v212 with                                                  │

00:04:57 #10785 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:04:57 #10786 [Verbose] > │                 0L                                                           │

00:04:57 #10787 [Verbose] > │             | US1_0(v213) -> (* Some *)                                      │

00:04:57 #10788 [Verbose] > │                 v213                                                         │

00:04:57 #10789 [Verbose] > │         v192.[int v195] <- v215                                              │

00:04:57 #10790 [Verbose] > │         let v216 : uint64 = v195 + 1UL                                       │

00:04:57 #10791 [Verbose] > │         v193.l0 <- v216                                                      │

00:04:57 #10792 [Verbose] > │         ()                                                                   │

00:04:57 #10793 [Verbose] > │     let v217 : uint64 = System.Convert.ToUInt64 v192.Length                  │

00:04:57 #10794 [Verbose] > │     let v218 : UH5 = UH5_0                                                   │

00:04:57 #10795 [Verbose] > │     let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3                   │

00:04:57 #10796 [Verbose] > │     while method23(v217, v219) do                                            │

00:04:57 #10797 [Verbose] > │         let v221 : uint64 = v219.l0                                          │

00:04:57 #10798 [Verbose] > │         let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2             │

00:04:57 #10799 [Verbose] > │         let v224 : int64 = v192.[int v221]                                   │

00:04:57 #10800 [Verbose] > │         let v225 : int32 = v223 + 1                                          │

00:04:57 #10801 [Verbose] > │         let v226 : uint64 = v221 + 1UL                                       │

00:04:57 #10802 [Verbose] > │         let v227 : UH5 = UH5_1(v223, v224, v222)                             │

00:04:57 #10803 [Verbose] > │         v219.l0 <- v226                                                      │

00:04:57 #10804 [Verbose] > │         v219.l1 <- v227                                                      │

00:04:57 #10805 [Verbose] > │         v219.l2 <- v225                                                      │

00:04:57 #10806 [Verbose] > │         ()                                                                   │

00:04:57 #10807 [Verbose] > │     let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2                 │

00:04:57 #10808 [Verbose] > │     let v230 : UH5 = UH5_0                                                   │

00:04:57 #10809 [Verbose] > │     let v231 : UH5 = method24(v228, v230)                                    │

00:04:57 #10810 [Verbose] > │     let v232 : (struct (int32 * int64) []) = method25(v231)                  │

00:04:57 #10811 [Verbose] > │     let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │

00:04:57 #10812 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:04:57 #10813 [Verbose] > │     let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │

00:04:57 #10814 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180))                          │

00:04:57 #10815 [Verbose] > │     let v235 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10816 [Verbose] > │     while method4(v180, v235) do                                             │

00:04:57 #10817 [Verbose] > │         let v237 : uint64 = v235.l0                                          │

00:04:57 #10818 [Verbose] > │         let struct (v238 : UH2, v239 : US0) = v167.[int v237]                │

00:04:57 #10819 [Verbose] > │         let v240 : UH6 = UH6_0                                               │

00:04:57 #10820 [Verbose] > │         let v241 : int32 = 0                                                 │

00:04:57 #10821 [Verbose] > │         let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241)   │

00:04:57 #10822 [Verbose] > │         let v244 : UH6 = UH6_0                                               │

00:04:57 #10823 [Verbose] > │         let v245 : UH6 = method29(v242, v244)                                │

00:04:57 #10824 [Verbose] > │         let v246 : UH2 = UH2_0                                               │

00:04:57 #10825 [Verbose] > │         let v247 : UH2 = method30(v233, v245, v246)                          │

00:04:57 #10826 [Verbose] > │         let v248 : (string []) = method31(v247)                              │

00:04:57 #10827 [Verbose] > │         v234.[int v237] <- struct (v248, v239)                               │

00:04:57 #10828 [Verbose] > │         let v249 : uint64 = v237 + 1UL                                       │

00:04:57 #10829 [Verbose] > │         v235.l0 <- v249                                                      │

00:04:57 #10830 [Verbose] > │         ()                                                                   │

00:04:57 #10831 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:57 #10832 [Verbose] > │     let v250 : uint64 = System.Convert.ToUInt64 v234.Length                  │

00:04:57 #10833 [Verbose] > │     let v251 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10834 [Verbose] > │     while method4(v250, v251) do                                             │

00:04:57 #10835 [Verbose] > │         let v253 : uint64 = v251.l0                                          │

00:04:57 #10836 [Verbose] > │         let struct (v254 : (string []), v255 : US0) = v234.[int v253]        │

00:04:57 #10837 [Verbose] > │         match v255 with                                                      │

00:04:57 #10838 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:04:57 #10839 [Verbose] > │             let v258 : unit option = None                                    │

00:04:57 #10840 [Verbose] > │             let mutable _v258 = v258                                         │

00:04:57 #10841 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:57 #10842 [Verbose] > │             ()                                                               │

00:04:57 #10843 [Verbose] > │             #endif                                                           │

00:04:57 #10844 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:57 #10845 [Verbose] > │             ()                                                               │

00:04:57 #10846 [Verbose] > │             #endif                                                           │

00:04:57 #10847 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:57 #10848 [Verbose] > │             ()                                                               │

00:04:57 #10849 [Verbose] > │             #endif                                                           │

00:04:57 #10850 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:57 #10851 [Verbose] > │             System.Console.ResetColor ()                                     │

00:04:57 #10852 [Verbose] > │             ()                                                               │

00:04:57 #10853 [Verbose] > │             #endif                                                           │

00:04:57 #10854 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:57 #10855 [Verbose] > │             System.Console.ResetColor ()                                     │

00:04:57 #10856 [Verbose] > │             ()                                                               │

00:04:57 #10857 [Verbose] > │             #endif                                                           │

00:04:57 #10858 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:57 #10859 [Verbose] > │             System.Console.ResetColor ()                                     │

00:04:57 #10860 [Verbose] > │             ()                                                               │

00:04:57 #10861 [Verbose] > │             #endif                                                           │

00:04:57 #10862 [Verbose] > │             |> fun x -> _v258 <- Some x                                      │

00:04:57 #10863 [Verbose] > │             _v258 |> Option.get                                              │

00:04:57 #10864 [Verbose] > │             ()                                                               │

00:04:57 #10865 [Verbose] > │         | US0_0(v256) -> (* Some *)                                          │

00:04:57 #10866 [Verbose] > │             let v257 : unit option = None                                    │

00:04:57 #10867 [Verbose] > │             let mutable _v257 = v257                                         │

00:04:57 #10868 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:57 #10869 [Verbose] > │             ()                                                               │

00:04:57 #10870 [Verbose] > │             #endif                                                           │

00:04:57 #10871 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:57 #10872 [Verbose] > │             ()                                                               │

00:04:57 #10873 [Verbose] > │             #endif                                                           │

00:04:57 #10874 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:57 #10875 [Verbose] > │             ()                                                               │

00:04:57 #10876 [Verbose] > │             #endif                                                           │

00:04:57 #10877 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:57 #10878 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:04:57 #10879 [Verbose] > │             ()                                                               │

00:04:57 #10880 [Verbose] > │             #endif                                                           │

00:04:57 #10881 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:57 #10882 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:04:57 #10883 [Verbose] > │             ()                                                               │

00:04:57 #10884 [Verbose] > │             #endif                                                           │

00:04:57 #10885 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:57 #10886 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:04:57 #10887 [Verbose] > │             ()                                                               │

00:04:57 #10888 [Verbose] > │             #endif                                                           │

00:04:57 #10889 [Verbose] > │             |> fun x -> _v257 <- Some x                                      │

00:04:57 #10890 [Verbose] > │             _v257 |> Option.get                                              │

00:04:57 #10891 [Verbose] > │             ()                                                               │

00:04:57 #10892 [Verbose] > │         let v259 : string = "\t| "                                           │

00:04:57 #10893 [Verbose] > │         let v260 : string = System.String.Join (v259, v254)                  │

00:04:57 #10894 [Verbose] > │         System.Console.WriteLine v260                                        │

00:04:57 #10895 [Verbose] > │         let v261 : unit option = None                                        │

00:04:57 #10896 [Verbose] > │         let mutable _v261 = v261                                             │

00:04:57 #10897 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:04:57 #10898 [Verbose] > │         ()                                                                   │

00:04:57 #10899 [Verbose] > │         #endif                                                               │

00:04:57 #10900 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:04:57 #10901 [Verbose] > │         ()                                                                   │

00:04:57 #10902 [Verbose] > │         #endif                                                               │

00:04:57 #10903 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:04:57 #10904 [Verbose] > │         ()                                                                   │

00:04:57 #10905 [Verbose] > │         #endif                                                               │

00:04:57 #10906 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:04:57 #10907 [Verbose] > │         System.Console.ResetColor ()                                         │

00:04:57 #10908 [Verbose] > │         ()                                                                   │

00:04:57 #10909 [Verbose] > │         #endif                                                               │

00:04:57 #10910 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:04:57 #10911 [Verbose] > │         System.Console.ResetColor ()                                         │

00:04:57 #10912 [Verbose] > │         ()                                                                   │

00:04:57 #10913 [Verbose] > │         #endif                                                               │

00:04:57 #10914 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:04:57 #10915 [Verbose] > │         System.Console.ResetColor ()                                         │

00:04:57 #10916 [Verbose] > │         ()                                                                   │

00:04:57 #10917 [Verbose] > │         #endif                                                               │

00:04:57 #10918 [Verbose] > │         |> fun x -> _v261 <- Some x                                          │

00:04:57 #10919 [Verbose] > │         _v261 |> Option.get                                                  │

00:04:57 #10920 [Verbose] > │         let v262 : uint64 = v253 + 1UL                                       │

00:04:57 #10921 [Verbose] > │         v251.l0 <- v262                                                      │

00:04:57 #10922 [Verbose] > │         ()                                                                   │

00:04:57 #10923 [Verbose] > │     let v263 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:04:57 #10924 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:04:57 #10925 [Verbose] > │     let v264 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10926 [Verbose] > │     while method4(v90, v264) do                                              │

00:04:57 #10927 [Verbose] > │         let v266 : uint64 = v264.l0                                          │

00:04:57 #10928 [Verbose] > │         let struct (v267 : string, v268 : string, v269 : string, v270 :      │

00:04:57 #10929 [Verbose] > │ (int64 [])) = v11.[int v266]                                                 │

00:04:57 #10930 [Verbose] > │         let v271 : (int64 -> float) = float                                  │

00:04:57 #10931 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v270.Length              │

00:04:57 #10932 [Verbose] > │         let v273 : (float []) = Array.zeroCreate<float>                      │

00:04:57 #10933 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │

00:04:57 #10934 [Verbose] > │         let v274 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:04:57 #10935 [Verbose] > │         while method4(v272, v274) do                                         │

00:04:57 #10936 [Verbose] > │             let v276 : uint64 = v274.l0                                      │

00:04:57 #10937 [Verbose] > │             let v277 : int64 = v270.[int v276]                               │

00:04:57 #10938 [Verbose] > │             let v278 : float = v271 v277                                     │

00:04:57 #10939 [Verbose] > │             v273.[int v276] <- v278                                          │

00:04:57 #10940 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │

00:04:57 #10941 [Verbose] > │             v274.l0 <- v279                                                  │

00:04:57 #10942 [Verbose] > │             ()                                                               │

00:04:57 #10943 [Verbose] > │         v263.[int v266] <- v273                                              │

00:04:57 #10944 [Verbose] > │         let v280 : uint64 = v266 + 1UL                                       │

00:04:57 #10945 [Verbose] > │         v264.l0 <- v280                                                      │

00:04:57 #10946 [Verbose] > │         ()                                                                   │

00:04:57 #10947 [Verbose] > │     let v281 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:04:57 #10948 [Verbose] > │     let v282 : ((float []) []) = v281 v263                                   │

00:04:57 #10949 [Verbose] > │     let v283 : uint64 = System.Convert.ToUInt64 v282.Length                  │

00:04:57 #10950 [Verbose] > │     let v284 : (float []) = Array.zeroCreate<float>                          │

00:04:57 #10951 [Verbose] > │ (System.Convert.ToInt32(v283))                                               │

00:04:57 #10952 [Verbose] > │     let v285 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10953 [Verbose] > │     while method4(v283, v285) do                                             │

00:04:57 #10954 [Verbose] > │         let v287 : uint64 = v285.l0                                          │

00:04:57 #10955 [Verbose] > │         let v288 : (float []) = v282.[int v287]                              │

00:04:57 #10956 [Verbose] > │         let v289 : ((float []) -> float) = Array.average                     │

00:04:57 #10957 [Verbose] > │         let v290 : float = v289 v288                                         │

00:04:57 #10958 [Verbose] > │         v284.[int v287] <- v290                                              │

00:04:57 #10959 [Verbose] > │         let v291 : uint64 = v287 + 1UL                                       │

00:04:57 #10960 [Verbose] > │         v285.l0 <- v291                                                      │

00:04:57 #10961 [Verbose] > │         ()                                                                   │

00:04:57 #10962 [Verbose] > │     let v292 : (float -> int64) = int64                                      │

00:04:57 #10963 [Verbose] > │     let v293 : uint64 = System.Convert.ToUInt64 v284.Length                  │

00:04:57 #10964 [Verbose] > │     let v294 : (int64 []) = Array.zeroCreate<int64>                          │

00:04:57 #10965 [Verbose] > │ (System.Convert.ToInt32(v293))                                               │

00:04:57 #10966 [Verbose] > │     let v295 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #10967 [Verbose] > │     while method4(v293, v295) do                                             │

00:04:57 #10968 [Verbose] > │         let v297 : uint64 = v295.l0                                          │

00:04:57 #10969 [Verbose] > │         let v298 : float = v284.[int v297]                                   │

00:04:57 #10970 [Verbose] > │         let v299 : int64 = v292 v298                                         │

00:04:57 #10971 [Verbose] > │         v294.[int v297] <- v299                                              │

00:04:57 #10972 [Verbose] > │         let v300 : uint64 = v297 + 1UL                                       │

00:04:57 #10973 [Verbose] > │         v295.l0 <- v300                                                      │

00:04:57 #10974 [Verbose] > │         ()                                                                   │

00:04:57 #10975 [Verbose] > │     let v301 : uint64 = System.Convert.ToUInt64 v294.Length                  │

00:04:57 #10976 [Verbose] > │     let v302 : UH5 = UH5_0                                                   │

00:04:57 #10977 [Verbose] > │     let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3                   │

00:04:57 #10978 [Verbose] > │     while method23(v301, v303) do                                            │

00:04:57 #10979 [Verbose] > │         let v305 : uint64 = v303.l0                                          │

00:04:57 #10980 [Verbose] > │         let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2             │

00:04:57 #10981 [Verbose] > │         let v308 : int64 = v294.[int v305]                                   │

00:04:57 #10982 [Verbose] > │         let v309 : int32 = v307 + 1                                          │

00:04:57 #10983 [Verbose] > │         let v310 : uint64 = v305 + 1UL                                       │

00:04:57 #10984 [Verbose] > │         let v311 : UH5 = UH5_1(v307, v308, v306)                             │

00:04:57 #10985 [Verbose] > │         v303.l0 <- v310                                                      │

00:04:57 #10986 [Verbose] > │         v303.l1 <- v311                                                      │

00:04:57 #10987 [Verbose] > │         v303.l2 <- v309                                                      │

00:04:57 #10988 [Verbose] > │         ()                                                                   │

00:04:57 #10989 [Verbose] > │     let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2                 │

00:04:57 #10990 [Verbose] > │     let v314 : UH5 = UH5_0                                                   │

00:04:57 #10991 [Verbose] > │     let v315 : UH5 = method24(v312, v314)                                    │

00:04:57 #10992 [Verbose] > │     let v316 : (struct (int32 * int64) []) = method34(v315)                  │

00:04:57 #10993 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:57 #10994 [Verbose] > │     let v317 : string = "Average Ranking  "                                  │

00:04:57 #10995 [Verbose] > │     System.Console.WriteLine v317                                            │

00:04:57 #10996 [Verbose] > │     let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:04:57 #10997 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:04:57 #10998 [Verbose] > │     let v319 : (struct (int32 * int64) -> int64) = closure6()                │

00:04:57 #10999 [Verbose] > │     let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:04:57 #11000 [Verbose] > │ = v318 v319                                                                  │

00:04:57 #11001 [Verbose] > │     let v321 : (struct (int32 * int64) []) = v320 v316                       │

00:04:57 #11002 [Verbose] > │     let v322 : uint64 = System.Convert.ToUInt64 v321.Length                  │

00:04:57 #11003 [Verbose] > │     let v323 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:57 #11004 [Verbose] > │     while method4(v322, v323) do                                             │

00:04:57 #11005 [Verbose] > │         let v325 : uint64 = v323.l0                                          │

00:04:57 #11006 [Verbose] > │         let struct (v326 : int32, v327 : int64) = v321.[int v325]            │

00:04:57 #11007 [Verbose] > │         let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │

00:04:57 #11008 [Verbose] > │ "                                                                            │

00:04:57 #11009 [Verbose] > │         System.Console.WriteLine v328                                        │

00:04:57 #11010 [Verbose] > │         let v329 : uint64 = v325 + 1UL                                       │

00:04:57 #11011 [Verbose] > │         v323.l0 <- v329                                                      │

00:04:57 #11012 [Verbose] > │         ()                                                                   │

00:04:57 #11013 [Verbose] > │     ()                                                                       │

00:04:57 #11014 [Verbose] > │ and method0 () : unit =                                                      │

00:04:57 #11015 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:04:57 #11016 [Verbose] > │     let v1 : string = nameof v0                                              │

00:04:57 #11017 [Verbose] > │     let v2 : string = ""                                                     │

00:04:57 #11018 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:57 #11019 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:57 #11020 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │

00:04:57 #11021 [Verbose] > │     System.Console.WriteLine v3                                              │

00:04:57 #11022 [Verbose] > │     let v4 : string = "a"                                                    │

00:04:57 #11023 [Verbose] > │     let v5 : string = "b"                                                    │

00:04:57 #11024 [Verbose] > │     let v6 : UH0 = UH0_0                                                     │

00:04:57 #11025 [Verbose] > │     let v7 : UH0 = UH0_1(v5, v5, v5, v6)                                     │

00:04:57 #11026 [Verbose] > │     let v8 : UH0 = UH0_1(v4, v4, v4, v7)                                     │

00:04:57 #11027 [Verbose] > │     let v9 : (struct (string * string * string) []) = method1(v8)            │

00:04:57 #11028 [Verbose] > │     let v10 : uint64 = System.Convert.ToUInt64 v9.Length                     │

00:04:57 #11029 [Verbose] > │     let v11 : (struct (string * string * string * (int64 [])) []) =          │

00:04:57 #11030 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:04:57 #11031 [Verbose] > │ (System.Convert.ToInt32(v10))                                                │

00:04:57 #11032 [Verbose] > │     let v12 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:04:57 #11033 [Verbose] > │     while method4(v10, v12) do                                               │

00:04:57 #11034 [Verbose] > │         let v14 : uint64 = v12.l0                                            │

00:04:57 #11035 [Verbose] > │         let struct (v15 : string, v16 : string, v17 : string) = v9.[int v14] │

00:04:57 #11036 [Verbose] > │         let v18 : string = $"%A{struct (v15, v16)}"                          │

00:04:57 #11037 [Verbose] > │         System.Console.WriteLine v2                                          │

00:04:57 #11038 [Verbose] > │         let v19 : string = $"Solution: {v18}  "                              │

00:04:57 #11039 [Verbose] > │         System.Console.WriteLine v19                                         │

00:04:57 #11040 [Verbose] > │         let v20 : int32 = 0                                                  │

00:04:57 #11041 [Verbose] > │         let v21 : string = "A"                                               │

00:04:57 #11042 [Verbose] > │         let v22 : (struct (string * string) -> string) = closure1()          │

00:04:57 #11043 [Verbose] > │         let v23 : int32 = 1                                                  │

00:04:57 #11044 [Verbose] > │         let v24 : string = "B"                                               │

00:04:57 #11045 [Verbose] > │         let v25 : (struct (string * string) -> string) = closure2()          │

00:04:57 #11046 [Verbose] > │         let v26 : UH1 = UH1_0                                                │

00:04:57 #11047 [Verbose] > │         let v27 : UH1 = UH1_1(v23, v24, v25, v26)                            │

00:04:57 #11048 [Verbose] > │         let v28 : UH1 = UH1_1(v20, v21, v22, v27)                            │

00:04:57 #11049 [Verbose] > │         let v29 : (struct (int32 * string * (struct (string * string) ->     │

00:04:57 #11050 [Verbose] > │ string)) []) = method5(v28)                                                  │

00:04:57 #11051 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │

00:04:57 #11052 [Verbose] > │         let v31 : (struct (string * int64) []) = Array.zeroCreate<struct     │

00:04:57 #11053 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v30))                              │

00:04:57 #11054 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #11055 [Verbose] > │         while method4(v30, v32) do                                           │

00:04:57 #11056 [Verbose] > │             let v34 : uint64 = v32.l0                                        │

00:04:57 #11057 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (struct (string *   │

00:04:57 #11058 [Verbose] > │ string) -> string)) = v29.[int v34]                                          │

00:04:57 #11059 [Verbose] > │             let v38 : unit option = None                                     │

00:04:57 #11060 [Verbose] > │             let mutable _v38 = v38                                           │

00:04:57 #11061 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:57 #11062 [Verbose] > │             ()                                                               │

00:04:57 #11063 [Verbose] > │             #endif                                                           │

00:04:57 #11064 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:57 #11065 [Verbose] > │             ()                                                               │

00:04:57 #11066 [Verbose] > │             #endif                                                           │

00:04:57 #11067 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:57 #11068 [Verbose] > │             ()                                                               │

00:04:57 #11069 [Verbose] > │             #endif                                                           │

00:04:57 #11070 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:57 #11071 [Verbose] > │             System.GC.Collect ()                                             │

00:04:57 #11072 [Verbose] > │             ()                                                               │

00:04:57 #11073 [Verbose] > │             #endif                                                           │

00:04:57 #11074 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:57 #11075 [Verbose] > │             System.GC.Collect ()                                             │

00:04:57 #11076 [Verbose] > │             ()                                                               │

00:04:57 #11077 [Verbose] > │             #endif                                                           │

00:04:57 #11078 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:57 #11079 [Verbose] > │             System.GC.Collect ()                                             │

00:04:57 #11080 [Verbose] > │             ()                                                               │

00:04:57 #11081 [Verbose] > │             #endif                                                           │

00:04:57 #11082 [Verbose] > │             |> fun x -> _v38 <- Some x                                       │

00:04:57 #11083 [Verbose] > │             _v38 |> Option.get                                               │

00:04:57 #11084 [Verbose] > │             let v39 : (unit -> System.Diagnostics.Stopwatch) =               │

00:04:57 #11085 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:04:57 #11086 [Verbose] > │             let v40 : System.Diagnostics.Stopwatch = v39 ()                  │

00:04:57 #11087 [Verbose] > │             v40.Start ()                                                     │

00:04:57 #11088 [Verbose] > │             let v41 : int64 = v40.ElapsedMilliseconds                        │

00:04:57 #11089 [Verbose] > │             let v42 : (int32 []) = Array.zeroCreate<int32> (2000001)         │

00:04:57 #11090 [Verbose] > │             let v43 : Mut1 = {l0 = 0} : Mut1                                 │

00:04:57 #11091 [Verbose] > │             while method8(v43) do                                            │

00:04:57 #11092 [Verbose] > │                 let v45 : int32 = v43.l0                                     │

00:04:57 #11093 [Verbose] > │                 v42.[int v45] <- v45                                         │

00:04:57 #11094 [Verbose] > │                 let v46 : int32 = v45 + 1                                    │

00:04:57 #11095 [Verbose] > │                 v43.l0 <- v46                                                │

00:04:57 #11096 [Verbose] > │                 ()                                                           │

00:04:57 #11097 [Verbose] > │             let v47 : ((int32 -> string) -> ((int32 []) -> (string []))) =   │

00:04:57 #11098 [Verbose] > │ Array.Parallel.map                                                           │

00:04:57 #11099 [Verbose] > │             let v48 : (int32 -> string) = closure3(v15, v16, v37)            │

00:04:57 #11100 [Verbose] > │             let v49 : ((int32 []) -> (string [])) = v47 v48                  │

00:04:57 #11101 [Verbose] > │             let v50 : (string []) = v49 v42                                  │

00:04:57 #11102 [Verbose] > │             let v51 : int32 = v50.Length                                     │

00:04:57 #11103 [Verbose] > │             let v52 : int32 = v51 - 1                                        │

00:04:57 #11104 [Verbose] > │             let v53 : string = v50.[int v52]                                 │

00:04:57 #11105 [Verbose] > │             let v54 : int64 = v40.ElapsedMilliseconds                        │

00:04:57 #11106 [Verbose] > │             let v55 : int64 = v54 - v41                                      │

00:04:57 #11107 [Verbose] > │             let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55}  "  │

00:04:57 #11108 [Verbose] > │             System.Console.WriteLine v56                                     │

00:04:57 #11109 [Verbose] > │             v31.[int v34] <- struct (v53, v55)                               │

00:04:57 #11110 [Verbose] > │             let v57 : uint64 = v34 + 1UL                                     │

00:04:57 #11111 [Verbose] > │             v32.l0 <- v57                                                    │

00:04:57 #11112 [Verbose] > │             ()                                                               │

00:04:57 #11113 [Verbose] > │         let v58 : uint64 = System.Convert.ToUInt64 v31.Length                │

00:04:57 #11114 [Verbose] > │         let v59 : (string []) = Array.zeroCreate<string>                     │

00:04:57 #11115 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:04:57 #11116 [Verbose] > │         let v60 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #11117 [Verbose] > │         while method4(v58, v60) do                                           │

00:04:57 #11118 [Verbose] > │             let v62 : uint64 = v60.l0                                        │

00:04:57 #11119 [Verbose] > │             let struct (v63 : string, v64 : int64) = v31.[int v62]           │

00:04:57 #11120 [Verbose] > │             v59.[int v62] <- v63                                             │

00:04:57 #11121 [Verbose] > │             let v65 : uint64 = v62 + 1UL                                     │

00:04:57 #11122 [Verbose] > │             v60.l0 <- v65                                                    │

00:04:57 #11123 [Verbose] > │             ()                                                               │

00:04:57 #11124 [Verbose] > │         let v66 : uint64 = System.Convert.ToUInt64 v59.Length                │

00:04:57 #11125 [Verbose] > │         let v67 : bool = v66 <= 1UL                                          │

00:04:57 #11126 [Verbose] > │         if v67 then                                                          │

00:04:57 #11127 [Verbose] > │             ()                                                               │

00:04:57 #11128 [Verbose] > │         else                                                                 │

00:04:57 #11129 [Verbose] > │             let v68 : string = v59.[int 0UL]                                 │

00:04:57 #11130 [Verbose] > │             let v69 : uint64 = 0UL                                           │

00:04:57 #11131 [Verbose] > │             let v70 : bool = method9(v68, v59, v69)                          │

00:04:57 #11132 [Verbose] > │             if v70 then                                                      │

00:04:57 #11133 [Verbose] > │                 ()                                                           │

00:04:57 #11134 [Verbose] > │             else                                                             │

00:04:57 #11135 [Verbose] > │                 let v71 : string = $"Challenge error: {v59}"                 │

00:04:57 #11136 [Verbose] > │                 failwith<unit> v71                                           │

00:04:57 #11137 [Verbose] > │         let v72 : string = $"%A{v17}"                                        │

00:04:57 #11138 [Verbose] > │         let v73 : (string []) = Array.zeroCreate<string>                     │

00:04:57 #11139 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:04:57 #11140 [Verbose] > │         let v74 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #11141 [Verbose] > │         while method4(v58, v74) do                                           │

00:04:57 #11142 [Verbose] > │             let v76 : uint64 = v74.l0                                        │

00:04:57 #11143 [Verbose] > │             let struct (v77 : string, v78 : int64) = v31.[int v76]           │

00:04:57 #11144 [Verbose] > │             v73.[int v76] <- v77                                             │

00:04:57 #11145 [Verbose] > │             let v79 : uint64 = v76 + 1UL                                     │

00:04:57 #11146 [Verbose] > │             v74.l0 <- v79                                                    │

00:04:57 #11147 [Verbose] > │             ()                                                               │

00:04:57 #11148 [Verbose] > │         let v80 : string = v73.[int 0UL]                                     │

00:04:57 #11149 [Verbose] > │         let v81 : string = $"%A{v80}"                                        │

00:04:57 #11150 [Verbose] > │         let v82 : (int64 []) = Array.zeroCreate<int64>                       │

00:04:57 #11151 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:04:57 #11152 [Verbose] > │         let v83 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:04:57 #11153 [Verbose] > │         while method4(v58, v83) do                                           │

00:04:57 #11154 [Verbose] > │             let v85 : uint64 = v83.l0                                        │

00:04:57 #11155 [Verbose] > │             let struct (v86 : string, v87 : int64) = v31.[int v85]           │

00:04:57 #11156 [Verbose] > │             v82.[int v85] <- v87                                             │

00:04:57 #11157 [Verbose] > │             let v88 : uint64 = v85 + 1UL                                     │

00:04:57 #11158 [Verbose] > │             v83.l0 <- v88                                                    │

00:04:57 #11159 [Verbose] > │             ()                                                               │

00:04:57 #11160 [Verbose] > │         v11.[int v14] <- struct (v72, v18, v81, v82)                         │

00:04:57 #11161 [Verbose] > │         let v89 : uint64 = v14 + 1UL                                         │

00:04:57 #11162 [Verbose] > │         v12.l0 <- v89                                                        │

00:04:57 #11163 [Verbose] > │         ()                                                                   │

00:04:57 #11164 [Verbose] > │     let v90 : uint64 = System.Convert.ToUInt64 v11.Length                    │

00:04:57 #11165 [Verbose] > │     let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │

00:04:57 #11166 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:04:57 #11167 [Verbose] > │     let v92 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:04:57 #11168 [Verbose] > │     while method4(v90, v92) do                                               │

00:04:57 #11169 [Verbose] > │         let v94 : uint64 = v92.l0                                            │

00:04:57 #11170 [Verbose] > │         let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │

00:04:57 #11171 [Verbose] > │ ])) = v11.[int v94]                                                          │

00:04:57 #11172 [Verbose] > │         let v99 : uint64 = System.Convert.ToUInt64 v98.Length                │

00:04:57 #11173 [Verbose] > │         let v100 : UH3 = UH3_0                                               │

00:04:57 #11174 [Verbose] > │         let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2              │

00:04:57 #11175 [Verbose] > │         while method10(v99, v101) do                                         │

00:04:57 #11176 [Verbose] > │             let v103 : uint64 = v101.l0                                      │

00:04:57 #11177 [Verbose] > │             let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2         │

00:04:57 #11178 [Verbose] > │             let v106 : int64 = v98.[int v103]                                │

00:04:57 #11179 [Verbose] > │             let v107 : int64 = v105 + 1L                                     │

00:04:57 #11180 [Verbose] > │             let v108 : uint64 = v103 + 1UL                                   │

00:04:57 #11181 [Verbose] > │             let v109 : UH3 = UH3_1(v105, v106, v104)                         │

00:04:57 #11182 [Verbose] > │             v101.l0 <- v108                                                  │

00:04:57 #11183 [Verbose] > │             v101.l1 <- v109                                                  │

00:04:57 #11184 [Verbose] > │             v101.l2 <- v107                                                  │

00:04:57 #11185 [Verbose] > │             ()                                                               │

00:04:57 #11186 [Verbose] > │         let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2             │

00:04:57 #11187 [Verbose] > │         let v112 : UH3 = UH3_0                                               │

00:04:57 #11188 [Verbose] > │         let v113 : UH3 = method11(v110, v112)                                │

00:04:57 #11189 [Verbose] > │         let v114 : (struct (int64 * int64) []) = method12(v113)              │

00:04:57 #11190 [Verbose] > │         let v115 : int32 = v114.Length                                       │

00:04:57 #11191 [Verbose] > │         let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:04:57 #11192 [Verbose] > │ (int64 * int64)> (v115)                                                      │

00:04:57 #11193 [Verbose] > │         let v117 : Mut1 = {l0 = 0} : Mut1                                    │

00:04:58 #11194 [Verbose] > │         while method15(v115, v117) do                                        │

00:04:58 #11195 [Verbose] > │             let v119 : int32 = v117.l0                                       │

00:04:58 #11196 [Verbose] > │             let struct (v120 : int64, v121 : int64) = v114.[int v119]        │

00:04:58 #11197 [Verbose] > │             let v122 : int64 = v120 + 1L                                     │

00:04:58 #11198 [Verbose] > │             v116.[int v119] <- struct (v122, v121)                           │

00:04:58 #11199 [Verbose] > │             let v123 : int32 = v119 + 1                                      │

00:04:58 #11200 [Verbose] > │             v117.l0 <- v123                                                  │

00:04:58 #11201 [Verbose] > │             ()                                                               │

00:04:58 #11202 [Verbose] > │         let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:04:58 #11203 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:04:58 #11204 [Verbose] > │         let v125 : (struct (int64 * int64) -> int64) = closure4()            │

00:04:58 #11205 [Verbose] > │         let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:04:58 #11206 [Verbose] > │ ])) = v124 v125                                                              │

00:04:58 #11207 [Verbose] > │         let v127 : (struct (int64 * int64) []) = v126 v116                   │

00:04:58 #11208 [Verbose] > │         let struct (v128 : int64, v129 : int64) = v127.[int 0]               │

00:04:58 #11209 [Verbose] > │         let v130 : string = $"%A{struct (v128, v129)}"                       │

00:04:58 #11210 [Verbose] > │         let v131 : bool = v95 = v97                                          │

00:04:58 #11211 [Verbose] > │         let v136 : US0 =                                                     │

00:04:58 #11212 [Verbose] > │             if v131 then                                                     │

00:04:58 #11213 [Verbose] > │                 let v132 : System.ConsoleColor =                             │

00:04:58 #11214 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:04:58 #11215 [Verbose] > │                 US0_0(v132)                                                  │

00:04:58 #11216 [Verbose] > │             else                                                             │

00:04:58 #11217 [Verbose] > │                 let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:04:58 #11218 [Verbose] > │                 US0_0(v134)                                                  │

00:04:58 #11219 [Verbose] > │         let v137 : UH2 = UH2_0                                               │

00:04:58 #11220 [Verbose] > │         let v138 : UH2 = UH2_1(v130, v137)                                   │

00:04:58 #11221 [Verbose] > │         let v139 : UH2 = UH2_1(v97, v138)                                    │

00:04:58 #11222 [Verbose] > │         let v140 : UH2 = UH2_1(v95, v139)                                    │

00:04:58 #11223 [Verbose] > │         let v141 : UH2 = UH2_1(v96, v140)                                    │

00:04:58 #11224 [Verbose] > │         v91.[int v94] <- struct (v141, v136)                                 │

00:04:58 #11225 [Verbose] > │         let v142 : uint64 = v94 + 1UL                                        │

00:04:58 #11226 [Verbose] > │         v92.l0 <- v142                                                       │

00:04:58 #11227 [Verbose] > │         ()                                                                   │

00:04:58 #11228 [Verbose] > │     let v143 : string = "Input"                                              │

00:04:58 #11229 [Verbose] > │     let v144 : string = "Expected"                                           │

00:04:58 #11230 [Verbose] > │     let v145 : string = "Result"                                             │

00:04:58 #11231 [Verbose] > │     let v146 : string = "Best"                                               │

00:04:58 #11232 [Verbose] > │     let v147 : UH2 = UH2_0                                                   │

00:04:58 #11233 [Verbose] > │     let v148 : UH2 = UH2_1(v146, v147)                                       │

00:04:58 #11234 [Verbose] > │     let v149 : UH2 = UH2_1(v145, v148)                                       │

00:04:58 #11235 [Verbose] > │     let v150 : UH2 = UH2_1(v144, v149)                                       │

00:04:58 #11236 [Verbose] > │     let v151 : UH2 = UH2_1(v143, v150)                                       │

00:04:58 #11237 [Verbose] > │     let v152 : US0 = US0_1                                                   │

00:04:58 #11238 [Verbose] > │     let v153 : string = "---"                                                │

00:04:58 #11239 [Verbose] > │     let v154 : UH2 = UH2_0                                                   │

00:04:58 #11240 [Verbose] > │     let v155 : UH2 = UH2_1(v153, v154)                                       │

00:04:58 #11241 [Verbose] > │     let v156 : UH2 = UH2_1(v153, v155)                                       │

00:04:58 #11242 [Verbose] > │     let v157 : UH2 = UH2_1(v153, v156)                                       │

00:04:58 #11243 [Verbose] > │     let v158 : UH2 = UH2_1(v153, v157)                                       │

00:04:58 #11244 [Verbose] > │     let v159 : US0 = US0_1                                                   │

00:04:58 #11245 [Verbose] > │     let v160 : UH4 = UH4_0                                                   │

00:04:58 #11246 [Verbose] > │     let v161 : UH4 = UH4_1(v158, v159, v160)                                 │

00:04:58 #11247 [Verbose] > │     let v162 : UH4 = UH4_1(v151, v152, v161)                                 │

00:04:58 #11248 [Verbose] > │     let v163 : (struct (UH2 * US0) []) = method16(v162)                      │

00:04:58 #11249 [Verbose] > │     let v164 : uint64 = System.Convert.ToUInt64 v163.Length                  │

00:04:58 #11250 [Verbose] > │     let v165 : uint64 = System.Convert.ToUInt64 v91.Length                   │

00:04:58 #11251 [Verbose] > │     let v166 : uint64 = v164 + v165                                          │

00:04:58 #11252 [Verbose] > │     let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:04:58 #11253 [Verbose] > │ US0)> (System.Convert.ToInt32(v166))                                         │

00:04:58 #11254 [Verbose] > │     let v168 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11255 [Verbose] > │     while method4(v166, v168) do                                             │

00:04:58 #11256 [Verbose] > │         let v170 : uint64 = v168.l0                                          │

00:04:58 #11257 [Verbose] > │         let v171 : bool = v170 < v164                                        │

00:04:58 #11258 [Verbose] > │         let struct (v177 : UH2, v178 : US0) =                                │

00:04:58 #11259 [Verbose] > │             if v171 then                                                     │

00:04:58 #11260 [Verbose] > │                 let struct (v172 : UH2, v173 : US0) = v163.[int v170]        │

00:04:58 #11261 [Verbose] > │                 struct (v172, v173)                                          │

00:04:58 #11262 [Verbose] > │             else                                                             │

00:04:58 #11263 [Verbose] > │                 let v174 : uint64 = v170 - v164                              │

00:04:58 #11264 [Verbose] > │                 let struct (v175 : UH2, v176 : US0) = v91.[int v174]         │

00:04:58 #11265 [Verbose] > │                 struct (v175, v176)                                          │

00:04:58 #11266 [Verbose] > │         v167.[int v170] <- struct (v177, v178)                               │

00:04:58 #11267 [Verbose] > │         let v179 : uint64 = v170 + 1UL                                       │

00:04:58 #11268 [Verbose] > │         v168.l0 <- v179                                                      │

00:04:58 #11269 [Verbose] > │         ()                                                                   │

00:04:58 #11270 [Verbose] > │     let v180 : uint64 = System.Convert.ToUInt64 v167.Length                  │

00:04:58 #11271 [Verbose] > │     let v181 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:04:58 #11272 [Verbose] > │ (System.Convert.ToInt32(v180))                                               │

00:04:58 #11273 [Verbose] > │     let v182 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11274 [Verbose] > │     while method4(v180, v182) do                                             │

00:04:58 #11275 [Verbose] > │         let v184 : uint64 = v182.l0                                          │

00:04:58 #11276 [Verbose] > │         let struct (v185 : UH2, v186 : US0) = v167.[int v184]                │

00:04:58 #11277 [Verbose] > │         let v187 : (string []) = method19(v185)                              │

00:04:58 #11278 [Verbose] > │         v181.[int v184] <- v187                                              │

00:04:58 #11279 [Verbose] > │         let v188 : uint64 = v184 + 1UL                                       │

00:04:58 #11280 [Verbose] > │         v182.l0 <- v188                                                      │

00:04:58 #11281 [Verbose] > │         ()                                                                   │

00:04:58 #11282 [Verbose] > │     let v189 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:04:58 #11283 [Verbose] > │     let v190 : ((string []) []) = v189 v181                                  │

00:04:58 #11284 [Verbose] > │     let v191 : uint64 = System.Convert.ToUInt64 v190.Length                  │

00:04:58 #11285 [Verbose] > │     let v192 : (int64 []) = Array.zeroCreate<int64>                          │

00:04:58 #11286 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │

00:04:58 #11287 [Verbose] > │     let v193 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11288 [Verbose] > │     while method4(v191, v193) do                                             │

00:04:58 #11289 [Verbose] > │         let v195 : uint64 = v193.l0                                          │

00:04:58 #11290 [Verbose] > │         let v196 : (string []) = v190.[int v195]                             │

00:04:58 #11291 [Verbose] > │         let v197 : uint64 = System.Convert.ToUInt64 v196.Length              │

00:04:58 #11292 [Verbose] > │         let v198 : (int64 []) = Array.zeroCreate<int64>                      │

00:04:58 #11293 [Verbose] > │ (System.Convert.ToInt32(v197))                                               │

00:04:58 #11294 [Verbose] > │         let v199 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:04:58 #11295 [Verbose] > │         while method4(v197, v199) do                                         │

00:04:58 #11296 [Verbose] > │             let v201 : uint64 = v199.l0                                      │

00:04:58 #11297 [Verbose] > │             let v202 : string = v196.[int v201]                              │

00:04:58 #11298 [Verbose] > │             let v203 : int64 = System.Convert.ToInt64 v202.Length            │

00:04:58 #11299 [Verbose] > │             v198.[int v201] <- v203                                          │

00:04:58 #11300 [Verbose] > │             let v204 : uint64 = v201 + 1UL                                   │

00:04:58 #11301 [Verbose] > │             v199.l0 <- v204                                                  │

00:04:58 #11302 [Verbose] > │             ()                                                               │

00:04:58 #11303 [Verbose] > │         let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:04:58 #11304 [Verbose] > │         let v206 : (int64 []) = v205 v198                                    │

00:04:58 #11305 [Verbose] > │         let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:04:58 #11306 [Verbose] > │         let v208 : ((int64 []) -> int64 option) = v207 0                     │

00:04:58 #11307 [Verbose] > │         let v209 : int64 option = v208 v206                                  │

00:04:58 #11308 [Verbose] > │         let v210 : (int64 -> US1) = method22()                               │

00:04:58 #11309 [Verbose] > │         let v211 : US1 = US1_1                                               │

00:04:58 #11310 [Verbose] > │         let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │

00:04:58 #11311 [Verbose] > │         let v215 : int64 =                                                   │

00:04:58 #11312 [Verbose] > │             match v212 with                                                  │

00:04:58 #11313 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:04:58 #11314 [Verbose] > │                 0L                                                           │

00:04:58 #11315 [Verbose] > │             | US1_0(v213) -> (* Some *)                                      │

00:04:58 #11316 [Verbose] > │                 v213                                                         │

00:04:58 #11317 [Verbose] > │         v192.[int v195] <- v215                                              │

00:04:58 #11318 [Verbose] > │         let v216 : uint64 = v195 + 1UL                                       │

00:04:58 #11319 [Verbose] > │         v193.l0 <- v216                                                      │

00:04:58 #11320 [Verbose] > │         ()                                                                   │

00:04:58 #11321 [Verbose] > │     let v217 : uint64 = System.Convert.ToUInt64 v192.Length                  │

00:04:58 #11322 [Verbose] > │     let v218 : UH5 = UH5_0                                                   │

00:04:58 #11323 [Verbose] > │     let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3                   │

00:04:58 #11324 [Verbose] > │     while method23(v217, v219) do                                            │

00:04:58 #11325 [Verbose] > │         let v221 : uint64 = v219.l0                                          │

00:04:58 #11326 [Verbose] > │         let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2             │

00:04:58 #11327 [Verbose] > │         let v224 : int64 = v192.[int v221]                                   │

00:04:58 #11328 [Verbose] > │         let v225 : int32 = v223 + 1                                          │

00:04:58 #11329 [Verbose] > │         let v226 : uint64 = v221 + 1UL                                       │

00:04:58 #11330 [Verbose] > │         let v227 : UH5 = UH5_1(v223, v224, v222)                             │

00:04:58 #11331 [Verbose] > │         v219.l0 <- v226                                                      │

00:04:58 #11332 [Verbose] > │         v219.l1 <- v227                                                      │

00:04:58 #11333 [Verbose] > │         v219.l2 <- v225                                                      │

00:04:58 #11334 [Verbose] > │         ()                                                                   │

00:04:58 #11335 [Verbose] > │     let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2                 │

00:04:58 #11336 [Verbose] > │     let v230 : UH5 = UH5_0                                                   │

00:04:58 #11337 [Verbose] > │     let v231 : UH5 = method24(v228, v230)                                    │

00:04:58 #11338 [Verbose] > │     let v232 : (struct (int32 * int64) []) = method25(v231)                  │

00:04:58 #11339 [Verbose] > │     let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │

00:04:58 #11340 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:04:58 #11341 [Verbose] > │     let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │

00:04:58 #11342 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180))                          │

00:04:58 #11343 [Verbose] > │     let v235 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11344 [Verbose] > │     while method4(v180, v235) do                                             │

00:04:58 #11345 [Verbose] > │         let v237 : uint64 = v235.l0                                          │

00:04:58 #11346 [Verbose] > │         let struct (v238 : UH2, v239 : US0) = v167.[int v237]                │

00:04:58 #11347 [Verbose] > │         let v240 : UH6 = UH6_0                                               │

00:04:58 #11348 [Verbose] > │         let v241 : int32 = 0                                                 │

00:04:58 #11349 [Verbose] > │         let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241)   │

00:04:58 #11350 [Verbose] > │         let v244 : UH6 = UH6_0                                               │

00:04:58 #11351 [Verbose] > │         let v245 : UH6 = method29(v242, v244)                                │

00:04:58 #11352 [Verbose] > │         let v246 : UH2 = UH2_0                                               │

00:04:58 #11353 [Verbose] > │         let v247 : UH2 = method30(v233, v245, v246)                          │

00:04:58 #11354 [Verbose] > │         let v248 : (string []) = method31(v247)                              │

00:04:58 #11355 [Verbose] > │         v234.[int v237] <- struct (v248, v239)                               │

00:04:58 #11356 [Verbose] > │         let v249 : uint64 = v237 + 1UL                                       │

00:04:58 #11357 [Verbose] > │         v235.l0 <- v249                                                      │

00:04:58 #11358 [Verbose] > │         ()                                                                   │

00:04:58 #11359 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:58 #11360 [Verbose] > │     let v250 : uint64 = System.Convert.ToUInt64 v234.Length                  │

00:04:58 #11361 [Verbose] > │     let v251 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11362 [Verbose] > │     while method4(v250, v251) do                                             │

00:04:58 #11363 [Verbose] > │         let v253 : uint64 = v251.l0                                          │

00:04:58 #11364 [Verbose] > │         let struct (v254 : (string []), v255 : US0) = v234.[int v253]        │

00:04:58 #11365 [Verbose] > │         match v255 with                                                      │

00:04:58 #11366 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:04:58 #11367 [Verbose] > │             let v258 : unit option = None                                    │

00:04:58 #11368 [Verbose] > │             let mutable _v258 = v258                                         │

00:04:58 #11369 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:58 #11370 [Verbose] > │             ()                                                               │

00:04:58 #11371 [Verbose] > │             #endif                                                           │

00:04:58 #11372 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:58 #11373 [Verbose] > │             ()                                                               │

00:04:58 #11374 [Verbose] > │             #endif                                                           │

00:04:58 #11375 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:58 #11376 [Verbose] > │             ()                                                               │

00:04:58 #11377 [Verbose] > │             #endif                                                           │

00:04:58 #11378 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:58 #11379 [Verbose] > │             System.Console.ResetColor ()                                     │

00:04:58 #11380 [Verbose] > │             ()                                                               │

00:04:58 #11381 [Verbose] > │             #endif                                                           │

00:04:58 #11382 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:58 #11383 [Verbose] > │             System.Console.ResetColor ()                                     │

00:04:58 #11384 [Verbose] > │             ()                                                               │

00:04:58 #11385 [Verbose] > │             #endif                                                           │

00:04:58 #11386 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:58 #11387 [Verbose] > │             System.Console.ResetColor ()                                     │

00:04:58 #11388 [Verbose] > │             ()                                                               │

00:04:58 #11389 [Verbose] > │             #endif                                                           │

00:04:58 #11390 [Verbose] > │             |> fun x -> _v258 <- Some x                                      │

00:04:58 #11391 [Verbose] > │             _v258 |> Option.get                                              │

00:04:58 #11392 [Verbose] > │             ()                                                               │

00:04:58 #11393 [Verbose] > │         | US0_0(v256) -> (* Some *)                                          │

00:04:58 #11394 [Verbose] > │             let v257 : unit option = None                                    │

00:04:58 #11395 [Verbose] > │             let mutable _v257 = v257                                         │

00:04:58 #11396 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:04:58 #11397 [Verbose] > │             ()                                                               │

00:04:58 #11398 [Verbose] > │             #endif                                                           │

00:04:58 #11399 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:04:58 #11400 [Verbose] > │             ()                                                               │

00:04:58 #11401 [Verbose] > │             #endif                                                           │

00:04:58 #11402 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:04:58 #11403 [Verbose] > │             ()                                                               │

00:04:58 #11404 [Verbose] > │             #endif                                                           │

00:04:58 #11405 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:04:58 #11406 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:04:58 #11407 [Verbose] > │             ()                                                               │

00:04:58 #11408 [Verbose] > │             #endif                                                           │

00:04:58 #11409 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:04:58 #11410 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:04:58 #11411 [Verbose] > │             ()                                                               │

00:04:58 #11412 [Verbose] > │             #endif                                                           │

00:04:58 #11413 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:04:58 #11414 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:04:58 #11415 [Verbose] > │             ()                                                               │

00:04:58 #11416 [Verbose] > │             #endif                                                           │

00:04:58 #11417 [Verbose] > │             |> fun x -> _v257 <- Some x                                      │

00:04:58 #11418 [Verbose] > │             _v257 |> Option.get                                              │

00:04:58 #11419 [Verbose] > │             ()                                                               │

00:04:58 #11420 [Verbose] > │         let v259 : string = "\t| "                                           │

00:04:58 #11421 [Verbose] > │         let v260 : string = System.String.Join (v259, v254)                  │

00:04:58 #11422 [Verbose] > │         System.Console.WriteLine v260                                        │

00:04:58 #11423 [Verbose] > │         let v261 : unit option = None                                        │

00:04:58 #11424 [Verbose] > │         let mutable _v261 = v261                                             │

00:04:58 #11425 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:04:58 #11426 [Verbose] > │         ()                                                                   │

00:04:58 #11427 [Verbose] > │         #endif                                                               │

00:04:58 #11428 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:04:58 #11429 [Verbose] > │         ()                                                                   │

00:04:58 #11430 [Verbose] > │         #endif                                                               │

00:04:58 #11431 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:04:58 #11432 [Verbose] > │         ()                                                                   │

00:04:58 #11433 [Verbose] > │         #endif                                                               │

00:04:58 #11434 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:04:58 #11435 [Verbose] > │         System.Console.ResetColor ()                                         │

00:04:58 #11436 [Verbose] > │         ()                                                                   │

00:04:58 #11437 [Verbose] > │         #endif                                                               │

00:04:58 #11438 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:04:58 #11439 [Verbose] > │         System.Console.ResetColor ()                                         │

00:04:58 #11440 [Verbose] > │         ()                                                                   │

00:04:58 #11441 [Verbose] > │         #endif                                                               │

00:04:58 #11442 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:04:58 #11443 [Verbose] > │         System.Console.ResetColor ()                                         │

00:04:58 #11444 [Verbose] > │         ()                                                                   │

00:04:58 #11445 [Verbose] > │         #endif                                                               │

00:04:58 #11446 [Verbose] > │         |> fun x -> _v261 <- Some x                                          │

00:04:58 #11447 [Verbose] > │         _v261 |> Option.get                                                  │

00:04:58 #11448 [Verbose] > │         let v262 : uint64 = v253 + 1UL                                       │

00:04:58 #11449 [Verbose] > │         v251.l0 <- v262                                                      │

00:04:58 #11450 [Verbose] > │         ()                                                                   │

00:04:58 #11451 [Verbose] > │     let v263 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:04:58 #11452 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:04:58 #11453 [Verbose] > │     let v264 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11454 [Verbose] > │     while method4(v90, v264) do                                              │

00:04:58 #11455 [Verbose] > │         let v266 : uint64 = v264.l0                                          │

00:04:58 #11456 [Verbose] > │         let struct (v267 : string, v268 : string, v269 : string, v270 :      │

00:04:58 #11457 [Verbose] > │ (int64 [])) = v11.[int v266]                                                 │

00:04:58 #11458 [Verbose] > │         let v271 : (int64 -> float) = float                                  │

00:04:58 #11459 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v270.Length              │

00:04:58 #11460 [Verbose] > │         let v273 : (float []) = Array.zeroCreate<float>                      │

00:04:58 #11461 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │

00:04:58 #11462 [Verbose] > │         let v274 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:04:58 #11463 [Verbose] > │         while method4(v272, v274) do                                         │

00:04:58 #11464 [Verbose] > │             let v276 : uint64 = v274.l0                                      │

00:04:58 #11465 [Verbose] > │             let v277 : int64 = v270.[int v276]                               │

00:04:58 #11466 [Verbose] > │             let v278 : float = v271 v277                                     │

00:04:58 #11467 [Verbose] > │             v273.[int v276] <- v278                                          │

00:04:58 #11468 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │

00:04:58 #11469 [Verbose] > │             v274.l0 <- v279                                                  │

00:04:58 #11470 [Verbose] > │             ()                                                               │

00:04:58 #11471 [Verbose] > │         v263.[int v266] <- v273                                              │

00:04:58 #11472 [Verbose] > │         let v280 : uint64 = v266 + 1UL                                       │

00:04:58 #11473 [Verbose] > │         v264.l0 <- v280                                                      │

00:04:58 #11474 [Verbose] > │         ()                                                                   │

00:04:58 #11475 [Verbose] > │     let v281 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:04:58 #11476 [Verbose] > │     let v282 : ((float []) []) = v281 v263                                   │

00:04:58 #11477 [Verbose] > │     let v283 : uint64 = System.Convert.ToUInt64 v282.Length                  │

00:04:58 #11478 [Verbose] > │     let v284 : (float []) = Array.zeroCreate<float>                          │

00:04:58 #11479 [Verbose] > │ (System.Convert.ToInt32(v283))                                               │

00:04:58 #11480 [Verbose] > │     let v285 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11481 [Verbose] > │     while method4(v283, v285) do                                             │

00:04:58 #11482 [Verbose] > │         let v287 : uint64 = v285.l0                                          │

00:04:58 #11483 [Verbose] > │         let v288 : (float []) = v282.[int v287]                              │

00:04:58 #11484 [Verbose] > │         let v289 : ((float []) -> float) = Array.average                     │

00:04:58 #11485 [Verbose] > │         let v290 : float = v289 v288                                         │

00:04:58 #11486 [Verbose] > │         v284.[int v287] <- v290                                              │

00:04:58 #11487 [Verbose] > │         let v291 : uint64 = v287 + 1UL                                       │

00:04:58 #11488 [Verbose] > │         v285.l0 <- v291                                                      │

00:04:58 #11489 [Verbose] > │         ()                                                                   │

00:04:58 #11490 [Verbose] > │     let v292 : (float -> int64) = int64                                      │

00:04:58 #11491 [Verbose] > │     let v293 : uint64 = System.Convert.ToUInt64 v284.Length                  │

00:04:58 #11492 [Verbose] > │     let v294 : (int64 []) = Array.zeroCreate<int64>                          │

00:04:58 #11493 [Verbose] > │ (System.Convert.ToInt32(v293))                                               │

00:04:58 #11494 [Verbose] > │     let v295 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11495 [Verbose] > │     while method4(v293, v295) do                                             │

00:04:58 #11496 [Verbose] > │         let v297 : uint64 = v295.l0                                          │

00:04:58 #11497 [Verbose] > │         let v298 : float = v284.[int v297]                                   │

00:04:58 #11498 [Verbose] > │         let v299 : int64 = v292 v298                                         │

00:04:58 #11499 [Verbose] > │         v294.[int v297] <- v299                                              │

00:04:58 #11500 [Verbose] > │         let v300 : uint64 = v297 + 1UL                                       │

00:04:58 #11501 [Verbose] > │         v295.l0 <- v300                                                      │

00:04:58 #11502 [Verbose] > │         ()                                                                   │

00:04:58 #11503 [Verbose] > │     let v301 : uint64 = System.Convert.ToUInt64 v294.Length                  │

00:04:58 #11504 [Verbose] > │     let v302 : UH5 = UH5_0                                                   │

00:04:58 #11505 [Verbose] > │     let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3                   │

00:04:58 #11506 [Verbose] > │     while method23(v301, v303) do                                            │

00:04:58 #11507 [Verbose] > │         let v305 : uint64 = v303.l0                                          │

00:04:58 #11508 [Verbose] > │         let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2             │

00:04:58 #11509 [Verbose] > │         let v308 : int64 = v294.[int v305]                                   │

00:04:58 #11510 [Verbose] > │         let v309 : int32 = v307 + 1                                          │

00:04:58 #11511 [Verbose] > │         let v310 : uint64 = v305 + 1UL                                       │

00:04:58 #11512 [Verbose] > │         let v311 : UH5 = UH5_1(v307, v308, v306)                             │

00:04:58 #11513 [Verbose] > │         v303.l0 <- v310                                                      │

00:04:58 #11514 [Verbose] > │         v303.l1 <- v311                                                      │

00:04:58 #11515 [Verbose] > │         v303.l2 <- v309                                                      │

00:04:58 #11516 [Verbose] > │         ()                                                                   │

00:04:58 #11517 [Verbose] > │     let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2                 │

00:04:58 #11518 [Verbose] > │     let v314 : UH5 = UH5_0                                                   │

00:04:58 #11519 [Verbose] > │     let v315 : UH5 = method24(v312, v314)                                    │

00:04:58 #11520 [Verbose] > │     let v316 : (struct (int32 * int64) []) = method34(v315)                  │

00:04:58 #11521 [Verbose] > │     System.Console.WriteLine v2                                              │

00:04:58 #11522 [Verbose] > │     let v317 : string = "Average Ranking  "                                  │

00:04:58 #11523 [Verbose] > │     System.Console.WriteLine v317                                            │

00:04:58 #11524 [Verbose] > │     let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:04:58 #11525 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:04:58 #11526 [Verbose] > │     let v319 : (struct (int32 * int64) -> int64) = closure6()                │

00:04:58 #11527 [Verbose] > │     let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:04:58 #11528 [Verbose] > │ = v318 v319                                                                  │

00:04:58 #11529 [Verbose] > │     let v321 : (struct (int32 * int64) []) = v320 v316                       │

00:04:58 #11530 [Verbose] > │     let v322 : uint64 = System.Convert.ToUInt64 v321.Length                  │

00:04:58 #11531 [Verbose] > │     let v323 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:04:58 #11532 [Verbose] > │     while method4(v322, v323) do                                             │

00:04:58 #11533 [Verbose] > │         let v325 : uint64 = v323.l0                                          │

00:04:58 #11534 [Verbose] > │         let struct (v326 : int32, v327 : int64) = v321.[int v325]            │

00:04:58 #11535 [Verbose] > │         let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │

00:04:58 #11536 [Verbose] > │ "                                                                            │

00:04:58 #11537 [Verbose] > │         System.Console.WriteLine v328                                        │

00:04:58 #11538 [Verbose] > │         let v329 : uint64 = v325 + 1UL                                       │

00:04:58 #11539 [Verbose] > │         v323.l0 <- v329                                                      │

00:04:58 #11540 [Verbose] > │         ()                                                                   │

00:04:58 #11541 [Verbose] > │     ()                                                                       │

00:04:58 #11542 [Verbose] > │ method0()                                                                    │

00:04:58 #11543 [Verbose] > │                                                                              │

00:04:58 #11544 [Verbose] > │                                                                              │

00:04:58 #11545 [Verbose] > │                                                                              │

00:04:58 #11546 [Verbose] > │ Test: v0                                                                     │

00:04:58 #11547 [Verbose] > │                                                                              │

00:04:58 #11548 [Verbose] > │ Solution: struct ("a", "a")                                                  │

00:04:58 #11549 [Verbose] > │ Test case 1. A. Time: 140                                                    │

00:04:58 #11550 [Verbose] > │ Test case 2. B. Time: 130                                                    │

00:04:58 #11551 [Verbose] > │                                                                              │

00:04:58 #11552 [Verbose] > │ Solution: struct ("b", "b")                                                  │

00:04:58 #11553 [Verbose] > │ Test case 1. A. Time: 130                                                    │

00:04:58 #11554 [Verbose] > │ Test case 2. B. Time: 145                                                    │

00:04:58 #11555 [Verbose] > │                                                                              │

00:04:58 #11556 [Verbose] > │ Input            	| Expected	| Result	| Best                                       │

00:04:58 #11557 [Verbose] > │ ---              	| ---     	| ---   	| ---                                        │

00:04:58 #11558 [Verbose] > │ struct ("a", "a")	| "a"     	| "a"   	| struct (2L, 130L)                          │

00:04:58 #11559 [Verbose] > │ struct ("b", "b")	| "b"     	| "b"   	| struct (1L, 130L)                          │

00:04:58 #11560 [Verbose] > │                                                                              │

00:04:58 #11561 [Verbose] > │ Average Ranking                                                              │

00:04:58 #11562 [Verbose] > │ Test case 1. Average Time: 135L                                              │

00:04:58 #11563 [Verbose] > │ Test case 2. Average Time: 137L                                              │

00:04:58 #11564 [Verbose] > │                                                                              │

00:04:58 #11565 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:58 #11566 [Verbose] >

00:04:58 #11567 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:58 #11568 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:58 #11569 [Verbose] > │ ## emptyTests                                                                │

00:04:58 #11570 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:58 #11571 [Verbose] >

00:04:58 #11572 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:04:58 #11573 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:04:58 #11574 [Verbose] > │ Test: Empty                                                                  │

00:04:58 #11575 [Verbose] > │                                                                              │

00:04:58 #11576 [Verbose] > │ Solution: 0                                                                  │

00:04:58 #11577 [Verbose] > │ Test case 1. A. Time: 61L                                                    │

00:04:58 #11578 [Verbose] > │                                                                              │

00:04:58 #11579 [Verbose] > │ Solution: 2                                                                  │

00:04:58 #11580 [Verbose] > │ Test case 1. A. Time: 62L                                                    │

00:04:58 #11581 [Verbose] > │                                                                              │

00:04:58 #11582 [Verbose] > │ Solution: 5                                                                  │

00:04:58 #11583 [Verbose] > │ Test case 1. A. Time: 70L                                                    │

00:04:58 #11584 [Verbose] > │                                                                              │

00:04:58 #11585 [Verbose] > │ Input   | Expected        | Result  | Best                                   │

00:04:58 #11586 [Verbose] > │ ---     | ---             | ---     | ---                                    │

00:04:58 #11587 [Verbose] > │ 0       | 0               | 0       | (1, 61)                                │

00:04:58 #11588 [Verbose] > │ 2       | 2               | 2       | (1, 62)                                │

00:04:58 #11589 [Verbose] > │ 5       | 5               | 5       | (1, 70)                                │

00:04:58 #11590 [Verbose] > │                                                                              │

00:04:58 #11591 [Verbose] > │ Averages                                                                     │

00:04:58 #11592 [Verbose] > │ Test case 1. Average Time: 64L                                               │

00:04:58 #11593 [Verbose] > │                                                                              │

00:04:58 #11594 [Verbose] > │ Ranking                                                                      │

00:04:58 #11595 [Verbose] > │ Test case 1. Average Time: 64L                                               │

00:04:58 #11596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:04:58 #11597 [Verbose] >

00:04:58 #11598 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:04:58 #11599 [Verbose] > // // test

00:04:58 #11600 [Verbose] >

00:04:58 #11601 [Verbose] > inl get_solutions () =

00:04:58 #11602 [Verbose] >     [[

00:04:58 #11603 [Verbose] >         "A",

00:04:58 #11604 [Verbose] >         fun n =>

00:04:58 #11605 [Verbose] >             n + 1f64

00:04:58 #11606 [Verbose] >     ]]

00:04:58 #11607 [Verbose] >

00:04:58 #11608 [Verbose] > inl rec empty_1_tests () =

00:04:58 #11609 [Verbose] >     inl test_cases = [[

00:04:58 #11610 [Verbose] >         0, 1

00:04:58 #11611 [Verbose] >         2, 3

00:04:58 #11612 [Verbose] >         5, 6

00:04:58 #11613 [Verbose] >     ]]

00:04:58 #11614 [Verbose] >

00:04:58 #11615 [Verbose] >     inl solutions = get_solutions ()

00:04:58 #11616 [Verbose] >

00:04:58 #11617 [Verbose] >     // inl is_fast () = true

00:04:58 #11618 [Verbose] >

00:04:58 #11619 [Verbose] >     inl count =

00:04:58 #11620 [Verbose] >         if is_fast ()

00:04:58 #11621 [Verbose] >         then 1000i32

00:04:58 #11622 [Verbose] >         else 2000000i32

00:04:58 #11623 [Verbose] >

00:04:58 #11624 [Verbose] >     run_all (nameof empty_1_tests) count solutions test_cases

00:04:58 #11625 [Verbose] >     |> sort_result_list

00:04:58 #11626 [Verbose] >

00:04:58 #11627 [Verbose] > empty_1_tests ()

00:04:58 #11628 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-3051-5139-57075052e503\main.spi

00:05:06 #11629 [Verbose] >

00:05:06 #11630 [Verbose] > ╭─[ 8.32s - stdout ]───────────────────────────────────────────────────────────╮

00:05:06 #11631 [Verbose] > │ type UH0 =                                                                   │

00:05:06 #11632 [Verbose] > │     | UH0_0                                                                  │

00:05:06 #11633 [Verbose] > │     | UH0_1 of float * float * UH0                                           │

00:05:06 #11634 [Verbose] > │ and Mut0 = {mutable l0 : uint64}                                             │

00:05:06 #11635 [Verbose] > │ and UH1 =                                                                    │

00:05:06 #11636 [Verbose] > │     | UH1_0                                                                  │

00:05:06 #11637 [Verbose] > │     | UH1_1 of int32 * string * (float -> float) * UH1                       │

00:05:06 #11638 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │

00:05:06 #11639 [Verbose] > │ and UH2 =                                                                    │

00:05:06 #11640 [Verbose] > │     | UH2_0                                                                  │

00:05:06 #11641 [Verbose] > │     | UH2_1 of string * UH2                                                  │

00:05:06 #11642 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:05:06 #11643 [Verbose] > │     | US0_0 of f0_0 : System.ConsoleColor                                    │

00:05:06 #11644 [Verbose] > │     | US0_1                                                                  │

00:05:06 #11645 [Verbose] > │ and UH3 =                                                                    │

00:05:06 #11646 [Verbose] > │     | UH3_0                                                                  │

00:05:06 #11647 [Verbose] > │     | UH3_1 of int64 * int64 * UH3                                           │

00:05:06 #11648 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64}       │

00:05:06 #11649 [Verbose] > │ and UH4 =                                                                    │

00:05:06 #11650 [Verbose] > │     | UH4_0                                                                  │

00:05:06 #11651 [Verbose] > │     | UH4_1 of UH2 * US0 * UH4                                               │

00:05:06 #11652 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:05:06 #11653 [Verbose] > │     | US1_0 of f0_0 : int64                                                  │

00:05:06 #11654 [Verbose] > │     | US1_1                                                                  │

00:05:06 #11655 [Verbose] > │ and UH5 =                                                                    │

00:05:06 #11656 [Verbose] > │     | UH5_0                                                                  │

00:05:06 #11657 [Verbose] > │     | UH5_1 of int32 * int64 * UH5                                           │

00:05:06 #11658 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32}       │

00:05:06 #11659 [Verbose] > │ and UH6 =                                                                    │

00:05:06 #11660 [Verbose] > │     | UH6_0                                                                  │

00:05:06 #11661 [Verbose] > │     | UH6_1 of int32 * string * UH6                                          │

00:05:06 #11662 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 =                           │

00:05:06 #11663 [Verbose] > │     match v0 with                                                            │

00:05:06 #11664 [Verbose] > │     | UH0_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11665 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:05:06 #11666 [Verbose] > │         method2(v4, v5)                                                      │

00:05:06 #11667 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:05:06 #11668 [Verbose] > │         v1                                                                   │

00:05:06 #11669 [Verbose] > │ and method3 (v0 : (struct (float * float) []), v1 : UH0, v2 : uint64) :      │

00:05:06 #11670 [Verbose] > │ uint64 =                                                                     │

00:05:06 #11671 [Verbose] > │     match v1 with                                                            │

00:05:06 #11672 [Verbose] > │     | UH0_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:06 #11673 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:05:06 #11674 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:05:06 #11675 [Verbose] > │         method3(v0, v5, v6)                                                  │

00:05:06 #11676 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:05:06 #11677 [Verbose] > │         v2                                                                   │

00:05:06 #11678 [Verbose] > │ and method1 (v0 : UH0) : (struct (float * float) []) =                       │

00:05:06 #11679 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:05:06 #11680 [Verbose] > │     let v2 : uint64 = method2(v0, v1)                                        │

00:05:06 #11681 [Verbose] > │     let v3 : (struct (float * float) []) = Array.zeroCreate<struct (float *  │

00:05:06 #11682 [Verbose] > │ float)> (System.Convert.ToInt32(v2))                                         │

00:05:06 #11683 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:05:06 #11684 [Verbose] > │     let v5 : uint64 = method3(v3, v0, v4)                                    │

00:05:06 #11685 [Verbose] > │     v3                                                                       │

00:05:06 #11686 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool =                                │

00:05:06 #11687 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:05:06 #11688 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:05:06 #11689 [Verbose] > │     v3                                                                       │

00:05:06 #11690 [Verbose] > │ and closure1 () (v0 : float) : float =                                       │

00:05:06 #11691 [Verbose] > │     let v1 : float = v0 + 1.0                                                │

00:05:06 #11692 [Verbose] > │     v1                                                                       │

00:05:06 #11693 [Verbose] > │ and method6 (v0 : UH1, v1 : uint64) : uint64 =                               │

00:05:06 #11694 [Verbose] > │     match v0 with                                                            │

00:05:06 #11695 [Verbose] > │     | UH1_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:05:06 #11696 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │

00:05:06 #11697 [Verbose] > │         method6(v5, v6)                                                      │

00:05:06 #11698 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:06 #11699 [Verbose] > │         v1                                                                   │

00:05:06 #11700 [Verbose] > │ and method7 (v0 : (struct (int32 * string * (float -> float)) []), v1 : UH1, │

00:05:06 #11701 [Verbose] > │ v2 : uint64) : uint64 =                                                      │

00:05:06 #11702 [Verbose] > │     match v1 with                                                            │

00:05:06 #11703 [Verbose] > │     | UH1_1(v3, v4, v5, v6) -> (* Cons *)                                    │

00:05:06 #11704 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │

00:05:06 #11705 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │

00:05:06 #11706 [Verbose] > │         method7(v0, v6, v7)                                                  │

00:05:06 #11707 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:06 #11708 [Verbose] > │         v2                                                                   │

00:05:06 #11709 [Verbose] > │ and method5 (v0 : UH1) : (struct (int32 * string * (float -> float)) []) =   │

00:05:06 #11710 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:05:06 #11711 [Verbose] > │     let v2 : uint64 = method6(v0, v1)                                        │

00:05:06 #11712 [Verbose] > │     let v3 : (struct (int32 * string * (float -> float)) []) =               │

00:05:06 #11713 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (float -> float))>                 │

00:05:06 #11714 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:05:06 #11715 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:05:06 #11716 [Verbose] > │     let v5 : uint64 = method7(v3, v0, v4)                                    │

00:05:06 #11717 [Verbose] > │     v3                                                                       │

00:05:06 #11718 [Verbose] > │ and method8 (v0 : Mut1) : bool =                                             │

00:05:06 #11719 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:05:06 #11720 [Verbose] > │     let v2 : bool = v1 < 2000001                                             │

00:05:06 #11721 [Verbose] > │     v2                                                                       │

00:05:06 #11722 [Verbose] > │ and closure2 (v0 : float, v1 : (float -> float)) (v2 : int32) : float =      │

00:05:06 #11723 [Verbose] > │     v1 v0                                                                    │

00:05:06 #11724 [Verbose] > │ and method9 (v0 : float, v1 : (float []), v2 : uint64) : bool =              │

00:05:06 #11725 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │

00:05:06 #11726 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:05:06 #11727 [Verbose] > │     if v4 then                                                               │

00:05:06 #11728 [Verbose] > │         let v5 : float = v1.[int v2]                                         │

00:05:06 #11729 [Verbose] > │         let v6 : bool = v0 = v5                                              │

00:05:06 #11730 [Verbose] > │         if v6 then                                                           │

00:05:06 #11731 [Verbose] > │             let v7 : uint64 = v2 + 1UL                                       │

00:05:06 #11732 [Verbose] > │             method9(v0, v1, v7)                                              │

00:05:06 #11733 [Verbose] > │         else                                                                 │

00:05:06 #11734 [Verbose] > │             false                                                            │

00:05:06 #11735 [Verbose] > │     else                                                                     │

00:05:06 #11736 [Verbose] > │         true                                                                 │

00:05:06 #11737 [Verbose] > │ and method10 (v0 : uint64, v1 : Mut2) : bool =                               │

00:05:06 #11738 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:05:06 #11739 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:05:06 #11740 [Verbose] > │     v3                                                                       │

00:05:06 #11741 [Verbose] > │ and method11 (v0 : UH3, v1 : UH3) : UH3 =                                    │

00:05:06 #11742 [Verbose] > │     match v0 with                                                            │

00:05:06 #11743 [Verbose] > │     | UH3_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11744 [Verbose] > │         let v5 : UH3 = UH3_1(v2, v3, v1)                                     │

00:05:06 #11745 [Verbose] > │         method11(v4, v5)                                                     │

00:05:06 #11746 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:05:06 #11747 [Verbose] > │         v1                                                                   │

00:05:06 #11748 [Verbose] > │ and method13 (v0 : UH3, v1 : int32) : int32 =                                │

00:05:06 #11749 [Verbose] > │     match v0 with                                                            │

00:05:06 #11750 [Verbose] > │     | UH3_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11751 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:05:06 #11752 [Verbose] > │         method13(v4, v5)                                                     │

00:05:06 #11753 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:05:06 #11754 [Verbose] > │         v1                                                                   │

00:05:06 #11755 [Verbose] > │ and method14 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) :      │

00:05:06 #11756 [Verbose] > │ int32 =                                                                      │

00:05:06 #11757 [Verbose] > │     match v1 with                                                            │

00:05:06 #11758 [Verbose] > │     | UH3_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:06 #11759 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:05:06 #11760 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:05:06 #11761 [Verbose] > │         method14(v0, v5, v6)                                                 │

00:05:06 #11762 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:05:06 #11763 [Verbose] > │         v2                                                                   │

00:05:06 #11764 [Verbose] > │ and method12 (v0 : UH3) : (struct (int64 * int64) []) =                      │

00:05:06 #11765 [Verbose] > │     let v1 : int32 = 0                                                       │

00:05:06 #11766 [Verbose] > │     let v2 : int32 = method13(v0, v1)                                        │

00:05:06 #11767 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │

00:05:06 #11768 [Verbose] > │ int64)> (v2)                                                                 │

00:05:06 #11769 [Verbose] > │     let v4 : int32 = 0                                                       │

00:05:06 #11770 [Verbose] > │     let v5 : int32 = method14(v3, v0, v4)                                    │

00:05:06 #11771 [Verbose] > │     v3                                                                       │

00:05:06 #11772 [Verbose] > │ and method15 (v0 : int32, v1 : Mut1) : bool =                                │

00:05:06 #11773 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:05:06 #11774 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:05:06 #11775 [Verbose] > │     v3                                                                       │

00:05:06 #11776 [Verbose] > │ and closure3 () struct (v0 : int64, v1 : int64) : int64 =                    │

00:05:06 #11777 [Verbose] > │     v1                                                                       │

00:05:06 #11778 [Verbose] > │ and method17 (v0 : UH4, v1 : uint64) : uint64 =                              │

00:05:06 #11779 [Verbose] > │     match v0 with                                                            │

00:05:06 #11780 [Verbose] > │     | UH4_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11781 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:05:06 #11782 [Verbose] > │         method17(v4, v5)                                                     │

00:05:06 #11783 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:05:06 #11784 [Verbose] > │         v1                                                                   │

00:05:06 #11785 [Verbose] > │ and method18 (v0 : (struct (UH2 * US0) []), v1 : UH4, v2 : uint64) : uint64  │

00:05:06 #11786 [Verbose] > │ =                                                                            │

00:05:06 #11787 [Verbose] > │     match v1 with                                                            │

00:05:06 #11788 [Verbose] > │     | UH4_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:06 #11789 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:05:06 #11790 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:05:06 #11791 [Verbose] > │         method18(v0, v5, v6)                                                 │

00:05:06 #11792 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:05:06 #11793 [Verbose] > │         v2                                                                   │

00:05:06 #11794 [Verbose] > │ and method16 (v0 : UH4) : (struct (UH2 * US0) []) =                          │

00:05:06 #11795 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:05:06 #11796 [Verbose] > │     let v2 : uint64 = method17(v0, v1)                                       │

00:05:06 #11797 [Verbose] > │     let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)>  │

00:05:06 #11798 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:05:06 #11799 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:05:06 #11800 [Verbose] > │     let v5 : uint64 = method18(v3, v0, v4)                                   │

00:05:06 #11801 [Verbose] > │     v3                                                                       │

00:05:06 #11802 [Verbose] > │ and method20 (v0 : UH2, v1 : uint64) : uint64 =                              │

00:05:06 #11803 [Verbose] > │     match v0 with                                                            │

00:05:06 #11804 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:05:06 #11805 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │

00:05:06 #11806 [Verbose] > │         method20(v3, v4)                                                     │

00:05:06 #11807 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:05:06 #11808 [Verbose] > │         v1                                                                   │

00:05:06 #11809 [Verbose] > │ and method21 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │

00:05:06 #11810 [Verbose] > │     match v1 with                                                            │

00:05:06 #11811 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:05:06 #11812 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:05:06 #11813 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │

00:05:06 #11814 [Verbose] > │         method21(v0, v4, v5)                                                 │

00:05:06 #11815 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:05:06 #11816 [Verbose] > │         v2                                                                   │

00:05:06 #11817 [Verbose] > │ and method19 (v0 : UH2) : (string []) =                                      │

00:05:06 #11818 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:05:06 #11819 [Verbose] > │     let v2 : uint64 = method20(v0, v1)                                       │

00:05:06 #11820 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │

00:05:06 #11821 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:05:06 #11822 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:05:06 #11823 [Verbose] > │     let v5 : uint64 = method21(v3, v0, v4)                                   │

00:05:06 #11824 [Verbose] > │     v3                                                                       │

00:05:06 #11825 [Verbose] > │ and closure4 () (v0 : int64) : US1 =                                         │

00:05:06 #11826 [Verbose] > │     US1_0(v0)                                                                │

00:05:06 #11827 [Verbose] > │ and method22 () : (int64 -> US1) =                                           │

00:05:06 #11828 [Verbose] > │     closure4()                                                               │

00:05:06 #11829 [Verbose] > │ and method23 (v0 : uint64, v1 : Mut3) : bool =                               │

00:05:06 #11830 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:05:06 #11831 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:05:06 #11832 [Verbose] > │     v3                                                                       │

00:05:06 #11833 [Verbose] > │ and method24 (v0 : UH5, v1 : UH5) : UH5 =                                    │

00:05:06 #11834 [Verbose] > │     match v0 with                                                            │

00:05:06 #11835 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11836 [Verbose] > │         let v5 : UH5 = UH5_1(v2, v3, v1)                                     │

00:05:06 #11837 [Verbose] > │         method24(v4, v5)                                                     │

00:05:06 #11838 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:05:06 #11839 [Verbose] > │         v1                                                                   │

00:05:06 #11840 [Verbose] > │ and method26 (v0 : UH5, v1 : int32) : int32 =                                │

00:05:06 #11841 [Verbose] > │     match v0 with                                                            │

00:05:06 #11842 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11843 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:05:06 #11844 [Verbose] > │         method26(v4, v5)                                                     │

00:05:06 #11845 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:05:06 #11846 [Verbose] > │         v1                                                                   │

00:05:06 #11847 [Verbose] > │ and method27 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) :      │

00:05:06 #11848 [Verbose] > │ int32 =                                                                      │

00:05:06 #11849 [Verbose] > │     match v1 with                                                            │

00:05:06 #11850 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:06 #11851 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:05:06 #11852 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:05:06 #11853 [Verbose] > │         method27(v0, v5, v6)                                                 │

00:05:06 #11854 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:05:06 #11855 [Verbose] > │         v2                                                                   │

00:05:06 #11856 [Verbose] > │ and method25 (v0 : UH5) : (struct (int32 * int64) []) =                      │

00:05:06 #11857 [Verbose] > │     let v1 : int32 = 0                                                       │

00:05:06 #11858 [Verbose] > │     let v2 : int32 = method26(v0, v1)                                        │

00:05:06 #11859 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:05:06 #11860 [Verbose] > │ int64)> (v2)                                                                 │

00:05:06 #11861 [Verbose] > │     let v4 : int32 = 0                                                       │

00:05:06 #11862 [Verbose] > │     let v5 : int32 = method27(v3, v0, v4)                                    │

00:05:06 #11863 [Verbose] > │     v3                                                                       │

00:05:06 #11864 [Verbose] > │ and method28 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) =       │

00:05:06 #11865 [Verbose] > │     match v0 with                                                            │

00:05:06 #11866 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:05:06 #11867 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:05:06 #11868 [Verbose] > │         let v6 : UH6 = UH6_1(v2, v3, v1)                                     │

00:05:06 #11869 [Verbose] > │         method28(v4, v6, v5)                                                 │

00:05:06 #11870 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:05:06 #11871 [Verbose] > │         struct (v1, v2)                                                      │

00:05:06 #11872 [Verbose] > │ and method29 (v0 : UH6, v1 : UH6) : UH6 =                                    │

00:05:06 #11873 [Verbose] > │     match v0 with                                                            │

00:05:06 #11874 [Verbose] > │     | UH6_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11875 [Verbose] > │         let v5 : UH6 = UH6_1(v2, v3, v1)                                     │

00:05:06 #11876 [Verbose] > │         method29(v4, v5)                                                     │

00:05:06 #11877 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:05:06 #11878 [Verbose] > │         v1                                                                   │

00:05:06 #11879 [Verbose] > │ and method30 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 =            │

00:05:06 #11880 [Verbose] > │     match v1 with                                                            │

00:05:06 #11881 [Verbose] > │     | UH6_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:06 #11882 [Verbose] > │         let v6 : UH2 = method30(v0, v5, v2)                                  │

00:05:06 #11883 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │

00:05:06 #11884 [Verbose] > │         let v8 : int32 = int32 v7                                            │

00:05:06 #11885 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │

00:05:06 #11886 [Verbose] > │         UH2_1(v9, v6)                                                        │

00:05:06 #11887 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:05:06 #11888 [Verbose] > │         v2                                                                   │

00:05:06 #11889 [Verbose] > │ and method32 (v0 : UH2, v1 : int32) : int32 =                                │

00:05:06 #11890 [Verbose] > │     match v0 with                                                            │

00:05:06 #11891 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:05:06 #11892 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:05:06 #11893 [Verbose] > │         method32(v3, v4)                                                     │

00:05:06 #11894 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:05:06 #11895 [Verbose] > │         v1                                                                   │

00:05:06 #11896 [Verbose] > │ and method33 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │

00:05:06 #11897 [Verbose] > │     match v1 with                                                            │

00:05:06 #11898 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:05:06 #11899 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:05:06 #11900 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:05:06 #11901 [Verbose] > │         method33(v0, v4, v5)                                                 │

00:05:06 #11902 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:05:06 #11903 [Verbose] > │         v2                                                                   │

00:05:06 #11904 [Verbose] > │ and method31 (v0 : UH2) : (string []) =                                      │

00:05:06 #11905 [Verbose] > │     let v1 : int32 = 0                                                       │

00:05:06 #11906 [Verbose] > │     let v2 : int32 = method32(v0, v1)                                        │

00:05:06 #11907 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │

00:05:06 #11908 [Verbose] > │     let v4 : int32 = 0                                                       │

00:05:06 #11909 [Verbose] > │     let v5 : int32 = method33(v3, v0, v4)                                    │

00:05:06 #11910 [Verbose] > │     v3                                                                       │

00:05:06 #11911 [Verbose] > │ and method35 (v0 : UH5, v1 : uint64) : uint64 =                              │

00:05:06 #11912 [Verbose] > │     match v0 with                                                            │

00:05:06 #11913 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:05:06 #11914 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:05:06 #11915 [Verbose] > │         method35(v4, v5)                                                     │

00:05:06 #11916 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:05:06 #11917 [Verbose] > │         v1                                                                   │

00:05:06 #11918 [Verbose] > │ and method36 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) :     │

00:05:06 #11919 [Verbose] > │ uint64 =                                                                     │

00:05:06 #11920 [Verbose] > │     match v1 with                                                            │

00:05:06 #11921 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:06 #11922 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:05:06 #11923 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:05:06 #11924 [Verbose] > │         method36(v0, v5, v6)                                                 │

00:05:06 #11925 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:05:06 #11926 [Verbose] > │         v2                                                                   │

00:05:06 #11927 [Verbose] > │ and method34 (v0 : UH5) : (struct (int32 * int64) []) =                      │

00:05:06 #11928 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:05:06 #11929 [Verbose] > │     let v2 : uint64 = method35(v0, v1)                                       │

00:05:06 #11930 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:05:06 #11931 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │

00:05:06 #11932 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:05:06 #11933 [Verbose] > │     let v5 : uint64 = method36(v3, v0, v4)                                   │

00:05:06 #11934 [Verbose] > │     v3                                                                       │

00:05:06 #11935 [Verbose] > │ and closure5 () struct (v0 : int32, v1 : int64) : int64 =                    │

00:05:06 #11936 [Verbose] > │     v1                                                                       │

00:05:06 #11937 [Verbose] > │ and closure0 () () : unit =                                                  │

00:05:06 #11938 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:05:06 #11939 [Verbose] > │     let v1 : string = nameof v0                                              │

00:05:06 #11940 [Verbose] > │     let v2 : string = ""                                                     │

00:05:06 #11941 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:06 #11942 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:06 #11943 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │

00:05:06 #11944 [Verbose] > │     System.Console.WriteLine v3                                              │

00:05:06 #11945 [Verbose] > │     let v4 : float = 0.0                                                     │

00:05:06 #11946 [Verbose] > │     let v5 : float = 1.0                                                     │

00:05:06 #11947 [Verbose] > │     let v6 : float = 2.0                                                     │

00:05:06 #11948 [Verbose] > │     let v7 : float = 3.0                                                     │

00:05:06 #11949 [Verbose] > │     let v8 : float = 5.0                                                     │

00:05:06 #11950 [Verbose] > │     let v9 : float = 6.0                                                     │

00:05:06 #11951 [Verbose] > │     let v10 : UH0 = UH0_0                                                    │

00:05:06 #11952 [Verbose] > │     let v11 : UH0 = UH0_1(v8, v9, v10)                                       │

00:05:06 #11953 [Verbose] > │     let v12 : UH0 = UH0_1(v6, v7, v11)                                       │

00:05:06 #11954 [Verbose] > │     let v13 : UH0 = UH0_1(v4, v5, v12)                                       │

00:05:06 #11955 [Verbose] > │     let v14 : (struct (float * float) []) = method1(v13)                     │

00:05:06 #11956 [Verbose] > │     let v15 : uint64 = System.Convert.ToUInt64 v14.Length                    │

00:05:06 #11957 [Verbose] > │     let v16 : (struct (string * string * string * (int64 [])) []) =          │

00:05:06 #11958 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:05:06 #11959 [Verbose] > │ (System.Convert.ToInt32(v15))                                                │

00:05:06 #11960 [Verbose] > │     let v17 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:05:06 #11961 [Verbose] > │     while method4(v15, v17) do                                               │

00:05:06 #11962 [Verbose] > │         let v19 : uint64 = v17.l0                                            │

00:05:06 #11963 [Verbose] > │         let struct (v20 : float, v21 : float) = v14.[int v19]                │

00:05:06 #11964 [Verbose] > │         let v22 : string = $"%A{v20}"                                        │

00:05:06 #11965 [Verbose] > │         System.Console.WriteLine v2                                          │

00:05:06 #11966 [Verbose] > │         let v23 : string = $"Solution: {v22}  "                              │

00:05:06 #11967 [Verbose] > │         System.Console.WriteLine v23                                         │

00:05:06 #11968 [Verbose] > │         let v24 : int32 = 0                                                  │

00:05:06 #11969 [Verbose] > │         let v25 : string = "A"                                               │

00:05:06 #11970 [Verbose] > │         let v26 : (float -> float) = closure1()                              │

00:05:06 #11971 [Verbose] > │         let v27 : UH1 = UH1_0                                                │

00:05:06 #11972 [Verbose] > │         let v28 : UH1 = UH1_1(v24, v25, v26, v27)                            │

00:05:06 #11973 [Verbose] > │         let v29 : (struct (int32 * string * (float -> float)) []) =          │

00:05:06 #11974 [Verbose] > │ method5(v28)                                                                 │

00:05:06 #11975 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │

00:05:06 #11976 [Verbose] > │         let v31 : (struct (float * int64) []) = Array.zeroCreate<struct      │

00:05:06 #11977 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30))                               │

00:05:06 #11978 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:06 #11979 [Verbose] > │         while method4(v30, v32) do                                           │

00:05:06 #11980 [Verbose] > │             let v34 : uint64 = v32.l0                                        │

00:05:06 #11981 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │

00:05:06 #11982 [Verbose] > │ v29.[int v34]                                                                │

00:05:06 #11983 [Verbose] > │             let v38 : unit option = None                                     │

00:05:06 #11984 [Verbose] > │             let mutable _v38 = v38                                           │

00:05:06 #11985 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:05:06 #11986 [Verbose] > │             ()                                                               │

00:05:06 #11987 [Verbose] > │             #endif                                                           │

00:05:06 #11988 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:05:06 #11989 [Verbose] > │             ()                                                               │

00:05:06 #11990 [Verbose] > │             #endif                                                           │

00:05:06 #11991 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:05:06 #11992 [Verbose] > │             ()                                                               │

00:05:06 #11993 [Verbose] > │             #endif                                                           │

00:05:06 #11994 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:05:06 #11995 [Verbose] > │             System.GC.Collect ()                                             │

00:05:06 #11996 [Verbose] > │             ()                                                               │

00:05:06 #11997 [Verbose] > │             #endif                                                           │

00:05:06 #11998 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:05:06 #11999 [Verbose] > │             System.GC.Collect ()                                             │

00:05:06 #12000 [Verbose] > │             ()                                                               │

00:05:06 #12001 [Verbose] > │             #endif                                                           │

00:05:06 #12002 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:05:06 #12003 [Verbose] > │             System.GC.Collect ()                                             │

00:05:06 #12004 [Verbose] > │             ()                                                               │

00:05:06 #12005 [Verbose] > │             #endif                                                           │

00:05:06 #12006 [Verbose] > │             |> fun x -> _v38 <- Some x                                       │

00:05:06 #12007 [Verbose] > │             _v38 |> Option.get                                               │

00:05:06 #12008 [Verbose] > │             let v39 : (unit -> System.Diagnostics.Stopwatch) =               │

00:05:06 #12009 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:05:06 #12010 [Verbose] > │             let v40 : System.Diagnostics.Stopwatch = v39 ()                  │

00:05:06 #12011 [Verbose] > │             v40.Start ()                                                     │

00:05:06 #12012 [Verbose] > │             let v41 : int64 = v40.ElapsedMilliseconds                        │

00:05:06 #12013 [Verbose] > │             let v42 : (int32 []) = Array.zeroCreate<int32> (2000001)         │

00:05:06 #12014 [Verbose] > │             let v43 : Mut1 = {l0 = 0} : Mut1                                 │

00:05:06 #12015 [Verbose] > │             while method8(v43) do                                            │

00:05:06 #12016 [Verbose] > │                 let v45 : int32 = v43.l0                                     │

00:05:06 #12017 [Verbose] > │                 v42.[int v45] <- v45                                         │

00:05:06 #12018 [Verbose] > │                 let v46 : int32 = v45 + 1                                    │

00:05:06 #12019 [Verbose] > │                 v43.l0 <- v46                                                │

00:05:06 #12020 [Verbose] > │                 ()                                                           │

00:05:06 #12021 [Verbose] > │             let v47 : ((int32 -> float) -> ((int32 []) -> (float []))) =     │

00:05:06 #12022 [Verbose] > │ Array.Parallel.map                                                           │

00:05:06 #12023 [Verbose] > │             let v48 : (int32 -> float) = closure2(v20, v37)                  │

00:05:06 #12024 [Verbose] > │             let v49 : ((int32 []) -> (float [])) = v47 v48                   │

00:05:06 #12025 [Verbose] > │             let v50 : (float []) = v49 v42                                   │

00:05:06 #12026 [Verbose] > │             let v51 : int32 = v50.Length                                     │

00:05:06 #12027 [Verbose] > │             let v52 : int32 = v51 - 1                                        │

00:05:06 #12028 [Verbose] > │             let v53 : float = v50.[int v52]                                  │

00:05:06 #12029 [Verbose] > │             let v54 : int64 = v40.ElapsedMilliseconds                        │

00:05:06 #12030 [Verbose] > │             let v55 : int64 = v54 - v41                                      │

00:05:06 #12031 [Verbose] > │             let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55}  "  │

00:05:06 #12032 [Verbose] > │             System.Console.WriteLine v56                                     │

00:05:06 #12033 [Verbose] > │             v31.[int v34] <- struct (v53, v55)                               │

00:05:06 #12034 [Verbose] > │             let v57 : uint64 = v34 + 1UL                                     │

00:05:06 #12035 [Verbose] > │             v32.l0 <- v57                                                    │

00:05:06 #12036 [Verbose] > │             ()                                                               │

00:05:06 #12037 [Verbose] > │         let v58 : uint64 = System.Convert.ToUInt64 v31.Length                │

00:05:06 #12038 [Verbose] > │         let v59 : (float []) = Array.zeroCreate<float>                       │

00:05:06 #12039 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:05:06 #12040 [Verbose] > │         let v60 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:06 #12041 [Verbose] > │         while method4(v58, v60) do                                           │

00:05:06 #12042 [Verbose] > │             let v62 : uint64 = v60.l0                                        │

00:05:06 #12043 [Verbose] > │             let struct (v63 : float, v64 : int64) = v31.[int v62]            │

00:05:06 #12044 [Verbose] > │             v59.[int v62] <- v63                                             │

00:05:06 #12045 [Verbose] > │             let v65 : uint64 = v62 + 1UL                                     │

00:05:06 #12046 [Verbose] > │             v60.l0 <- v65                                                    │

00:05:06 #12047 [Verbose] > │             ()                                                               │

00:05:06 #12048 [Verbose] > │         let v66 : uint64 = System.Convert.ToUInt64 v59.Length                │

00:05:06 #12049 [Verbose] > │         let v67 : bool = v66 <= 1UL                                          │

00:05:06 #12050 [Verbose] > │         if v67 then                                                          │

00:05:06 #12051 [Verbose] > │             ()                                                               │

00:05:06 #12052 [Verbose] > │         else                                                                 │

00:05:06 #12053 [Verbose] > │             let v68 : float = v59.[int 0UL]                                  │

00:05:06 #12054 [Verbose] > │             let v69 : uint64 = 0UL                                           │

00:05:06 #12055 [Verbose] > │             let v70 : bool = method9(v68, v59, v69)                          │

00:05:06 #12056 [Verbose] > │             if v70 then                                                      │

00:05:06 #12057 [Verbose] > │                 ()                                                           │

00:05:06 #12058 [Verbose] > │             else                                                             │

00:05:06 #12059 [Verbose] > │                 let v71 : string = $"Challenge error: {v59}"                 │

00:05:06 #12060 [Verbose] > │                 failwith<unit> v71                                           │

00:05:06 #12061 [Verbose] > │         let v72 : string = $"%A{v21}"                                        │

00:05:06 #12062 [Verbose] > │         let v73 : (float []) = Array.zeroCreate<float>                       │

00:05:06 #12063 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:05:06 #12064 [Verbose] > │         let v74 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:06 #12065 [Verbose] > │         while method4(v58, v74) do                                           │

00:05:06 #12066 [Verbose] > │             let v76 : uint64 = v74.l0                                        │

00:05:06 #12067 [Verbose] > │             let struct (v77 : float, v78 : int64) = v31.[int v76]            │

00:05:06 #12068 [Verbose] > │             v73.[int v76] <- v77                                             │

00:05:06 #12069 [Verbose] > │             let v79 : uint64 = v76 + 1UL                                     │

00:05:06 #12070 [Verbose] > │             v74.l0 <- v79                                                    │

00:05:06 #12071 [Verbose] > │             ()                                                               │

00:05:06 #12072 [Verbose] > │         let v80 : float = v73.[int 0UL]                                      │

00:05:06 #12073 [Verbose] > │         let v81 : string = $"%A{v80}"                                        │

00:05:06 #12074 [Verbose] > │         let v82 : (int64 []) = Array.zeroCreate<int64>                       │

00:05:06 #12075 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:05:06 #12076 [Verbose] > │         let v83 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:06 #12077 [Verbose] > │         while method4(v58, v83) do                                           │

00:05:06 #12078 [Verbose] > │             let v85 : uint64 = v83.l0                                        │

00:05:06 #12079 [Verbose] > │             let struct (v86 : float, v87 : int64) = v31.[int v85]            │

00:05:06 #12080 [Verbose] > │             v82.[int v85] <- v87                                             │

00:05:06 #12081 [Verbose] > │             let v88 : uint64 = v85 + 1UL                                     │

00:05:06 #12082 [Verbose] > │             v83.l0 <- v88                                                    │

00:05:06 #12083 [Verbose] > │             ()                                                               │

00:05:06 #12084 [Verbose] > │         v16.[int v19] <- struct (v72, v22, v81, v82)                         │

00:05:06 #12085 [Verbose] > │         let v89 : uint64 = v19 + 1UL                                         │

00:05:06 #12086 [Verbose] > │         v17.l0 <- v89                                                        │

00:05:06 #12087 [Verbose] > │         ()                                                                   │

00:05:06 #12088 [Verbose] > │     let v90 : uint64 = System.Convert.ToUInt64 v16.Length                    │

00:05:06 #12089 [Verbose] > │     let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │

00:05:06 #12090 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:05:06 #12091 [Verbose] > │     let v92 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:05:06 #12092 [Verbose] > │     while method4(v90, v92) do                                               │

00:05:06 #12093 [Verbose] > │         let v94 : uint64 = v92.l0                                            │

00:05:06 #12094 [Verbose] > │         let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │

00:05:06 #12095 [Verbose] > │ ])) = v16.[int v94]                                                          │

00:05:06 #12096 [Verbose] > │         let v99 : uint64 = System.Convert.ToUInt64 v98.Length                │

00:05:06 #12097 [Verbose] > │         let v100 : UH3 = UH3_0                                               │

00:05:06 #12098 [Verbose] > │         let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2              │

00:05:06 #12099 [Verbose] > │         while method10(v99, v101) do                                         │

00:05:06 #12100 [Verbose] > │             let v103 : uint64 = v101.l0                                      │

00:05:06 #12101 [Verbose] > │             let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2         │

00:05:06 #12102 [Verbose] > │             let v106 : int64 = v98.[int v103]                                │

00:05:06 #12103 [Verbose] > │             let v107 : int64 = v105 + 1L                                     │

00:05:06 #12104 [Verbose] > │             let v108 : uint64 = v103 + 1UL                                   │

00:05:06 #12105 [Verbose] > │             let v109 : UH3 = UH3_1(v105, v106, v104)                         │

00:05:06 #12106 [Verbose] > │             v101.l0 <- v108                                                  │

00:05:06 #12107 [Verbose] > │             v101.l1 <- v109                                                  │

00:05:06 #12108 [Verbose] > │             v101.l2 <- v107                                                  │

00:05:06 #12109 [Verbose] > │             ()                                                               │

00:05:06 #12110 [Verbose] > │         let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2             │

00:05:06 #12111 [Verbose] > │         let v112 : UH3 = UH3_0                                               │

00:05:06 #12112 [Verbose] > │         let v113 : UH3 = method11(v110, v112)                                │

00:05:06 #12113 [Verbose] > │         let v114 : (struct (int64 * int64) []) = method12(v113)              │

00:05:06 #12114 [Verbose] > │         let v115 : int32 = v114.Length                                       │

00:05:06 #12115 [Verbose] > │         let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:05:06 #12116 [Verbose] > │ (int64 * int64)> (v115)                                                      │

00:05:06 #12117 [Verbose] > │         let v117 : Mut1 = {l0 = 0} : Mut1                                    │

00:05:06 #12118 [Verbose] > │         while method15(v115, v117) do                                        │

00:05:06 #12119 [Verbose] > │             let v119 : int32 = v117.l0                                       │

00:05:06 #12120 [Verbose] > │             let struct (v120 : int64, v121 : int64) = v114.[int v119]        │

00:05:06 #12121 [Verbose] > │             let v122 : int64 = v120 + 1L                                     │

00:05:06 #12122 [Verbose] > │             v116.[int v119] <- struct (v122, v121)                           │

00:05:06 #12123 [Verbose] > │             let v123 : int32 = v119 + 1                                      │

00:05:06 #12124 [Verbose] > │             v117.l0 <- v123                                                  │

00:05:06 #12125 [Verbose] > │             ()                                                               │

00:05:06 #12126 [Verbose] > │         let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:05:06 #12127 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:05:06 #12128 [Verbose] > │         let v125 : (struct (int64 * int64) -> int64) = closure3()            │

00:05:06 #12129 [Verbose] > │         let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:05:06 #12130 [Verbose] > │ ])) = v124 v125                                                              │

00:05:06 #12131 [Verbose] > │         let v127 : (struct (int64 * int64) []) = v126 v116                   │

00:05:06 #12132 [Verbose] > │         let struct (v128 : int64, v129 : int64) = v127.[int 0]               │

00:05:06 #12133 [Verbose] > │         let v130 : string = $"%A{struct (v128, v129)}"                       │

00:05:06 #12134 [Verbose] > │         let v131 : bool = v95 = v97                                          │

00:05:06 #12135 [Verbose] > │         let v136 : US0 =                                                     │

00:05:06 #12136 [Verbose] > │             if v131 then                                                     │

00:05:06 #12137 [Verbose] > │                 let v132 : System.ConsoleColor =                             │

00:05:06 #12138 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:05:06 #12139 [Verbose] > │                 US0_0(v132)                                                  │

00:05:06 #12140 [Verbose] > │             else                                                             │

00:05:06 #12141 [Verbose] > │                 let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:05:06 #12142 [Verbose] > │                 US0_0(v134)                                                  │

00:05:06 #12143 [Verbose] > │         let v137 : UH2 = UH2_0                                               │

00:05:06 #12144 [Verbose] > │         let v138 : UH2 = UH2_1(v130, v137)                                   │

00:05:06 #12145 [Verbose] > │         let v139 : UH2 = UH2_1(v97, v138)                                    │

00:05:06 #12146 [Verbose] > │         let v140 : UH2 = UH2_1(v95, v139)                                    │

00:05:06 #12147 [Verbose] > │         let v141 : UH2 = UH2_1(v96, v140)                                    │

00:05:06 #12148 [Verbose] > │         v91.[int v94] <- struct (v141, v136)                                 │

00:05:06 #12149 [Verbose] > │         let v142 : uint64 = v94 + 1UL                                        │

00:05:06 #12150 [Verbose] > │         v92.l0 <- v142                                                       │

00:05:06 #12151 [Verbose] > │         ()                                                                   │

00:05:06 #12152 [Verbose] > │     let v143 : string = "Input"                                              │

00:05:06 #12153 [Verbose] > │     let v144 : string = "Expected"                                           │

00:05:06 #12154 [Verbose] > │     let v145 : string = "Result"                                             │

00:05:06 #12155 [Verbose] > │     let v146 : string = "Best"                                               │

00:05:06 #12156 [Verbose] > │     let v147 : UH2 = UH2_0                                                   │

00:05:06 #12157 [Verbose] > │     let v148 : UH2 = UH2_1(v146, v147)                                       │

00:05:06 #12158 [Verbose] > │     let v149 : UH2 = UH2_1(v145, v148)                                       │

00:05:06 #12159 [Verbose] > │     let v150 : UH2 = UH2_1(v144, v149)                                       │

00:05:06 #12160 [Verbose] > │     let v151 : UH2 = UH2_1(v143, v150)                                       │

00:05:06 #12161 [Verbose] > │     let v152 : US0 = US0_1                                                   │

00:05:06 #12162 [Verbose] > │     let v153 : string = "---"                                                │

00:05:06 #12163 [Verbose] > │     let v154 : UH2 = UH2_0                                                   │

00:05:06 #12164 [Verbose] > │     let v155 : UH2 = UH2_1(v153, v154)                                       │

00:05:06 #12165 [Verbose] > │     let v156 : UH2 = UH2_1(v153, v155)                                       │

00:05:06 #12166 [Verbose] > │     let v157 : UH2 = UH2_1(v153, v156)                                       │

00:05:06 #12167 [Verbose] > │     let v158 : UH2 = UH2_1(v153, v157)                                       │

00:05:06 #12168 [Verbose] > │     let v159 : US0 = US0_1                                                   │

00:05:06 #12169 [Verbose] > │     let v160 : UH4 = UH4_0                                                   │

00:05:06 #12170 [Verbose] > │     let v161 : UH4 = UH4_1(v158, v159, v160)                                 │

00:05:06 #12171 [Verbose] > │     let v162 : UH4 = UH4_1(v151, v152, v161)                                 │

00:05:06 #12172 [Verbose] > │     let v163 : (struct (UH2 * US0) []) = method16(v162)                      │

00:05:06 #12173 [Verbose] > │     let v164 : uint64 = System.Convert.ToUInt64 v163.Length                  │

00:05:06 #12174 [Verbose] > │     let v165 : uint64 = System.Convert.ToUInt64 v91.Length                   │

00:05:06 #12175 [Verbose] > │     let v166 : uint64 = v164 + v165                                          │

00:05:06 #12176 [Verbose] > │     let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:05:06 #12177 [Verbose] > │ US0)> (System.Convert.ToInt32(v166))                                         │

00:05:06 #12178 [Verbose] > │     let v168 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12179 [Verbose] > │     while method4(v166, v168) do                                             │

00:05:06 #12180 [Verbose] > │         let v170 : uint64 = v168.l0                                          │

00:05:06 #12181 [Verbose] > │         let v171 : bool = v170 < v164                                        │

00:05:06 #12182 [Verbose] > │         let struct (v177 : UH2, v178 : US0) =                                │

00:05:06 #12183 [Verbose] > │             if v171 then                                                     │

00:05:06 #12184 [Verbose] > │                 let struct (v172 : UH2, v173 : US0) = v163.[int v170]        │

00:05:06 #12185 [Verbose] > │                 struct (v172, v173)                                          │

00:05:06 #12186 [Verbose] > │             else                                                             │

00:05:06 #12187 [Verbose] > │                 let v174 : uint64 = v170 - v164                              │

00:05:06 #12188 [Verbose] > │                 let struct (v175 : UH2, v176 : US0) = v91.[int v174]         │

00:05:06 #12189 [Verbose] > │                 struct (v175, v176)                                          │

00:05:06 #12190 [Verbose] > │         v167.[int v170] <- struct (v177, v178)                               │

00:05:06 #12191 [Verbose] > │         let v179 : uint64 = v170 + 1UL                                       │

00:05:06 #12192 [Verbose] > │         v168.l0 <- v179                                                      │

00:05:06 #12193 [Verbose] > │         ()                                                                   │

00:05:06 #12194 [Verbose] > │     let v180 : uint64 = System.Convert.ToUInt64 v167.Length                  │

00:05:06 #12195 [Verbose] > │     let v181 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:05:06 #12196 [Verbose] > │ (System.Convert.ToInt32(v180))                                               │

00:05:06 #12197 [Verbose] > │     let v182 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12198 [Verbose] > │     while method4(v180, v182) do                                             │

00:05:06 #12199 [Verbose] > │         let v184 : uint64 = v182.l0                                          │

00:05:06 #12200 [Verbose] > │         let struct (v185 : UH2, v186 : US0) = v167.[int v184]                │

00:05:06 #12201 [Verbose] > │         let v187 : (string []) = method19(v185)                              │

00:05:06 #12202 [Verbose] > │         v181.[int v184] <- v187                                              │

00:05:06 #12203 [Verbose] > │         let v188 : uint64 = v184 + 1UL                                       │

00:05:06 #12204 [Verbose] > │         v182.l0 <- v188                                                      │

00:05:06 #12205 [Verbose] > │         ()                                                                   │

00:05:06 #12206 [Verbose] > │     let v189 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:05:06 #12207 [Verbose] > │     let v190 : ((string []) []) = v189 v181                                  │

00:05:06 #12208 [Verbose] > │     let v191 : uint64 = System.Convert.ToUInt64 v190.Length                  │

00:05:06 #12209 [Verbose] > │     let v192 : (int64 []) = Array.zeroCreate<int64>                          │

00:05:06 #12210 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │

00:05:06 #12211 [Verbose] > │     let v193 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12212 [Verbose] > │     while method4(v191, v193) do                                             │

00:05:06 #12213 [Verbose] > │         let v195 : uint64 = v193.l0                                          │

00:05:06 #12214 [Verbose] > │         let v196 : (string []) = v190.[int v195]                             │

00:05:06 #12215 [Verbose] > │         let v197 : uint64 = System.Convert.ToUInt64 v196.Length              │

00:05:06 #12216 [Verbose] > │         let v198 : (int64 []) = Array.zeroCreate<int64>                      │

00:05:06 #12217 [Verbose] > │ (System.Convert.ToInt32(v197))                                               │

00:05:06 #12218 [Verbose] > │         let v199 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:05:06 #12219 [Verbose] > │         while method4(v197, v199) do                                         │

00:05:06 #12220 [Verbose] > │             let v201 : uint64 = v199.l0                                      │

00:05:06 #12221 [Verbose] > │             let v202 : string = v196.[int v201]                              │

00:05:06 #12222 [Verbose] > │             let v203 : int64 = System.Convert.ToInt64 v202.Length            │

00:05:06 #12223 [Verbose] > │             v198.[int v201] <- v203                                          │

00:05:06 #12224 [Verbose] > │             let v204 : uint64 = v201 + 1UL                                   │

00:05:06 #12225 [Verbose] > │             v199.l0 <- v204                                                  │

00:05:06 #12226 [Verbose] > │             ()                                                               │

00:05:06 #12227 [Verbose] > │         let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:05:06 #12228 [Verbose] > │         let v206 : (int64 []) = v205 v198                                    │

00:05:06 #12229 [Verbose] > │         let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:05:06 #12230 [Verbose] > │         let v208 : ((int64 []) -> int64 option) = v207 0                     │

00:05:06 #12231 [Verbose] > │         let v209 : int64 option = v208 v206                                  │

00:05:06 #12232 [Verbose] > │         let v210 : (int64 -> US1) = method22()                               │

00:05:06 #12233 [Verbose] > │         let v211 : US1 = US1_1                                               │

00:05:06 #12234 [Verbose] > │         let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │

00:05:06 #12235 [Verbose] > │         let v215 : int64 =                                                   │

00:05:06 #12236 [Verbose] > │             match v212 with                                                  │

00:05:06 #12237 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:05:06 #12238 [Verbose] > │                 0L                                                           │

00:05:06 #12239 [Verbose] > │             | US1_0(v213) -> (* Some *)                                      │

00:05:06 #12240 [Verbose] > │                 v213                                                         │

00:05:06 #12241 [Verbose] > │         v192.[int v195] <- v215                                              │

00:05:06 #12242 [Verbose] > │         let v216 : uint64 = v195 + 1UL                                       │

00:05:06 #12243 [Verbose] > │         v193.l0 <- v216                                                      │

00:05:06 #12244 [Verbose] > │         ()                                                                   │

00:05:06 #12245 [Verbose] > │     let v217 : uint64 = System.Convert.ToUInt64 v192.Length                  │

00:05:06 #12246 [Verbose] > │     let v218 : UH5 = UH5_0                                                   │

00:05:06 #12247 [Verbose] > │     let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3                   │

00:05:06 #12248 [Verbose] > │     while method23(v217, v219) do                                            │

00:05:06 #12249 [Verbose] > │         let v221 : uint64 = v219.l0                                          │

00:05:06 #12250 [Verbose] > │         let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2             │

00:05:06 #12251 [Verbose] > │         let v224 : int64 = v192.[int v221]                                   │

00:05:06 #12252 [Verbose] > │         let v225 : int32 = v223 + 1                                          │

00:05:06 #12253 [Verbose] > │         let v226 : uint64 = v221 + 1UL                                       │

00:05:06 #12254 [Verbose] > │         let v227 : UH5 = UH5_1(v223, v224, v222)                             │

00:05:06 #12255 [Verbose] > │         v219.l0 <- v226                                                      │

00:05:06 #12256 [Verbose] > │         v219.l1 <- v227                                                      │

00:05:06 #12257 [Verbose] > │         v219.l2 <- v225                                                      │

00:05:06 #12258 [Verbose] > │         ()                                                                   │

00:05:06 #12259 [Verbose] > │     let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2                 │

00:05:06 #12260 [Verbose] > │     let v230 : UH5 = UH5_0                                                   │

00:05:06 #12261 [Verbose] > │     let v231 : UH5 = method24(v228, v230)                                    │

00:05:06 #12262 [Verbose] > │     let v232 : (struct (int32 * int64) []) = method25(v231)                  │

00:05:06 #12263 [Verbose] > │     let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │

00:05:06 #12264 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:05:06 #12265 [Verbose] > │     let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │

00:05:06 #12266 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180))                          │

00:05:06 #12267 [Verbose] > │     let v235 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12268 [Verbose] > │     while method4(v180, v235) do                                             │

00:05:06 #12269 [Verbose] > │         let v237 : uint64 = v235.l0                                          │

00:05:06 #12270 [Verbose] > │         let struct (v238 : UH2, v239 : US0) = v167.[int v237]                │

00:05:06 #12271 [Verbose] > │         let v240 : UH6 = UH6_0                                               │

00:05:06 #12272 [Verbose] > │         let v241 : int32 = 0                                                 │

00:05:06 #12273 [Verbose] > │         let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241)   │

00:05:06 #12274 [Verbose] > │         let v244 : UH6 = UH6_0                                               │

00:05:06 #12275 [Verbose] > │         let v245 : UH6 = method29(v242, v244)                                │

00:05:06 #12276 [Verbose] > │         let v246 : UH2 = UH2_0                                               │

00:05:06 #12277 [Verbose] > │         let v247 : UH2 = method30(v233, v245, v246)                          │

00:05:06 #12278 [Verbose] > │         let v248 : (string []) = method31(v247)                              │

00:05:06 #12279 [Verbose] > │         v234.[int v237] <- struct (v248, v239)                               │

00:05:06 #12280 [Verbose] > │         let v249 : uint64 = v237 + 1UL                                       │

00:05:06 #12281 [Verbose] > │         v235.l0 <- v249                                                      │

00:05:06 #12282 [Verbose] > │         ()                                                                   │

00:05:06 #12283 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:06 #12284 [Verbose] > │     let v250 : uint64 = System.Convert.ToUInt64 v234.Length                  │

00:05:06 #12285 [Verbose] > │     let v251 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12286 [Verbose] > │     while method4(v250, v251) do                                             │

00:05:06 #12287 [Verbose] > │         let v253 : uint64 = v251.l0                                          │

00:05:06 #12288 [Verbose] > │         let struct (v254 : (string []), v255 : US0) = v234.[int v253]        │

00:05:06 #12289 [Verbose] > │         match v255 with                                                      │

00:05:06 #12290 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:05:06 #12291 [Verbose] > │             let v258 : unit option = None                                    │

00:05:06 #12292 [Verbose] > │             let mutable _v258 = v258                                         │

00:05:06 #12293 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:05:06 #12294 [Verbose] > │             ()                                                               │

00:05:06 #12295 [Verbose] > │             #endif                                                           │

00:05:06 #12296 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:05:06 #12297 [Verbose] > │             ()                                                               │

00:05:06 #12298 [Verbose] > │             #endif                                                           │

00:05:06 #12299 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:05:06 #12300 [Verbose] > │             ()                                                               │

00:05:06 #12301 [Verbose] > │             #endif                                                           │

00:05:06 #12302 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:05:06 #12303 [Verbose] > │             System.Console.ResetColor ()                                     │

00:05:06 #12304 [Verbose] > │             ()                                                               │

00:05:06 #12305 [Verbose] > │             #endif                                                           │

00:05:06 #12306 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:05:06 #12307 [Verbose] > │             System.Console.ResetColor ()                                     │

00:05:06 #12308 [Verbose] > │             ()                                                               │

00:05:06 #12309 [Verbose] > │             #endif                                                           │

00:05:06 #12310 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:05:06 #12311 [Verbose] > │             System.Console.ResetColor ()                                     │

00:05:06 #12312 [Verbose] > │             ()                                                               │

00:05:06 #12313 [Verbose] > │             #endif                                                           │

00:05:06 #12314 [Verbose] > │             |> fun x -> _v258 <- Some x                                      │

00:05:06 #12315 [Verbose] > │             _v258 |> Option.get                                              │

00:05:06 #12316 [Verbose] > │             ()                                                               │

00:05:06 #12317 [Verbose] > │         | US0_0(v256) -> (* Some *)                                          │

00:05:06 #12318 [Verbose] > │             let v257 : unit option = None                                    │

00:05:06 #12319 [Verbose] > │             let mutable _v257 = v257                                         │

00:05:06 #12320 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:05:06 #12321 [Verbose] > │             ()                                                               │

00:05:06 #12322 [Verbose] > │             #endif                                                           │

00:05:06 #12323 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:05:06 #12324 [Verbose] > │             ()                                                               │

00:05:06 #12325 [Verbose] > │             #endif                                                           │

00:05:06 #12326 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:05:06 #12327 [Verbose] > │             ()                                                               │

00:05:06 #12328 [Verbose] > │             #endif                                                           │

00:05:06 #12329 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:05:06 #12330 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:05:06 #12331 [Verbose] > │             ()                                                               │

00:05:06 #12332 [Verbose] > │             #endif                                                           │

00:05:06 #12333 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:05:06 #12334 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:05:06 #12335 [Verbose] > │             ()                                                               │

00:05:06 #12336 [Verbose] > │             #endif                                                           │

00:05:06 #12337 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:05:06 #12338 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:05:06 #12339 [Verbose] > │             ()                                                               │

00:05:06 #12340 [Verbose] > │             #endif                                                           │

00:05:06 #12341 [Verbose] > │             |> fun x -> _v257 <- Some x                                      │

00:05:06 #12342 [Verbose] > │             _v257 |> Option.get                                              │

00:05:06 #12343 [Verbose] > │             ()                                                               │

00:05:06 #12344 [Verbose] > │         let v259 : string = "\t| "                                           │

00:05:06 #12345 [Verbose] > │         let v260 : string = System.String.Join (v259, v254)                  │

00:05:06 #12346 [Verbose] > │         System.Console.WriteLine v260                                        │

00:05:06 #12347 [Verbose] > │         let v261 : unit option = None                                        │

00:05:06 #12348 [Verbose] > │         let mutable _v261 = v261                                             │

00:05:06 #12349 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:05:06 #12350 [Verbose] > │         ()                                                                   │

00:05:06 #12351 [Verbose] > │         #endif                                                               │

00:05:06 #12352 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:05:06 #12353 [Verbose] > │         ()                                                                   │

00:05:06 #12354 [Verbose] > │         #endif                                                               │

00:05:06 #12355 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:05:06 #12356 [Verbose] > │         ()                                                                   │

00:05:06 #12357 [Verbose] > │         #endif                                                               │

00:05:06 #12358 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:05:06 #12359 [Verbose] > │         System.Console.ResetColor ()                                         │

00:05:06 #12360 [Verbose] > │         ()                                                                   │

00:05:06 #12361 [Verbose] > │         #endif                                                               │

00:05:06 #12362 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:05:06 #12363 [Verbose] > │         System.Console.ResetColor ()                                         │

00:05:06 #12364 [Verbose] > │         ()                                                                   │

00:05:06 #12365 [Verbose] > │         #endif                                                               │

00:05:06 #12366 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:05:06 #12367 [Verbose] > │         System.Console.ResetColor ()                                         │

00:05:06 #12368 [Verbose] > │         ()                                                                   │

00:05:06 #12369 [Verbose] > │         #endif                                                               │

00:05:06 #12370 [Verbose] > │         |> fun x -> _v261 <- Some x                                          │

00:05:06 #12371 [Verbose] > │         _v261 |> Option.get                                                  │

00:05:06 #12372 [Verbose] > │         let v262 : uint64 = v253 + 1UL                                       │

00:05:06 #12373 [Verbose] > │         v251.l0 <- v262                                                      │

00:05:06 #12374 [Verbose] > │         ()                                                                   │

00:05:06 #12375 [Verbose] > │     let v263 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:05:06 #12376 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:05:06 #12377 [Verbose] > │     let v264 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12378 [Verbose] > │     while method4(v90, v264) do                                              │

00:05:06 #12379 [Verbose] > │         let v266 : uint64 = v264.l0                                          │

00:05:06 #12380 [Verbose] > │         let struct (v267 : string, v268 : string, v269 : string, v270 :      │

00:05:06 #12381 [Verbose] > │ (int64 [])) = v16.[int v266]                                                 │

00:05:06 #12382 [Verbose] > │         let v271 : (int64 -> float) = float                                  │

00:05:06 #12383 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v270.Length              │

00:05:06 #12384 [Verbose] > │         let v273 : (float []) = Array.zeroCreate<float>                      │

00:05:06 #12385 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │

00:05:06 #12386 [Verbose] > │         let v274 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:05:06 #12387 [Verbose] > │         while method4(v272, v274) do                                         │

00:05:06 #12388 [Verbose] > │             let v276 : uint64 = v274.l0                                      │

00:05:06 #12389 [Verbose] > │             let v277 : int64 = v270.[int v276]                               │

00:05:06 #12390 [Verbose] > │             let v278 : float = v271 v277                                     │

00:05:06 #12391 [Verbose] > │             v273.[int v276] <- v278                                          │

00:05:06 #12392 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │

00:05:06 #12393 [Verbose] > │             v274.l0 <- v279                                                  │

00:05:06 #12394 [Verbose] > │             ()                                                               │

00:05:06 #12395 [Verbose] > │         v263.[int v266] <- v273                                              │

00:05:06 #12396 [Verbose] > │         let v280 : uint64 = v266 + 1UL                                       │

00:05:06 #12397 [Verbose] > │         v264.l0 <- v280                                                      │

00:05:06 #12398 [Verbose] > │         ()                                                                   │

00:05:06 #12399 [Verbose] > │     let v281 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:05:06 #12400 [Verbose] > │     let v282 : ((float []) []) = v281 v263                                   │

00:05:06 #12401 [Verbose] > │     let v283 : uint64 = System.Convert.ToUInt64 v282.Length                  │

00:05:06 #12402 [Verbose] > │     let v284 : (float []) = Array.zeroCreate<float>                          │

00:05:06 #12403 [Verbose] > │ (System.Convert.ToInt32(v283))                                               │

00:05:06 #12404 [Verbose] > │     let v285 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12405 [Verbose] > │     while method4(v283, v285) do                                             │

00:05:06 #12406 [Verbose] > │         let v287 : uint64 = v285.l0                                          │

00:05:06 #12407 [Verbose] > │         let v288 : (float []) = v282.[int v287]                              │

00:05:06 #12408 [Verbose] > │         let v289 : ((float []) -> float) = Array.average                     │

00:05:06 #12409 [Verbose] > │         let v290 : float = v289 v288                                         │

00:05:06 #12410 [Verbose] > │         v284.[int v287] <- v290                                              │

00:05:06 #12411 [Verbose] > │         let v291 : uint64 = v287 + 1UL                                       │

00:05:06 #12412 [Verbose] > │         v285.l0 <- v291                                                      │

00:05:06 #12413 [Verbose] > │         ()                                                                   │

00:05:06 #12414 [Verbose] > │     let v292 : (float -> int64) = int64                                      │

00:05:06 #12415 [Verbose] > │     let v293 : uint64 = System.Convert.ToUInt64 v284.Length                  │

00:05:06 #12416 [Verbose] > │     let v294 : (int64 []) = Array.zeroCreate<int64>                          │

00:05:06 #12417 [Verbose] > │ (System.Convert.ToInt32(v293))                                               │

00:05:06 #12418 [Verbose] > │     let v295 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12419 [Verbose] > │     while method4(v293, v295) do                                             │

00:05:06 #12420 [Verbose] > │         let v297 : uint64 = v295.l0                                          │

00:05:06 #12421 [Verbose] > │         let v298 : float = v284.[int v297]                                   │

00:05:06 #12422 [Verbose] > │         let v299 : int64 = v292 v298                                         │

00:05:06 #12423 [Verbose] > │         v294.[int v297] <- v299                                              │

00:05:06 #12424 [Verbose] > │         let v300 : uint64 = v297 + 1UL                                       │

00:05:06 #12425 [Verbose] > │         v295.l0 <- v300                                                      │

00:05:06 #12426 [Verbose] > │         ()                                                                   │

00:05:06 #12427 [Verbose] > │     let v301 : uint64 = System.Convert.ToUInt64 v294.Length                  │

00:05:06 #12428 [Verbose] > │     let v302 : UH5 = UH5_0                                                   │

00:05:06 #12429 [Verbose] > │     let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3                   │

00:05:06 #12430 [Verbose] > │     while method23(v301, v303) do                                            │

00:05:06 #12431 [Verbose] > │         let v305 : uint64 = v303.l0                                          │

00:05:06 #12432 [Verbose] > │         let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2             │

00:05:06 #12433 [Verbose] > │         let v308 : int64 = v294.[int v305]                                   │

00:05:06 #12434 [Verbose] > │         let v309 : int32 = v307 + 1                                          │

00:05:06 #12435 [Verbose] > │         let v310 : uint64 = v305 + 1UL                                       │

00:05:06 #12436 [Verbose] > │         let v311 : UH5 = UH5_1(v307, v308, v306)                             │

00:05:06 #12437 [Verbose] > │         v303.l0 <- v310                                                      │

00:05:06 #12438 [Verbose] > │         v303.l1 <- v311                                                      │

00:05:06 #12439 [Verbose] > │         v303.l2 <- v309                                                      │

00:05:06 #12440 [Verbose] > │         ()                                                                   │

00:05:06 #12441 [Verbose] > │     let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2                 │

00:05:06 #12442 [Verbose] > │     let v314 : UH5 = UH5_0                                                   │

00:05:06 #12443 [Verbose] > │     let v315 : UH5 = method24(v312, v314)                                    │

00:05:06 #12444 [Verbose] > │     let v316 : (struct (int32 * int64) []) = method34(v315)                  │

00:05:06 #12445 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:06 #12446 [Verbose] > │     let v317 : string = "Average Ranking  "                                  │

00:05:06 #12447 [Verbose] > │     System.Console.WriteLine v317                                            │

00:05:06 #12448 [Verbose] > │     let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:05:06 #12449 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:05:06 #12450 [Verbose] > │     let v319 : (struct (int32 * int64) -> int64) = closure5()                │

00:05:06 #12451 [Verbose] > │     let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:05:06 #12452 [Verbose] > │ = v318 v319                                                                  │

00:05:06 #12453 [Verbose] > │     let v321 : (struct (int32 * int64) []) = v320 v316                       │

00:05:06 #12454 [Verbose] > │     let v322 : uint64 = System.Convert.ToUInt64 v321.Length                  │

00:05:06 #12455 [Verbose] > │     let v323 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:06 #12456 [Verbose] > │     while method4(v322, v323) do                                             │

00:05:06 #12457 [Verbose] > │         let v325 : uint64 = v323.l0                                          │

00:05:06 #12458 [Verbose] > │         let struct (v326 : int32, v327 : int64) = v321.[int v325]            │

00:05:06 #12459 [Verbose] > │         let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │

00:05:06 #12460 [Verbose] > │ "                                                                            │

00:05:06 #12461 [Verbose] > │         System.Console.WriteLine v328                                        │

00:05:06 #12462 [Verbose] > │         let v329 : uint64 = v325 + 1UL                                       │

00:05:06 #12463 [Verbose] > │         v323.l0 <- v329                                                      │

00:05:06 #12464 [Verbose] > │         ()                                                                   │

00:05:06 #12465 [Verbose] > │     ()                                                                       │

00:05:06 #12466 [Verbose] > │ and method0 () : unit =                                                      │

00:05:06 #12467 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:05:06 #12468 [Verbose] > │     let v1 : string = nameof v0                                              │

00:05:06 #12469 [Verbose] > │     let v2 : string = ""                                                     │

00:05:06 #12470 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:06 #12471 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:06 #12472 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │

00:05:06 #12473 [Verbose] > │     System.Console.WriteLine v3                                              │

00:05:06 #12474 [Verbose] > │     let v4 : float = 0.0                                                     │

00:05:06 #12475 [Verbose] > │     let v5 : float = 1.0                                                     │

00:05:06 #12476 [Verbose] > │     let v6 : float = 2.0                                                     │

00:05:06 #12477 [Verbose] > │     let v7 : float = 3.0                                                     │

00:05:06 #12478 [Verbose] > │     let v8 : float = 5.0                                                     │

00:05:06 #12479 [Verbose] > │     let v9 : float = 6.0                                                     │

00:05:06 #12480 [Verbose] > │     let v10 : UH0 = UH0_0                                                    │

00:05:06 #12481 [Verbose] > │     let v11 : UH0 = UH0_1(v8, v9, v10)                                       │

00:05:06 #12482 [Verbose] > │     let v12 : UH0 = UH0_1(v6, v7, v11)                                       │

00:05:06 #12483 [Verbose] > │     let v13 : UH0 = UH0_1(v4, v5, v12)                                       │

00:05:06 #12484 [Verbose] > │     let v14 : (struct (float * float) []) = method1(v13)                     │

00:05:06 #12485 [Verbose] > │     let v15 : uint64 = System.Convert.ToUInt64 v14.Length                    │

00:05:06 #12486 [Verbose] > │     let v16 : (struct (string * string * string * (int64 [])) []) =          │

00:05:06 #12487 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:05:06 #12488 [Verbose] > │ (System.Convert.ToInt32(v15))                                                │

00:05:06 #12489 [Verbose] > │     let v17 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:05:06 #12490 [Verbose] > │     while method4(v15, v17) do                                               │

00:05:06 #12491 [Verbose] > │         let v19 : uint64 = v17.l0                                            │

00:05:06 #12492 [Verbose] > │         let struct (v20 : float, v21 : float) = v14.[int v19]                │

00:05:06 #12493 [Verbose] > │         let v22 : string = $"%A{v20}"                                        │

00:05:06 #12494 [Verbose] > │         System.Console.WriteLine v2                                          │

00:05:06 #12495 [Verbose] > │         let v23 : string = $"Solution: {v22}  "                              │

00:05:06 #12496 [Verbose] > │         System.Console.WriteLine v23                                         │

00:05:06 #12497 [Verbose] > │         let v24 : int32 = 0                                                  │

00:05:06 #12498 [Verbose] > │         let v25 : string = "A"                                               │

00:05:06 #12499 [Verbose] > │         let v26 : (float -> float) = closure1()                              │

00:05:06 #12500 [Verbose] > │         let v27 : UH1 = UH1_0                                                │

00:05:07 #12501 [Verbose] > │         let v28 : UH1 = UH1_1(v24, v25, v26, v27)                            │

00:05:07 #12502 [Verbose] > │         let v29 : (struct (int32 * string * (float -> float)) []) =          │

00:05:07 #12503 [Verbose] > │ method5(v28)                                                                 │

00:05:07 #12504 [Verbose] > │         let v30 : uint64 = System.Convert.ToUInt64 v29.Length                │

00:05:07 #12505 [Verbose] > │         let v31 : (struct (float * int64) []) = Array.zeroCreate<struct      │

00:05:07 #12506 [Verbose] > │ (float * int64)> (System.Convert.ToInt32(v30))                               │

00:05:07 #12507 [Verbose] > │         let v32 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:07 #12508 [Verbose] > │         while method4(v30, v32) do                                           │

00:05:07 #12509 [Verbose] > │             let v34 : uint64 = v32.l0                                        │

00:05:07 #12510 [Verbose] > │             let struct (v35 : int32, v36 : string, v37 : (float -> float)) = │

00:05:07 #12511 [Verbose] > │ v29.[int v34]                                                                │

00:05:07 #12512 [Verbose] > │             let v38 : unit option = None                                     │

00:05:07 #12513 [Verbose] > │             let mutable _v38 = v38                                           │

00:05:07 #12514 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:05:07 #12515 [Verbose] > │             ()                                                               │

00:05:07 #12516 [Verbose] > │             #endif                                                           │

00:05:07 #12517 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:05:07 #12518 [Verbose] > │             ()                                                               │

00:05:07 #12519 [Verbose] > │             #endif                                                           │

00:05:07 #12520 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:05:07 #12521 [Verbose] > │             ()                                                               │

00:05:07 #12522 [Verbose] > │             #endif                                                           │

00:05:07 #12523 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:05:07 #12524 [Verbose] > │             System.GC.Collect ()                                             │

00:05:07 #12525 [Verbose] > │             ()                                                               │

00:05:07 #12526 [Verbose] > │             #endif                                                           │

00:05:07 #12527 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:05:07 #12528 [Verbose] > │             System.GC.Collect ()                                             │

00:05:07 #12529 [Verbose] > │             ()                                                               │

00:05:07 #12530 [Verbose] > │             #endif                                                           │

00:05:07 #12531 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:05:07 #12532 [Verbose] > │             System.GC.Collect ()                                             │

00:05:07 #12533 [Verbose] > │             ()                                                               │

00:05:07 #12534 [Verbose] > │             #endif                                                           │

00:05:07 #12535 [Verbose] > │             |> fun x -> _v38 <- Some x                                       │

00:05:07 #12536 [Verbose] > │             _v38 |> Option.get                                               │

00:05:07 #12537 [Verbose] > │             let v39 : (unit -> System.Diagnostics.Stopwatch) =               │

00:05:07 #12538 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:05:07 #12539 [Verbose] > │             let v40 : System.Diagnostics.Stopwatch = v39 ()                  │

00:05:07 #12540 [Verbose] > │             v40.Start ()                                                     │

00:05:07 #12541 [Verbose] > │             let v41 : int64 = v40.ElapsedMilliseconds                        │

00:05:07 #12542 [Verbose] > │             let v42 : (int32 []) = Array.zeroCreate<int32> (2000001)         │

00:05:07 #12543 [Verbose] > │             let v43 : Mut1 = {l0 = 0} : Mut1                                 │

00:05:07 #12544 [Verbose] > │             while method8(v43) do                                            │

00:05:07 #12545 [Verbose] > │                 let v45 : int32 = v43.l0                                     │

00:05:07 #12546 [Verbose] > │                 v42.[int v45] <- v45                                         │

00:05:07 #12547 [Verbose] > │                 let v46 : int32 = v45 + 1                                    │

00:05:07 #12548 [Verbose] > │                 v43.l0 <- v46                                                │

00:05:07 #12549 [Verbose] > │                 ()                                                           │

00:05:07 #12550 [Verbose] > │             let v47 : ((int32 -> float) -> ((int32 []) -> (float []))) =     │

00:05:07 #12551 [Verbose] > │ Array.Parallel.map                                                           │

00:05:07 #12552 [Verbose] > │             let v48 : (int32 -> float) = closure2(v20, v37)                  │

00:05:07 #12553 [Verbose] > │             let v49 : ((int32 []) -> (float [])) = v47 v48                   │

00:05:07 #12554 [Verbose] > │             let v50 : (float []) = v49 v42                                   │

00:05:07 #12555 [Verbose] > │             let v51 : int32 = v50.Length                                     │

00:05:07 #12556 [Verbose] > │             let v52 : int32 = v51 - 1                                        │

00:05:07 #12557 [Verbose] > │             let v53 : float = v50.[int v52]                                  │

00:05:07 #12558 [Verbose] > │             let v54 : int64 = v40.ElapsedMilliseconds                        │

00:05:07 #12559 [Verbose] > │             let v55 : int64 = v54 - v41                                      │

00:05:07 #12560 [Verbose] > │             let v56 : string = $"Test case {v35 + 1}. {v36}. Time: {v55}  "  │

00:05:07 #12561 [Verbose] > │             System.Console.WriteLine v56                                     │

00:05:07 #12562 [Verbose] > │             v31.[int v34] <- struct (v53, v55)                               │

00:05:07 #12563 [Verbose] > │             let v57 : uint64 = v34 + 1UL                                     │

00:05:07 #12564 [Verbose] > │             v32.l0 <- v57                                                    │

00:05:07 #12565 [Verbose] > │             ()                                                               │

00:05:07 #12566 [Verbose] > │         let v58 : uint64 = System.Convert.ToUInt64 v31.Length                │

00:05:07 #12567 [Verbose] > │         let v59 : (float []) = Array.zeroCreate<float>                       │

00:05:07 #12568 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:05:07 #12569 [Verbose] > │         let v60 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:07 #12570 [Verbose] > │         while method4(v58, v60) do                                           │

00:05:07 #12571 [Verbose] > │             let v62 : uint64 = v60.l0                                        │

00:05:07 #12572 [Verbose] > │             let struct (v63 : float, v64 : int64) = v31.[int v62]            │

00:05:07 #12573 [Verbose] > │             v59.[int v62] <- v63                                             │

00:05:07 #12574 [Verbose] > │             let v65 : uint64 = v62 + 1UL                                     │

00:05:07 #12575 [Verbose] > │             v60.l0 <- v65                                                    │

00:05:07 #12576 [Verbose] > │             ()                                                               │

00:05:07 #12577 [Verbose] > │         let v66 : uint64 = System.Convert.ToUInt64 v59.Length                │

00:05:07 #12578 [Verbose] > │         let v67 : bool = v66 <= 1UL                                          │

00:05:07 #12579 [Verbose] > │         if v67 then                                                          │

00:05:07 #12580 [Verbose] > │             ()                                                               │

00:05:07 #12581 [Verbose] > │         else                                                                 │

00:05:07 #12582 [Verbose] > │             let v68 : float = v59.[int 0UL]                                  │

00:05:07 #12583 [Verbose] > │             let v69 : uint64 = 0UL                                           │

00:05:07 #12584 [Verbose] > │             let v70 : bool = method9(v68, v59, v69)                          │

00:05:07 #12585 [Verbose] > │             if v70 then                                                      │

00:05:07 #12586 [Verbose] > │                 ()                                                           │

00:05:07 #12587 [Verbose] > │             else                                                             │

00:05:07 #12588 [Verbose] > │                 let v71 : string = $"Challenge error: {v59}"                 │

00:05:07 #12589 [Verbose] > │                 failwith<unit> v71                                           │

00:05:07 #12590 [Verbose] > │         let v72 : string = $"%A{v21}"                                        │

00:05:07 #12591 [Verbose] > │         let v73 : (float []) = Array.zeroCreate<float>                       │

00:05:07 #12592 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:05:07 #12593 [Verbose] > │         let v74 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:07 #12594 [Verbose] > │         while method4(v58, v74) do                                           │

00:05:07 #12595 [Verbose] > │             let v76 : uint64 = v74.l0                                        │

00:05:07 #12596 [Verbose] > │             let struct (v77 : float, v78 : int64) = v31.[int v76]            │

00:05:07 #12597 [Verbose] > │             v73.[int v76] <- v77                                             │

00:05:07 #12598 [Verbose] > │             let v79 : uint64 = v76 + 1UL                                     │

00:05:07 #12599 [Verbose] > │             v74.l0 <- v79                                                    │

00:05:07 #12600 [Verbose] > │             ()                                                               │

00:05:07 #12601 [Verbose] > │         let v80 : float = v73.[int 0UL]                                      │

00:05:07 #12602 [Verbose] > │         let v81 : string = $"%A{v80}"                                        │

00:05:07 #12603 [Verbose] > │         let v82 : (int64 []) = Array.zeroCreate<int64>                       │

00:05:07 #12604 [Verbose] > │ (System.Convert.ToInt32(v58))                                                │

00:05:07 #12605 [Verbose] > │         let v83 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:05:07 #12606 [Verbose] > │         while method4(v58, v83) do                                           │

00:05:07 #12607 [Verbose] > │             let v85 : uint64 = v83.l0                                        │

00:05:07 #12608 [Verbose] > │             let struct (v86 : float, v87 : int64) = v31.[int v85]            │

00:05:07 #12609 [Verbose] > │             v82.[int v85] <- v87                                             │

00:05:07 #12610 [Verbose] > │             let v88 : uint64 = v85 + 1UL                                     │

00:05:07 #12611 [Verbose] > │             v83.l0 <- v88                                                    │

00:05:07 #12612 [Verbose] > │             ()                                                               │

00:05:07 #12613 [Verbose] > │         v16.[int v19] <- struct (v72, v22, v81, v82)                         │

00:05:07 #12614 [Verbose] > │         let v89 : uint64 = v19 + 1UL                                         │

00:05:07 #12615 [Verbose] > │         v17.l0 <- v89                                                        │

00:05:07 #12616 [Verbose] > │         ()                                                                   │

00:05:07 #12617 [Verbose] > │     let v90 : uint64 = System.Convert.ToUInt64 v16.Length                    │

00:05:07 #12618 [Verbose] > │     let v91 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)> │

00:05:07 #12619 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:05:07 #12620 [Verbose] > │     let v92 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:05:07 #12621 [Verbose] > │     while method4(v90, v92) do                                               │

00:05:07 #12622 [Verbose] > │         let v94 : uint64 = v92.l0                                            │

00:05:07 #12623 [Verbose] > │         let struct (v95 : string, v96 : string, v97 : string, v98 : (int64 [ │

00:05:07 #12624 [Verbose] > │ ])) = v16.[int v94]                                                          │

00:05:07 #12625 [Verbose] > │         let v99 : uint64 = System.Convert.ToUInt64 v98.Length                │

00:05:07 #12626 [Verbose] > │         let v100 : UH3 = UH3_0                                               │

00:05:07 #12627 [Verbose] > │         let v101 : Mut2 = {l0 = 0UL; l1 = v100; l2 = 0L} : Mut2              │

00:05:07 #12628 [Verbose] > │         while method10(v99, v101) do                                         │

00:05:07 #12629 [Verbose] > │             let v103 : uint64 = v101.l0                                      │

00:05:07 #12630 [Verbose] > │             let struct (v104 : UH3, v105 : int64) = v101.l1, v101.l2         │

00:05:07 #12631 [Verbose] > │             let v106 : int64 = v98.[int v103]                                │

00:05:07 #12632 [Verbose] > │             let v107 : int64 = v105 + 1L                                     │

00:05:07 #12633 [Verbose] > │             let v108 : uint64 = v103 + 1UL                                   │

00:05:07 #12634 [Verbose] > │             let v109 : UH3 = UH3_1(v105, v106, v104)                         │

00:05:07 #12635 [Verbose] > │             v101.l0 <- v108                                                  │

00:05:07 #12636 [Verbose] > │             v101.l1 <- v109                                                  │

00:05:07 #12637 [Verbose] > │             v101.l2 <- v107                                                  │

00:05:07 #12638 [Verbose] > │             ()                                                               │

00:05:07 #12639 [Verbose] > │         let struct (v110 : UH3, v111 : int64) = v101.l1, v101.l2             │

00:05:07 #12640 [Verbose] > │         let v112 : UH3 = UH3_0                                               │

00:05:07 #12641 [Verbose] > │         let v113 : UH3 = method11(v110, v112)                                │

00:05:07 #12642 [Verbose] > │         let v114 : (struct (int64 * int64) []) = method12(v113)              │

00:05:07 #12643 [Verbose] > │         let v115 : int32 = v114.Length                                       │

00:05:07 #12644 [Verbose] > │         let v116 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:05:07 #12645 [Verbose] > │ (int64 * int64)> (v115)                                                      │

00:05:07 #12646 [Verbose] > │         let v117 : Mut1 = {l0 = 0} : Mut1                                    │

00:05:07 #12647 [Verbose] > │         while method15(v115, v117) do                                        │

00:05:07 #12648 [Verbose] > │             let v119 : int32 = v117.l0                                       │

00:05:07 #12649 [Verbose] > │             let struct (v120 : int64, v121 : int64) = v114.[int v119]        │

00:05:07 #12650 [Verbose] > │             let v122 : int64 = v120 + 1L                                     │

00:05:07 #12651 [Verbose] > │             v116.[int v119] <- struct (v122, v121)                           │

00:05:07 #12652 [Verbose] > │             let v123 : int32 = v119 + 1                                      │

00:05:07 #12653 [Verbose] > │             v117.l0 <- v123                                                  │

00:05:07 #12654 [Verbose] > │             ()                                                               │

00:05:07 #12655 [Verbose] > │         let v124 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:05:07 #12656 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:05:07 #12657 [Verbose] > │         let v125 : (struct (int64 * int64) -> int64) = closure3()            │

00:05:07 #12658 [Verbose] > │         let v126 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:05:07 #12659 [Verbose] > │ ])) = v124 v125                                                              │

00:05:07 #12660 [Verbose] > │         let v127 : (struct (int64 * int64) []) = v126 v116                   │

00:05:07 #12661 [Verbose] > │         let struct (v128 : int64, v129 : int64) = v127.[int 0]               │

00:05:07 #12662 [Verbose] > │         let v130 : string = $"%A{struct (v128, v129)}"                       │

00:05:07 #12663 [Verbose] > │         let v131 : bool = v95 = v97                                          │

00:05:07 #12664 [Verbose] > │         let v136 : US0 =                                                     │

00:05:07 #12665 [Verbose] > │             if v131 then                                                     │

00:05:07 #12666 [Verbose] > │                 let v132 : System.ConsoleColor =                             │

00:05:07 #12667 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:05:07 #12668 [Verbose] > │                 US0_0(v132)                                                  │

00:05:07 #12669 [Verbose] > │             else                                                             │

00:05:07 #12670 [Verbose] > │                 let v134 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:05:07 #12671 [Verbose] > │                 US0_0(v134)                                                  │

00:05:07 #12672 [Verbose] > │         let v137 : UH2 = UH2_0                                               │

00:05:07 #12673 [Verbose] > │         let v138 : UH2 = UH2_1(v130, v137)                                   │

00:05:07 #12674 [Verbose] > │         let v139 : UH2 = UH2_1(v97, v138)                                    │

00:05:07 #12675 [Verbose] > │         let v140 : UH2 = UH2_1(v95, v139)                                    │

00:05:07 #12676 [Verbose] > │         let v141 : UH2 = UH2_1(v96, v140)                                    │

00:05:07 #12677 [Verbose] > │         v91.[int v94] <- struct (v141, v136)                                 │

00:05:07 #12678 [Verbose] > │         let v142 : uint64 = v94 + 1UL                                        │

00:05:07 #12679 [Verbose] > │         v92.l0 <- v142                                                       │

00:05:07 #12680 [Verbose] > │         ()                                                                   │

00:05:07 #12681 [Verbose] > │     let v143 : string = "Input"                                              │

00:05:07 #12682 [Verbose] > │     let v144 : string = "Expected"                                           │

00:05:07 #12683 [Verbose] > │     let v145 : string = "Result"                                             │

00:05:07 #12684 [Verbose] > │     let v146 : string = "Best"                                               │

00:05:07 #12685 [Verbose] > │     let v147 : UH2 = UH2_0                                                   │

00:05:07 #12686 [Verbose] > │     let v148 : UH2 = UH2_1(v146, v147)                                       │

00:05:07 #12687 [Verbose] > │     let v149 : UH2 = UH2_1(v145, v148)                                       │

00:05:07 #12688 [Verbose] > │     let v150 : UH2 = UH2_1(v144, v149)                                       │

00:05:07 #12689 [Verbose] > │     let v151 : UH2 = UH2_1(v143, v150)                                       │

00:05:07 #12690 [Verbose] > │     let v152 : US0 = US0_1                                                   │

00:05:07 #12691 [Verbose] > │     let v153 : string = "---"                                                │

00:05:07 #12692 [Verbose] > │     let v154 : UH2 = UH2_0                                                   │

00:05:07 #12693 [Verbose] > │     let v155 : UH2 = UH2_1(v153, v154)                                       │

00:05:07 #12694 [Verbose] > │     let v156 : UH2 = UH2_1(v153, v155)                                       │

00:05:07 #12695 [Verbose] > │     let v157 : UH2 = UH2_1(v153, v156)                                       │

00:05:07 #12696 [Verbose] > │     let v158 : UH2 = UH2_1(v153, v157)                                       │

00:05:07 #12697 [Verbose] > │     let v159 : US0 = US0_1                                                   │

00:05:07 #12698 [Verbose] > │     let v160 : UH4 = UH4_0                                                   │

00:05:07 #12699 [Verbose] > │     let v161 : UH4 = UH4_1(v158, v159, v160)                                 │

00:05:07 #12700 [Verbose] > │     let v162 : UH4 = UH4_1(v151, v152, v161)                                 │

00:05:07 #12701 [Verbose] > │     let v163 : (struct (UH2 * US0) []) = method16(v162)                      │

00:05:07 #12702 [Verbose] > │     let v164 : uint64 = System.Convert.ToUInt64 v163.Length                  │

00:05:07 #12703 [Verbose] > │     let v165 : uint64 = System.Convert.ToUInt64 v91.Length                   │

00:05:07 #12704 [Verbose] > │     let v166 : uint64 = v164 + v165                                          │

00:05:07 #12705 [Verbose] > │     let v167 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:05:07 #12706 [Verbose] > │ US0)> (System.Convert.ToInt32(v166))                                         │

00:05:07 #12707 [Verbose] > │     let v168 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12708 [Verbose] > │     while method4(v166, v168) do                                             │

00:05:07 #12709 [Verbose] > │         let v170 : uint64 = v168.l0                                          │

00:05:07 #12710 [Verbose] > │         let v171 : bool = v170 < v164                                        │

00:05:07 #12711 [Verbose] > │         let struct (v177 : UH2, v178 : US0) =                                │

00:05:07 #12712 [Verbose] > │             if v171 then                                                     │

00:05:07 #12713 [Verbose] > │                 let struct (v172 : UH2, v173 : US0) = v163.[int v170]        │

00:05:07 #12714 [Verbose] > │                 struct (v172, v173)                                          │

00:05:07 #12715 [Verbose] > │             else                                                             │

00:05:07 #12716 [Verbose] > │                 let v174 : uint64 = v170 - v164                              │

00:05:07 #12717 [Verbose] > │                 let struct (v175 : UH2, v176 : US0) = v91.[int v174]         │

00:05:07 #12718 [Verbose] > │                 struct (v175, v176)                                          │

00:05:07 #12719 [Verbose] > │         v167.[int v170] <- struct (v177, v178)                               │

00:05:07 #12720 [Verbose] > │         let v179 : uint64 = v170 + 1UL                                       │

00:05:07 #12721 [Verbose] > │         v168.l0 <- v179                                                      │

00:05:07 #12722 [Verbose] > │         ()                                                                   │

00:05:07 #12723 [Verbose] > │     let v180 : uint64 = System.Convert.ToUInt64 v167.Length                  │

00:05:07 #12724 [Verbose] > │     let v181 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:05:07 #12725 [Verbose] > │ (System.Convert.ToInt32(v180))                                               │

00:05:07 #12726 [Verbose] > │     let v182 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12727 [Verbose] > │     while method4(v180, v182) do                                             │

00:05:07 #12728 [Verbose] > │         let v184 : uint64 = v182.l0                                          │

00:05:07 #12729 [Verbose] > │         let struct (v185 : UH2, v186 : US0) = v167.[int v184]                │

00:05:07 #12730 [Verbose] > │         let v187 : (string []) = method19(v185)                              │

00:05:07 #12731 [Verbose] > │         v181.[int v184] <- v187                                              │

00:05:07 #12732 [Verbose] > │         let v188 : uint64 = v184 + 1UL                                       │

00:05:07 #12733 [Verbose] > │         v182.l0 <- v188                                                      │

00:05:07 #12734 [Verbose] > │         ()                                                                   │

00:05:07 #12735 [Verbose] > │     let v189 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:05:07 #12736 [Verbose] > │     let v190 : ((string []) []) = v189 v181                                  │

00:05:07 #12737 [Verbose] > │     let v191 : uint64 = System.Convert.ToUInt64 v190.Length                  │

00:05:07 #12738 [Verbose] > │     let v192 : (int64 []) = Array.zeroCreate<int64>                          │

00:05:07 #12739 [Verbose] > │ (System.Convert.ToInt32(v191))                                               │

00:05:07 #12740 [Verbose] > │     let v193 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12741 [Verbose] > │     while method4(v191, v193) do                                             │

00:05:07 #12742 [Verbose] > │         let v195 : uint64 = v193.l0                                          │

00:05:07 #12743 [Verbose] > │         let v196 : (string []) = v190.[int v195]                             │

00:05:07 #12744 [Verbose] > │         let v197 : uint64 = System.Convert.ToUInt64 v196.Length              │

00:05:07 #12745 [Verbose] > │         let v198 : (int64 []) = Array.zeroCreate<int64>                      │

00:05:07 #12746 [Verbose] > │ (System.Convert.ToInt32(v197))                                               │

00:05:07 #12747 [Verbose] > │         let v199 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:05:07 #12748 [Verbose] > │         while method4(v197, v199) do                                         │

00:05:07 #12749 [Verbose] > │             let v201 : uint64 = v199.l0                                      │

00:05:07 #12750 [Verbose] > │             let v202 : string = v196.[int v201]                              │

00:05:07 #12751 [Verbose] > │             let v203 : int64 = System.Convert.ToInt64 v202.Length            │

00:05:07 #12752 [Verbose] > │             v198.[int v201] <- v203                                          │

00:05:07 #12753 [Verbose] > │             let v204 : uint64 = v201 + 1UL                                   │

00:05:07 #12754 [Verbose] > │             v199.l0 <- v204                                                  │

00:05:07 #12755 [Verbose] > │             ()                                                               │

00:05:07 #12756 [Verbose] > │         let v205 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:05:07 #12757 [Verbose] > │         let v206 : (int64 []) = v205 v198                                    │

00:05:07 #12758 [Verbose] > │         let v207 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:05:07 #12759 [Verbose] > │         let v208 : ((int64 []) -> int64 option) = v207 0                     │

00:05:07 #12760 [Verbose] > │         let v209 : int64 option = v208 v206                                  │

00:05:07 #12761 [Verbose] > │         let v210 : (int64 -> US1) = method22()                               │

00:05:07 #12762 [Verbose] > │         let v211 : US1 = US1_1                                               │

00:05:07 #12763 [Verbose] > │         let v212 : US1 = v209 |> Option.map v210 |> Option.defaultValue v211 │

00:05:07 #12764 [Verbose] > │         let v215 : int64 =                                                   │

00:05:07 #12765 [Verbose] > │             match v212 with                                                  │

00:05:07 #12766 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:05:07 #12767 [Verbose] > │                 0L                                                           │

00:05:07 #12768 [Verbose] > │             | US1_0(v213) -> (* Some *)                                      │

00:05:07 #12769 [Verbose] > │                 v213                                                         │

00:05:07 #12770 [Verbose] > │         v192.[int v195] <- v215                                              │

00:05:07 #12771 [Verbose] > │         let v216 : uint64 = v195 + 1UL                                       │

00:05:07 #12772 [Verbose] > │         v193.l0 <- v216                                                      │

00:05:07 #12773 [Verbose] > │         ()                                                                   │

00:05:07 #12774 [Verbose] > │     let v217 : uint64 = System.Convert.ToUInt64 v192.Length                  │

00:05:07 #12775 [Verbose] > │     let v218 : UH5 = UH5_0                                                   │

00:05:07 #12776 [Verbose] > │     let v219 : Mut3 = {l0 = 0UL; l1 = v218; l2 = 0} : Mut3                   │

00:05:07 #12777 [Verbose] > │     while method23(v217, v219) do                                            │

00:05:07 #12778 [Verbose] > │         let v221 : uint64 = v219.l0                                          │

00:05:07 #12779 [Verbose] > │         let struct (v222 : UH5, v223 : int32) = v219.l1, v219.l2             │

00:05:07 #12780 [Verbose] > │         let v224 : int64 = v192.[int v221]                                   │

00:05:07 #12781 [Verbose] > │         let v225 : int32 = v223 + 1                                          │

00:05:07 #12782 [Verbose] > │         let v226 : uint64 = v221 + 1UL                                       │

00:05:07 #12783 [Verbose] > │         let v227 : UH5 = UH5_1(v223, v224, v222)                             │

00:05:07 #12784 [Verbose] > │         v219.l0 <- v226                                                      │

00:05:07 #12785 [Verbose] > │         v219.l1 <- v227                                                      │

00:05:07 #12786 [Verbose] > │         v219.l2 <- v225                                                      │

00:05:07 #12787 [Verbose] > │         ()                                                                   │

00:05:07 #12788 [Verbose] > │     let struct (v228 : UH5, v229 : int32) = v219.l1, v219.l2                 │

00:05:07 #12789 [Verbose] > │     let v230 : UH5 = UH5_0                                                   │

00:05:07 #12790 [Verbose] > │     let v231 : UH5 = method24(v228, v230)                                    │

00:05:07 #12791 [Verbose] > │     let v232 : (struct (int32 * int64) []) = method25(v231)                  │

00:05:07 #12792 [Verbose] > │     let v233 : Map<int32, int64> = v232 |> Array.map (fun (struct (a, b)) -> │

00:05:07 #12793 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:05:07 #12794 [Verbose] > │     let v234 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │

00:05:07 #12795 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v180))                          │

00:05:07 #12796 [Verbose] > │     let v235 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12797 [Verbose] > │     while method4(v180, v235) do                                             │

00:05:07 #12798 [Verbose] > │         let v237 : uint64 = v235.l0                                          │

00:05:07 #12799 [Verbose] > │         let struct (v238 : UH2, v239 : US0) = v167.[int v237]                │

00:05:07 #12800 [Verbose] > │         let v240 : UH6 = UH6_0                                               │

00:05:07 #12801 [Verbose] > │         let v241 : int32 = 0                                                 │

00:05:07 #12802 [Verbose] > │         let struct (v242 : UH6, v243 : int32) = method28(v238, v240, v241)   │

00:05:07 #12803 [Verbose] > │         let v244 : UH6 = UH6_0                                               │

00:05:07 #12804 [Verbose] > │         let v245 : UH6 = method29(v242, v244)                                │

00:05:07 #12805 [Verbose] > │         let v246 : UH2 = UH2_0                                               │

00:05:07 #12806 [Verbose] > │         let v247 : UH2 = method30(v233, v245, v246)                          │

00:05:07 #12807 [Verbose] > │         let v248 : (string []) = method31(v247)                              │

00:05:07 #12808 [Verbose] > │         v234.[int v237] <- struct (v248, v239)                               │

00:05:07 #12809 [Verbose] > │         let v249 : uint64 = v237 + 1UL                                       │

00:05:07 #12810 [Verbose] > │         v235.l0 <- v249                                                      │

00:05:07 #12811 [Verbose] > │         ()                                                                   │

00:05:07 #12812 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:07 #12813 [Verbose] > │     let v250 : uint64 = System.Convert.ToUInt64 v234.Length                  │

00:05:07 #12814 [Verbose] > │     let v251 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12815 [Verbose] > │     while method4(v250, v251) do                                             │

00:05:07 #12816 [Verbose] > │         let v253 : uint64 = v251.l0                                          │

00:05:07 #12817 [Verbose] > │         let struct (v254 : (string []), v255 : US0) = v234.[int v253]        │

00:05:07 #12818 [Verbose] > │         match v255 with                                                      │

00:05:07 #12819 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:05:07 #12820 [Verbose] > │             let v258 : unit option = None                                    │

00:05:07 #12821 [Verbose] > │             let mutable _v258 = v258                                         │

00:05:07 #12822 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:05:07 #12823 [Verbose] > │             ()                                                               │

00:05:07 #12824 [Verbose] > │             #endif                                                           │

00:05:07 #12825 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:05:07 #12826 [Verbose] > │             ()                                                               │

00:05:07 #12827 [Verbose] > │             #endif                                                           │

00:05:07 #12828 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:05:07 #12829 [Verbose] > │             ()                                                               │

00:05:07 #12830 [Verbose] > │             #endif                                                           │

00:05:07 #12831 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:05:07 #12832 [Verbose] > │             System.Console.ResetColor ()                                     │

00:05:07 #12833 [Verbose] > │             ()                                                               │

00:05:07 #12834 [Verbose] > │             #endif                                                           │

00:05:07 #12835 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:05:07 #12836 [Verbose] > │             System.Console.ResetColor ()                                     │

00:05:07 #12837 [Verbose] > │             ()                                                               │

00:05:07 #12838 [Verbose] > │             #endif                                                           │

00:05:07 #12839 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:05:07 #12840 [Verbose] > │             System.Console.ResetColor ()                                     │

00:05:07 #12841 [Verbose] > │             ()                                                               │

00:05:07 #12842 [Verbose] > │             #endif                                                           │

00:05:07 #12843 [Verbose] > │             |> fun x -> _v258 <- Some x                                      │

00:05:07 #12844 [Verbose] > │             _v258 |> Option.get                                              │

00:05:07 #12845 [Verbose] > │             ()                                                               │

00:05:07 #12846 [Verbose] > │         | US0_0(v256) -> (* Some *)                                          │

00:05:07 #12847 [Verbose] > │             let v257 : unit option = None                                    │

00:05:07 #12848 [Verbose] > │             let mutable _v257 = v257                                         │

00:05:07 #12849 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:05:07 #12850 [Verbose] > │             ()                                                               │

00:05:07 #12851 [Verbose] > │             #endif                                                           │

00:05:07 #12852 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:05:07 #12853 [Verbose] > │             ()                                                               │

00:05:07 #12854 [Verbose] > │             #endif                                                           │

00:05:07 #12855 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:05:07 #12856 [Verbose] > │             ()                                                               │

00:05:07 #12857 [Verbose] > │             #endif                                                           │

00:05:07 #12858 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:05:07 #12859 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:05:07 #12860 [Verbose] > │             ()                                                               │

00:05:07 #12861 [Verbose] > │             #endif                                                           │

00:05:07 #12862 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:05:07 #12863 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:05:07 #12864 [Verbose] > │             ()                                                               │

00:05:07 #12865 [Verbose] > │             #endif                                                           │

00:05:07 #12866 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:05:07 #12867 [Verbose] > │             System.Console.ForegroundColor <- v256                           │

00:05:07 #12868 [Verbose] > │             ()                                                               │

00:05:07 #12869 [Verbose] > │             #endif                                                           │

00:05:07 #12870 [Verbose] > │             |> fun x -> _v257 <- Some x                                      │

00:05:07 #12871 [Verbose] > │             _v257 |> Option.get                                              │

00:05:07 #12872 [Verbose] > │             ()                                                               │

00:05:07 #12873 [Verbose] > │         let v259 : string = "\t| "                                           │

00:05:07 #12874 [Verbose] > │         let v260 : string = System.String.Join (v259, v254)                  │

00:05:07 #12875 [Verbose] > │         System.Console.WriteLine v260                                        │

00:05:07 #12876 [Verbose] > │         let v261 : unit option = None                                        │

00:05:07 #12877 [Verbose] > │         let mutable _v261 = v261                                             │

00:05:07 #12878 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:05:07 #12879 [Verbose] > │         ()                                                                   │

00:05:07 #12880 [Verbose] > │         #endif                                                               │

00:05:07 #12881 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:05:07 #12882 [Verbose] > │         ()                                                                   │

00:05:07 #12883 [Verbose] > │         #endif                                                               │

00:05:07 #12884 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:05:07 #12885 [Verbose] > │         ()                                                                   │

00:05:07 #12886 [Verbose] > │         #endif                                                               │

00:05:07 #12887 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:05:07 #12888 [Verbose] > │         System.Console.ResetColor ()                                         │

00:05:07 #12889 [Verbose] > │         ()                                                                   │

00:05:07 #12890 [Verbose] > │         #endif                                                               │

00:05:07 #12891 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:05:07 #12892 [Verbose] > │         System.Console.ResetColor ()                                         │

00:05:07 #12893 [Verbose] > │         ()                                                                   │

00:05:07 #12894 [Verbose] > │         #endif                                                               │

00:05:07 #12895 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:05:07 #12896 [Verbose] > │         System.Console.ResetColor ()                                         │

00:05:07 #12897 [Verbose] > │         ()                                                                   │

00:05:07 #12898 [Verbose] > │         #endif                                                               │

00:05:07 #12899 [Verbose] > │         |> fun x -> _v261 <- Some x                                          │

00:05:07 #12900 [Verbose] > │         _v261 |> Option.get                                                  │

00:05:07 #12901 [Verbose] > │         let v262 : uint64 = v253 + 1UL                                       │

00:05:07 #12902 [Verbose] > │         v251.l0 <- v262                                                      │

00:05:07 #12903 [Verbose] > │         ()                                                                   │

00:05:07 #12904 [Verbose] > │     let v263 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:05:07 #12905 [Verbose] > │ (System.Convert.ToInt32(v90))                                                │

00:05:07 #12906 [Verbose] > │     let v264 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12907 [Verbose] > │     while method4(v90, v264) do                                              │

00:05:07 #12908 [Verbose] > │         let v266 : uint64 = v264.l0                                          │

00:05:07 #12909 [Verbose] > │         let struct (v267 : string, v268 : string, v269 : string, v270 :      │

00:05:07 #12910 [Verbose] > │ (int64 [])) = v16.[int v266]                                                 │

00:05:07 #12911 [Verbose] > │         let v271 : (int64 -> float) = float                                  │

00:05:07 #12912 [Verbose] > │         let v272 : uint64 = System.Convert.ToUInt64 v270.Length              │

00:05:07 #12913 [Verbose] > │         let v273 : (float []) = Array.zeroCreate<float>                      │

00:05:07 #12914 [Verbose] > │ (System.Convert.ToInt32(v272))                                               │

00:05:07 #12915 [Verbose] > │         let v274 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:05:07 #12916 [Verbose] > │         while method4(v272, v274) do                                         │

00:05:07 #12917 [Verbose] > │             let v276 : uint64 = v274.l0                                      │

00:05:07 #12918 [Verbose] > │             let v277 : int64 = v270.[int v276]                               │

00:05:07 #12919 [Verbose] > │             let v278 : float = v271 v277                                     │

00:05:07 #12920 [Verbose] > │             v273.[int v276] <- v278                                          │

00:05:07 #12921 [Verbose] > │             let v279 : uint64 = v276 + 1UL                                   │

00:05:07 #12922 [Verbose] > │             v274.l0 <- v279                                                  │

00:05:07 #12923 [Verbose] > │             ()                                                               │

00:05:07 #12924 [Verbose] > │         v263.[int v266] <- v273                                              │

00:05:07 #12925 [Verbose] > │         let v280 : uint64 = v266 + 1UL                                       │

00:05:07 #12926 [Verbose] > │         v264.l0 <- v280                                                      │

00:05:07 #12927 [Verbose] > │         ()                                                                   │

00:05:07 #12928 [Verbose] > │     let v281 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:05:07 #12929 [Verbose] > │     let v282 : ((float []) []) = v281 v263                                   │

00:05:07 #12930 [Verbose] > │     let v283 : uint64 = System.Convert.ToUInt64 v282.Length                  │

00:05:07 #12931 [Verbose] > │     let v284 : (float []) = Array.zeroCreate<float>                          │

00:05:07 #12932 [Verbose] > │ (System.Convert.ToInt32(v283))                                               │

00:05:07 #12933 [Verbose] > │     let v285 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12934 [Verbose] > │     while method4(v283, v285) do                                             │

00:05:07 #12935 [Verbose] > │         let v287 : uint64 = v285.l0                                          │

00:05:07 #12936 [Verbose] > │         let v288 : (float []) = v282.[int v287]                              │

00:05:07 #12937 [Verbose] > │         let v289 : ((float []) -> float) = Array.average                     │

00:05:07 #12938 [Verbose] > │         let v290 : float = v289 v288                                         │

00:05:07 #12939 [Verbose] > │         v284.[int v287] <- v290                                              │

00:05:07 #12940 [Verbose] > │         let v291 : uint64 = v287 + 1UL                                       │

00:05:07 #12941 [Verbose] > │         v285.l0 <- v291                                                      │

00:05:07 #12942 [Verbose] > │         ()                                                                   │

00:05:07 #12943 [Verbose] > │     let v292 : (float -> int64) = int64                                      │

00:05:07 #12944 [Verbose] > │     let v293 : uint64 = System.Convert.ToUInt64 v284.Length                  │

00:05:07 #12945 [Verbose] > │     let v294 : (int64 []) = Array.zeroCreate<int64>                          │

00:05:07 #12946 [Verbose] > │ (System.Convert.ToInt32(v293))                                               │

00:05:07 #12947 [Verbose] > │     let v295 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12948 [Verbose] > │     while method4(v293, v295) do                                             │

00:05:07 #12949 [Verbose] > │         let v297 : uint64 = v295.l0                                          │

00:05:07 #12950 [Verbose] > │         let v298 : float = v284.[int v297]                                   │

00:05:07 #12951 [Verbose] > │         let v299 : int64 = v292 v298                                         │

00:05:07 #12952 [Verbose] > │         v294.[int v297] <- v299                                              │

00:05:07 #12953 [Verbose] > │         let v300 : uint64 = v297 + 1UL                                       │

00:05:07 #12954 [Verbose] > │         v295.l0 <- v300                                                      │

00:05:07 #12955 [Verbose] > │         ()                                                                   │

00:05:07 #12956 [Verbose] > │     let v301 : uint64 = System.Convert.ToUInt64 v294.Length                  │

00:05:07 #12957 [Verbose] > │     let v302 : UH5 = UH5_0                                                   │

00:05:07 #12958 [Verbose] > │     let v303 : Mut3 = {l0 = 0UL; l1 = v302; l2 = 0} : Mut3                   │

00:05:07 #12959 [Verbose] > │     while method23(v301, v303) do                                            │

00:05:07 #12960 [Verbose] > │         let v305 : uint64 = v303.l0                                          │

00:05:07 #12961 [Verbose] > │         let struct (v306 : UH5, v307 : int32) = v303.l1, v303.l2             │

00:05:07 #12962 [Verbose] > │         let v308 : int64 = v294.[int v305]                                   │

00:05:07 #12963 [Verbose] > │         let v309 : int32 = v307 + 1                                          │

00:05:07 #12964 [Verbose] > │         let v310 : uint64 = v305 + 1UL                                       │

00:05:07 #12965 [Verbose] > │         let v311 : UH5 = UH5_1(v307, v308, v306)                             │

00:05:07 #12966 [Verbose] > │         v303.l0 <- v310                                                      │

00:05:07 #12967 [Verbose] > │         v303.l1 <- v311                                                      │

00:05:07 #12968 [Verbose] > │         v303.l2 <- v309                                                      │

00:05:07 #12969 [Verbose] > │         ()                                                                   │

00:05:07 #12970 [Verbose] > │     let struct (v312 : UH5, v313 : int32) = v303.l1, v303.l2                 │

00:05:07 #12971 [Verbose] > │     let v314 : UH5 = UH5_0                                                   │

00:05:07 #12972 [Verbose] > │     let v315 : UH5 = method24(v312, v314)                                    │

00:05:07 #12973 [Verbose] > │     let v316 : (struct (int32 * int64) []) = method34(v315)                  │

00:05:07 #12974 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:07 #12975 [Verbose] > │     let v317 : string = "Average Ranking  "                                  │

00:05:07 #12976 [Verbose] > │     System.Console.WriteLine v317                                            │

00:05:07 #12977 [Verbose] > │     let v318 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:05:07 #12978 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:05:07 #12979 [Verbose] > │     let v319 : (struct (int32 * int64) -> int64) = closure5()                │

00:05:07 #12980 [Verbose] > │     let v320 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:05:07 #12981 [Verbose] > │ = v318 v319                                                                  │

00:05:07 #12982 [Verbose] > │     let v321 : (struct (int32 * int64) []) = v320 v316                       │

00:05:07 #12983 [Verbose] > │     let v322 : uint64 = System.Convert.ToUInt64 v321.Length                  │

00:05:07 #12984 [Verbose] > │     let v323 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:05:07 #12985 [Verbose] > │     while method4(v322, v323) do                                             │

00:05:07 #12986 [Verbose] > │         let v325 : uint64 = v323.l0                                          │

00:05:07 #12987 [Verbose] > │         let struct (v326 : int32, v327 : int64) = v321.[int v325]            │

00:05:07 #12988 [Verbose] > │         let v328 : string = $"Test case %d{v326 + 1}. Average Time: %A{v327} │

00:05:07 #12989 [Verbose] > │ "                                                                            │

00:05:07 #12990 [Verbose] > │         System.Console.WriteLine v328                                        │

00:05:07 #12991 [Verbose] > │         let v329 : uint64 = v325 + 1UL                                       │

00:05:07 #12992 [Verbose] > │         v323.l0 <- v329                                                      │

00:05:07 #12993 [Verbose] > │         ()                                                                   │

00:05:07 #12994 [Verbose] > │     ()                                                                       │

00:05:07 #12995 [Verbose] > │ method0()                                                                    │

00:05:07 #12996 [Verbose] > │                                                                              │

00:05:07 #12997 [Verbose] > │                                                                              │

00:05:07 #12998 [Verbose] > │                                                                              │

00:05:07 #12999 [Verbose] > │ Test: v0                                                                     │

00:05:07 #13000 [Verbose] > │                                                                              │

00:05:07 #13001 [Verbose] > │ Solution: 0.0                                                                │

00:05:07 #13002 [Verbose] > │ Test case 1. A. Time: 30                                                     │

00:05:07 #13003 [Verbose] > │                                                                              │

00:05:07 #13004 [Verbose] > │ Solution: 2.0                                                                │

00:05:07 #13005 [Verbose] > │ Test case 1. A. Time: 15                                                     │

00:05:07 #13006 [Verbose] > │                                                                              │

00:05:07 #13007 [Verbose] > │ Solution: 5.0                                                                │

00:05:07 #13008 [Verbose] > │ Test case 1. A. Time: 15                                                     │

00:05:07 #13009 [Verbose] > │                                                                              │

00:05:07 #13010 [Verbose] > │ Input	| Expected	| Result	| Best                                                   │

00:05:07 #13011 [Verbose] > │ ---  	| ---     	| ---   	| ---                                                    │

00:05:07 #13012 [Verbose] > │ 0.0  	| 1.0     	| 1.0   	| struct (1L, 30L)                                       │

00:05:07 #13013 [Verbose] > │ 2.0  	| 3.0     	| 3.0   	| struct (1L, 15L)                                       │

00:05:07 #13014 [Verbose] > │ 5.0  	| 6.0     	| 6.0   	| struct (1L, 15L)                                       │

00:05:07 #13015 [Verbose] > │                                                                              │

00:05:07 #13016 [Verbose] > │ Average Ranking                                                              │

00:05:07 #13017 [Verbose] > │ Test case 1. Average Time: 20L                                               │

00:05:07 #13018 [Verbose] > │                                                                              │

00:05:07 #13019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:09 #13020 [Verbose] > [NbConvertApp] Converting notebook benchmark.dib.ipynb to html

00:05:09 #13021 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:05:09 #13022 [Verbose] >   validate(nb)

00:05:10 #13023 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:05:10 #13024 [Verbose] >   return _pygments_highlight(

00:05:10 #13025 [Verbose] > [NbConvertApp] Writing 418549 bytes to benchmark.dib.html

00:05:11 #13026 [Debug] executeAsync / exitCode: 0 / output.Length: 242641

00:05:11 #13027 [Debug] main / executeCommand / exitCode: 0

00:05:11 #13028 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 stream.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:05:14 #13029 [Verbose] >

00:05:14 #13030 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:14 #13031 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:14 #13032 [Verbose] > │ # stream                                                                     │

00:05:14 #13033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:14 #13034 [Verbose] >

00:05:14 #13035 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:14 #13036 [Verbose] > // // test

00:05:14 #13037 [Verbose] >

00:05:14 #13038 [Verbose] > open testing

00:05:18 #13039 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-4975-7553-7c207379ba51\main.spi

00:05:19 #13040 [Verbose] >

00:05:19 #13041 [Verbose] > ╭─[ 4.74s - stdout ]───────────────────────────────────────────────────────────╮

00:05:19 #13042 [Verbose] > │ ()                                                                           │

00:05:19 #13043 [Verbose] > │                                                                              │

00:05:19 #13044 [Verbose] > │                                                                              │

00:05:19 #13045 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:19 #13046 [Verbose] >

00:05:19 #13047 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:19 #13048 [Verbose] > union rec stream t =

00:05:19 #13049 [Verbose] >     | StreamCons : t * (() -> stream t)

00:05:19 #13050 [Verbose] >     | StreamNil

00:05:19 #13051 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5175-7504-766d507d79b6\main.spi

00:05:19 #13052 [Verbose] >

00:05:19 #13053 [Verbose] > ╭─[ 244.92ms - stdout ]────────────────────────────────────────────────────────╮

00:05:19 #13054 [Verbose] > │ ()                                                                           │

00:05:19 #13055 [Verbose] > │                                                                              │

00:05:19 #13056 [Verbose] > │                                                                              │

00:05:19 #13057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:19 #13058 [Verbose] >

00:05:19 #13059 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:19 #13060 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:19 #13061 [Verbose] > │ ## fold                                                                      │

00:05:19 #13062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:19 #13063 [Verbose] >

00:05:19 #13064 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:19 #13065 [Verbose] > inl fold fn init s =

00:05:19 #13066 [Verbose] >     inl rec body acc = function

00:05:19 #13067 [Verbose] >         | StreamCons (st, fn') => loop (fn acc st) (fn' ())

00:05:19 #13068 [Verbose] >         | StreamNil => acc

00:05:19 #13069 [Verbose] >     and inl loop acc = join_body body acc

00:05:19 #13070 [Verbose] >     loop init s

00:05:19 #13071 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5200-0022-0029ed6b226e\main.spi

00:05:19 #13072 [Verbose] >

00:05:19 #13073 [Verbose] > ╭─[ 208.49ms - stdout ]────────────────────────────────────────────────────────╮

00:05:19 #13074 [Verbose] > │ ()                                                                           │

00:05:19 #13075 [Verbose] > │                                                                              │

00:05:19 #13076 [Verbose] > │                                                                              │

00:05:19 #13077 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:19 #13078 [Verbose] >

00:05:19 #13079 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:19 #13080 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:19 #13081 [Verbose] > │ ## fold_back                                                                 │

00:05:19 #13082 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:19 #13083 [Verbose] >

00:05:19 #13084 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:19 #13085 [Verbose] > inl fold_back fn s init =

00:05:19 #13086 [Verbose] >     inl rec body acc = function

00:05:19 #13087 [Verbose] >         | StreamCons (st, fn') => fn st (loop acc (fn' ()))

00:05:19 #13088 [Verbose] >         | StreamNil => acc

00:05:19 #13089 [Verbose] >     and inl loop acc = join_body body acc

00:05:19 #13090 [Verbose] >     loop init s

00:05:20 #13091 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5221-2123-22a67783d3f8\main.spi

00:05:20 #13092 [Verbose] >

00:05:20 #13093 [Verbose] > ╭─[ 195.44ms - stdout ]────────────────────────────────────────────────────────╮

00:05:20 #13094 [Verbose] > │ ()                                                                           │

00:05:20 #13095 [Verbose] > │                                                                              │

00:05:20 #13096 [Verbose] > │                                                                              │

00:05:20 #13097 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13098 [Verbose] >

00:05:20 #13099 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:20 #13100 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:20 #13101 [Verbose] > │ ## to_list                                                                   │

00:05:20 #13102 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13103 [Verbose] >

00:05:20 #13104 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:20 #13105 [Verbose] > inl to_list s =

00:05:20 #13106 [Verbose] >     (s, [[]])

00:05:20 #13107 [Verbose] >     ||> fold_back fun x acc =>

00:05:20 #13108 [Verbose] >         x :: acc

00:05:20 #13109 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5241-4133-4ed252380e04\main.spi

00:05:20 #13110 [Verbose] >

00:05:20 #13111 [Verbose] > ╭─[ 197.64ms - stdout ]────────────────────────────────────────────────────────╮

00:05:20 #13112 [Verbose] > │ ()                                                                           │

00:05:20 #13113 [Verbose] > │                                                                              │

00:05:20 #13114 [Verbose] > │                                                                              │

00:05:20 #13115 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13116 [Verbose] >

00:05:20 #13117 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:20 #13118 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:20 #13119 [Verbose] > │ ## rev                                                                       │

00:05:20 #13120 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13121 [Verbose] >

00:05:20 #13122 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:20 #13123 [Verbose] > inl rev s =

00:05:20 #13124 [Verbose] >     (StreamNil, s)

00:05:20 #13125 [Verbose] >     ||> fold fun s x =>

00:05:20 #13126 [Verbose] >         StreamCons (x, fun () => s)

00:05:20 #13127 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5261-6194-6f2b8be41a87\main.spi

00:05:20 #13128 [Verbose] >

00:05:20 #13129 [Verbose] > ╭─[ 215.93ms - stdout ]────────────────────────────────────────────────────────╮

00:05:20 #13130 [Verbose] > │ ()                                                                           │

00:05:20 #13131 [Verbose] > │                                                                              │

00:05:20 #13132 [Verbose] > │                                                                              │

00:05:20 #13133 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13134 [Verbose] >

00:05:20 #13135 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:20 #13136 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:20 #13137 [Verbose] > │ ## from_list                                                                 │

00:05:20 #13138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13139 [Verbose] >

00:05:20 #13140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:20 #13141 [Verbose] > inl from_list list =

00:05:20 #13142 [Verbose] >     (list, StreamNil)

00:05:20 #13143 [Verbose] >     ||> listm.foldBack fun x acc =>

00:05:20 #13144 [Verbose] >         StreamCons (x, fun () => acc)

00:05:20 #13145 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5284-8416-8c521de1945a\main.spi

00:05:20 #13146 [Verbose] >

00:05:20 #13147 [Verbose] > ╭─[ 212.98ms - stdout ]────────────────────────────────────────────────────────╮

00:05:20 #13148 [Verbose] > │ ()                                                                           │

00:05:20 #13149 [Verbose] > │                                                                              │

00:05:20 #13150 [Verbose] > │                                                                              │

00:05:20 #13151 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:20 #13152 [Verbose] >

00:05:20 #13153 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:20 #13154 [Verbose] > // // test

00:05:20 #13155 [Verbose] >

00:05:20 #13156 [Verbose] > listm.init 3i32 id

00:05:20 #13157 [Verbose] > |> from_list

00:05:20 #13158 [Verbose] > |> rev

00:05:20 #13159 [Verbose] > |> to_list

00:05:20 #13160 [Verbose] > |> _assert_eq [[ 2; 1; 0 ]]

00:05:20 #13161 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5305-0563-03686e1ed045\main.spi

00:05:22 #13162 [Verbose] >

00:05:22 #13163 [Verbose] > ╭─[ 1.57s - stdout ]───────────────────────────────────────────────────────────╮

00:05:22 #13164 [Verbose] > │ type UH0 =                                                                   │

00:05:22 #13165 [Verbose] > │     | UH0_0                                                                  │

00:05:22 #13166 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:05:22 #13167 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:22 #13168 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:05:22 #13169 [Verbose] > │     let v1 : UH0 = UH0_1(0, v0)                                              │

00:05:22 #13170 [Verbose] > │     let v2 : UH0 = UH0_1(1, v1)                                              │

00:05:22 #13171 [Verbose] > │     let v3 : UH0 = UH0_1(2, v2)                                              │

00:05:22 #13172 [Verbose] > │     let v4 : string = $"%A{v3}"                                              │

00:05:22 #13173 [Verbose] > │     System.Console.WriteLine v4                                              │

00:05:22 #13174 [Verbose] > │     let v23 : UH0 = UH0_0                                                    │

00:05:22 #13175 [Verbose] > │     let v24 : UH0 = UH0_1(0, v23)                                            │

00:05:22 #13176 [Verbose] > │     let v25 : UH0 = UH0_1(1, v24)                                            │

00:05:22 #13177 [Verbose] > │     let v26 : UH0 = UH0_1(2, v25)                                            │

00:05:22 #13178 [Verbose] > │     let v27 : UH0 = UH0_0                                                    │

00:05:22 #13179 [Verbose] > │     let v28 : UH0 = UH0_1(0, v27)                                            │

00:05:22 #13180 [Verbose] > │     let v29 : UH0 = UH0_1(1, v28)                                            │

00:05:22 #13181 [Verbose] > │     let v30 : UH0 = UH0_1(2, v29)                                            │

00:05:22 #13182 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v26} / expected: %A{v30}"     │

00:05:22 #13183 [Verbose] > │     ()                                                                       │

00:05:22 #13184 [Verbose] > │ method0()                                                                    │

00:05:22 #13185 [Verbose] > │                                                                              │

00:05:22 #13186 [Verbose] > │ UH0_1 (2, UH0_1 (1, UH0_1 (0, UH0_0)))                                       │

00:05:22 #13187 [Verbose] > │                                                                              │

00:05:22 #13188 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:22 #13189 [Verbose] >

00:05:22 #13190 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:22 #13191 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:22 #13192 [Verbose] > │ ## try_item                                                                  │

00:05:22 #13193 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:22 #13194 [Verbose] >

00:05:22 #13195 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:22 #13196 [Verbose] > inl try_item i s =

00:05:22 #13197 [Verbose] >     inl rec body i = function

00:05:22 #13198 [Verbose] >         | StreamCons (x, _) when i <= 0 => Some x

00:05:22 #13199 [Verbose] >         | StreamCons (_, fn) => loop (i - 1) (fn ())

00:05:22 #13200 [Verbose] >         | StreamNil => None

00:05:22 #13201 [Verbose] >     and inl loop acc s' =

00:05:22 #13202 [Verbose] >         match var_is acc, var_is s' with

00:05:22 #13203 [Verbose] >         | false, false => body acc s'

00:05:22 #13204 [Verbose] >         | _ =>

00:05:22 #13205 [Verbose] >             inl acc = dyn acc

00:05:22 #13206 [Verbose] >             inl s' = dyn s'

00:05:22 #13207 [Verbose] >             join body acc s'

00:05:22 #13208 [Verbose] >     loop i s

00:05:22 #13209 [Verbose] >

00:05:22 #13210 [Verbose] > inl item i =

00:05:22 #13211 [Verbose] >     try_item i >> optionm.value

00:05:22 #13212 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5464-6416-692eb0f70ee2\main.spi

00:05:22 #13213 [Verbose] >

00:05:22 #13214 [Verbose] > ╭─[ 222.83ms - stdout ]────────────────────────────────────────────────────────╮

00:05:22 #13215 [Verbose] > │ ()                                                                           │

00:05:22 #13216 [Verbose] > │                                                                              │

00:05:22 #13217 [Verbose] > │                                                                              │

00:05:22 #13218 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:22 #13219 [Verbose] >

00:05:22 #13220 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:22 #13221 [Verbose] > // // test

00:05:22 #13222 [Verbose] >

00:05:22 #13223 [Verbose] > listm.init 10i32 id

00:05:22 #13224 [Verbose] > |> from_list

00:05:22 #13225 [Verbose] > |> item 9i32

00:05:22 #13226 [Verbose] > |> _assert_eq 9

00:05:22 #13227 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5486-8670-81cfeeffe5a6\main.spi

00:05:22 #13228 [Verbose] >

00:05:22 #13229 [Verbose] > ╭─[ 234.45ms - stdout ]────────────────────────────────────────────────────────╮

00:05:22 #13230 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:22 #13231 [Verbose] > │     let v0 : string = $"%A{9}"                                               │

00:05:22 #13232 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:22 #13233 [Verbose] > │     let v1 : string = $"__expect / actual: %A{9} / expected: %A{9}"          │

00:05:22 #13234 [Verbose] > │     ()                                                                       │

00:05:22 #13235 [Verbose] > │ method0()                                                                    │

00:05:22 #13236 [Verbose] > │                                                                              │

00:05:22 #13237 [Verbose] > │ 9                                                                            │

00:05:22 #13238 [Verbose] > │                                                                              │

00:05:22 #13239 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:22 #13240 [Verbose] >

00:05:22 #13241 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:22 #13242 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:22 #13243 [Verbose] > │ ## new_infinite_stream                                                       │

00:05:22 #13244 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:22 #13245 [Verbose] >

00:05:22 #13246 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:22 #13247 [Verbose] > inl new_infinite_stream fn =

00:05:22 #13248 [Verbose] >     inl rec loop n =

00:05:22 #13249 [Verbose] >         StreamCons (fn n, fun () => loop (n + 1))

00:05:22 #13250 [Verbose] >     loop 0

00:05:22 #13251 [Verbose] >

00:05:22 #13252 [Verbose] > inl new_infinite_stream_ fn =

00:05:22 #13253 [Verbose] >     let rec loop n =

00:05:22 #13254 [Verbose] >         StreamCons (fn n, fun () => loop (n + 1))

00:05:22 #13255 [Verbose] >     loop 0

00:05:22 #13256 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5511-1100-11a0a844bab2\main.spi

00:05:23 #13257 [Verbose] >

00:05:23 #13258 [Verbose] > ╭─[ 284.48ms - stdout ]────────────────────────────────────────────────────────╮

00:05:23 #13259 [Verbose] > │ ()                                                                           │

00:05:23 #13260 [Verbose] > │                                                                              │

00:05:23 #13261 [Verbose] > │                                                                              │

00:05:23 #13262 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:23 #13263 [Verbose] >

00:05:23 #13264 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:23 #13265 [Verbose] > // // test

00:05:23 #13266 [Verbose] >

00:05:23 #13267 [Verbose] > new_infinite_stream print_and_return

00:05:23 #13268 [Verbose] > |> item 4i32

00:05:23 #13269 [Verbose] > |> _assert_eq 4i32

00:05:23 #13270 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5539-3964-3a889e1dd746\main.spi

00:05:23 #13271 [Verbose] >

00:05:23 #13272 [Verbose] > ╭─[ 299.66ms - stdout ]────────────────────────────────────────────────────────╮

00:05:23 #13273 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:23 #13274 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:23 #13275 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:23 #13276 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:23 #13277 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:23 #13278 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:23 #13279 [Verbose] > │     let v0 : string = $"%A{4}"                                               │

00:05:23 #13280 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:23 #13281 [Verbose] > │     let v1 : string = $"__expect / actual: %A{4} / expected: %A{4}"          │

00:05:23 #13282 [Verbose] > │     ()                                                                       │

00:05:23 #13283 [Verbose] > │ method0()                                                                    │

00:05:23 #13284 [Verbose] > │                                                                              │

00:05:23 #13285 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:23 #13286 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:23 #13287 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:23 #13288 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:23 #13289 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:23 #13290 [Verbose] > │ 4                                                                            │

00:05:23 #13291 [Verbose] > │                                                                              │

00:05:23 #13292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:23 #13293 [Verbose] >

00:05:23 #13294 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:23 #13295 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:23 #13296 [Verbose] > │ ## new_finite_stream                                                         │

00:05:23 #13297 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:23 #13298 [Verbose] >

00:05:23 #13299 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:23 #13300 [Verbose] > inl new_finite_stream fn max =

00:05:23 #13301 [Verbose] >     inl rec loop n =

00:05:23 #13302 [Verbose] >         if n >= max

00:05:23 #13303 [Verbose] >         then StreamNil

00:05:23 #13304 [Verbose] >         else StreamCons (fn n, fun () => loop (n + 1))

00:05:23 #13305 [Verbose] >     loop 0

00:05:23 #13306 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5571-7159-779226375fd7\main.spi

00:05:23 #13307 [Verbose] >

00:05:23 #13308 [Verbose] > ╭─[ 242.37ms - stdout ]────────────────────────────────────────────────────────╮

00:05:23 #13309 [Verbose] > │ ()                                                                           │

00:05:23 #13310 [Verbose] > │                                                                              │

00:05:23 #13311 [Verbose] > │                                                                              │

00:05:23 #13312 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:23 #13313 [Verbose] >

00:05:23 #13314 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:23 #13315 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:23 #13316 [Verbose] > │ ## memoize                                                                   │

00:05:23 #13317 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:23 #13318 [Verbose] >

00:05:23 #13319 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:23 #13320 [Verbose] > union memoized_stream t =

00:05:23 #13321 [Verbose] >     | NotComputed : () -> stream t

00:05:23 #13322 [Verbose] >     | Computed : stream t

00:05:23 #13323 [Verbose] >

00:05:23 #13324 [Verbose] > inl memoize s =

00:05:23 #13325 [Verbose] >     inl rec body s =

00:05:23 #13326 [Verbose] >         inl state = mut (NotComputed s)

00:05:23 #13327 [Verbose] >         fun () =>

00:05:23 #13328 [Verbose] >             match *state with

00:05:23 #13329 [Verbose] >             | Computed x => x

00:05:23 #13330 [Verbose] >             | NotComputed fn =>

00:05:23 #13331 [Verbose] >                 inl new_state =

00:05:23 #13332 [Verbose] >                     match fn () with

00:05:23 #13333 [Verbose] >                     | StreamNil => StreamNil

00:05:23 #13334 [Verbose] >                     | StreamCons (x, fn) => StreamCons (x, loop fn)

00:05:23 #13335 [Verbose] >                 state <- Computed new_state

00:05:23 #13336 [Verbose] >                 new_state

00:05:23 #13337 [Verbose] >     and inl loop s' = join_body_unit body s s'

00:05:23 #13338 [Verbose] >     loop (fun () => s)

00:05:23 #13339 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5596-9630-9b23a38140f8\main.spi

00:05:24 #13340 [Verbose] >

00:05:24 #13341 [Verbose] > ╭─[ 496.03ms - stdout ]────────────────────────────────────────────────────────╮

00:05:24 #13342 [Verbose] > │ ()                                                                           │

00:05:24 #13343 [Verbose] > │                                                                              │

00:05:24 #13344 [Verbose] > │                                                                              │

00:05:24 #13345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:24 #13346 [Verbose] >

00:05:24 #13347 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:24 #13348 [Verbose] > // // test

00:05:24 #13349 [Verbose] >

00:05:24 #13350 [Verbose] > inl memo_stream = new_finite_stream print_and_return 10 |> memoize

00:05:24 #13351 [Verbose] >

00:05:24 #13352 [Verbose] > memo_stream ()

00:05:24 #13353 [Verbose] > |> item 3i32

00:05:24 #13354 [Verbose] > |> _assert_eq 3i32

00:05:24 #13355 [Verbose] >

00:05:24 #13356 [Verbose] > memo_stream ()

00:05:24 #13357 [Verbose] > |> item 5i32

00:05:24 #13358 [Verbose] > |> _assert_eq 5i32

00:05:24 #13359 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5646-4617-4adc43fea5fb\main.spi

00:05:24 #13360 [Verbose] >

00:05:24 #13361 [Verbose] > ╭─[ 730.47ms - stdout ]────────────────────────────────────────────────────────╮

00:05:24 #13362 [Verbose] > │ type UH0 =                                                                   │

00:05:24 #13363 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │

00:05:24 #13364 [Verbose] > │     | UH0_1                                                                  │

00:05:24 #13365 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:05:24 #13366 [Verbose] > │     | US0_0 of f0_0 : (unit -> UH0)                                          │

00:05:24 #13367 [Verbose] > │     | US0_1 of f1_0 : UH0                                                    │

00:05:24 #13368 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │

00:05:24 #13369 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:05:24 #13370 [Verbose] > │     | US1_0 of f0_0 : int32                                                  │

00:05:24 #13371 [Verbose] > │     | US1_1                                                                  │

00:05:24 #13372 [Verbose] > │ let rec closure10 () () : UH0 =                                              │

00:05:24 #13373 [Verbose] > │     UH0_1                                                                    │

00:05:24 #13374 [Verbose] > │ and closure9 () () : UH0 =                                                   │

00:05:24 #13375 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │

00:05:24 #13376 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │

00:05:24 #13377 [Verbose] > │     UH0_0(9, v0)                                                             │

00:05:24 #13378 [Verbose] > │ and closure8 () () : UH0 =                                                   │

00:05:24 #13379 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │

00:05:24 #13380 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │

00:05:24 #13381 [Verbose] > │     UH0_0(8, v0)                                                             │

00:05:24 #13382 [Verbose] > │ and closure7 () () : UH0 =                                                   │

00:05:24 #13383 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │

00:05:24 #13384 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │

00:05:24 #13385 [Verbose] > │     UH0_0(7, v0)                                                             │

00:05:24 #13386 [Verbose] > │ and closure6 () () : UH0 =                                                   │

00:05:24 #13387 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │

00:05:24 #13388 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │

00:05:24 #13389 [Verbose] > │     UH0_0(6, v0)                                                             │

00:05:24 #13390 [Verbose] > │ and closure5 () () : UH0 =                                                   │

00:05:24 #13391 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:24 #13392 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │

00:05:24 #13393 [Verbose] > │     UH0_0(5, v0)                                                             │

00:05:24 #13394 [Verbose] > │ and closure4 () () : UH0 =                                                   │

00:05:24 #13395 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:24 #13396 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │

00:05:24 #13397 [Verbose] > │     UH0_0(4, v0)                                                             │

00:05:24 #13398 [Verbose] > │ and closure3 () () : UH0 =                                                   │

00:05:24 #13399 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:24 #13400 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │

00:05:24 #13401 [Verbose] > │     UH0_0(3, v0)                                                             │

00:05:24 #13402 [Verbose] > │ and closure2 () () : UH0 =                                                   │

00:05:24 #13403 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:24 #13404 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │

00:05:24 #13405 [Verbose] > │     UH0_0(2, v0)                                                             │

00:05:24 #13406 [Verbose] > │ and closure1 () () : UH0 =                                                   │

00:05:24 #13407 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:24 #13408 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │

00:05:24 #13409 [Verbose] > │     UH0_0(1, v0)                                                             │

00:05:24 #13410 [Verbose] > │ and closure0 () () : UH0 =                                                   │

00:05:24 #13411 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │

00:05:24 #13412 [Verbose] > │     UH0_0(0, v0)                                                             │

00:05:24 #13413 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 =                                         │

00:05:24 #13414 [Verbose] > │     let v1 : US0 = v0.l0                                                     │

00:05:24 #13415 [Verbose] > │     match v1 with                                                            │

00:05:24 #13416 [Verbose] > │     | US0_1(v2) -> (* Computed *)                                            │

00:05:24 #13417 [Verbose] > │         v2                                                                   │

00:05:24 #13418 [Verbose] > │     | US0_0(v3) -> (* NotComputed *)                                         │

00:05:24 #13419 [Verbose] > │         let v4 : UH0 = v3 ()                                                 │

00:05:24 #13420 [Verbose] > │         let v13 : UH0 =                                                      │

00:05:24 #13421 [Verbose] > │             match v4 with                                                    │

00:05:24 #13422 [Verbose] > │             | UH0_0(v6, v7) -> (* StreamCons *)                              │

00:05:24 #13423 [Verbose] > │                 let v8 : US0 = US0_0(v7)                                     │

00:05:24 #13424 [Verbose] > │                 let v9 : Mut0 = {l0 = v8} : Mut0                             │

00:05:24 #13425 [Verbose] > │                 let v10 : (unit -> UH0) = closure11(v9)                      │

00:05:24 #13426 [Verbose] > │                 UH0_0(v6, v10)                                               │

00:05:24 #13427 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:05:24 #13428 [Verbose] > │                 UH0_1                                                        │

00:05:24 #13429 [Verbose] > │         let v14 : US0 = US0_1(v13)                                           │

00:05:24 #13430 [Verbose] > │         v0.l0 <- v14                                                         │

00:05:24 #13431 [Verbose] > │         v13                                                                  │

00:05:24 #13432 [Verbose] > │ and method1 (v0 : int32, v1 : UH0) : US1 =                                   │

00:05:24 #13433 [Verbose] > │     match v1 with                                                            │

00:05:24 #13434 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:05:24 #13435 [Verbose] > │         let v4 : bool = v0 <= 0                                              │

00:05:24 #13436 [Verbose] > │         if v4 then                                                           │

00:05:24 #13437 [Verbose] > │             US1_0(v2)                                                        │

00:05:24 #13438 [Verbose] > │         else                                                                 │

00:05:24 #13439 [Verbose] > │             let v6 : int32 = v0 - 1                                          │

00:05:24 #13440 [Verbose] > │             let v7 : UH0 = v3 ()                                             │

00:05:24 #13441 [Verbose] > │             method1(v6, v7)                                                  │

00:05:24 #13442 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:05:24 #13443 [Verbose] > │         US1_1                                                                │

00:05:24 #13444 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:05:24 #13445 [Verbose] > │     v0                                                                       │

00:05:24 #13446 [Verbose] > │ and method0 () : unit =                                                      │

00:05:24 #13447 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:24 #13448 [Verbose] > │     let v0 : (unit -> UH0) = closure0()                                      │

00:05:24 #13449 [Verbose] > │     let v1 : US0 = US0_0(v0)                                                 │

00:05:24 #13450 [Verbose] > │     let v2 : Mut0 = {l0 = v1} : Mut0                                         │

00:05:24 #13451 [Verbose] > │     let v3 : US0 = v2.l0                                                     │

00:05:24 #13452 [Verbose] > │     let v18 : UH0 =                                                          │

00:05:24 #13453 [Verbose] > │         match v3 with                                                        │

00:05:24 #13454 [Verbose] > │         | US0_1(v4) -> (* Computed *)                                        │

00:05:24 #13455 [Verbose] > │             v4                                                               │

00:05:24 #13456 [Verbose] > │         | US0_0(v5) -> (* NotComputed *)                                     │

00:05:24 #13457 [Verbose] > │             let v6 : UH0 = v5 ()                                             │

00:05:24 #13458 [Verbose] > │             let v15 : UH0 =                                                  │

00:05:24 #13459 [Verbose] > │                 match v6 with                                                │

00:05:24 #13460 [Verbose] > │                 | UH0_0(v8, v9) -> (* StreamCons *)                          │

00:05:24 #13461 [Verbose] > │                     let v10 : US0 = US0_0(v9)                                │

00:05:24 #13462 [Verbose] > │                     let v11 : Mut0 = {l0 = v10} : Mut0                       │

00:05:24 #13463 [Verbose] > │                     let v12 : (unit -> UH0) = closure11(v11)                 │

00:05:24 #13464 [Verbose] > │                     UH0_0(v8, v12)                                           │

00:05:24 #13465 [Verbose] > │                 | UH0_1 -> (* StreamNil *)                                   │

00:05:24 #13466 [Verbose] > │                     UH0_1                                                    │

00:05:24 #13467 [Verbose] > │             let v16 : US0 = US0_1(v15)                                       │

00:05:24 #13468 [Verbose] > │             v2.l0 <- v16                                                     │

00:05:24 #13469 [Verbose] > │             v15                                                              │

00:05:24 #13470 [Verbose] > │     let v19 : int32 = 3                                                      │

00:05:24 #13471 [Verbose] > │     let v20 : US1 = method1(v19, v18)                                        │

00:05:24 #13472 [Verbose] > │     let v24 : int32 =                                                        │

00:05:24 #13473 [Verbose] > │         match v20 with                                                       │

00:05:25 #13474 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:05:25 #13475 [Verbose] > │             failwith<int32> "Option does not have a value."                  │

00:05:25 #13476 [Verbose] > │         | US1_0(v21) -> (* Some *)                                           │

00:05:25 #13477 [Verbose] > │             v21                                                              │

00:05:25 #13478 [Verbose] > │     let v25 : string = $"%A{v24}"                                            │

00:05:25 #13479 [Verbose] > │     System.Console.WriteLine v25                                             │

00:05:25 #13480 [Verbose] > │     let v26 : bool = v24 = 3                                                 │

00:05:25 #13481 [Verbose] > │     let v28 : bool =                                                         │

00:05:25 #13482 [Verbose] > │         if v26 then                                                          │

00:05:25 #13483 [Verbose] > │             true                                                             │

00:05:25 #13484 [Verbose] > │         else                                                                 │

00:05:25 #13485 [Verbose] > │             method2(v26)                                                     │

00:05:25 #13486 [Verbose] > │     let v29 : string = $"__expect / actual: %A{v24} / expected: %A{3}"       │

00:05:25 #13487 [Verbose] > │     let v30 : bool = v28 = false                                             │

00:05:25 #13488 [Verbose] > │     if v30 then                                                              │

00:05:25 #13489 [Verbose] > │         failwith<unit> v29                                                   │

00:05:25 #13490 [Verbose] > │     let v31 : US0 = v2.l0                                                    │

00:05:25 #13491 [Verbose] > │     let v46 : UH0 =                                                          │

00:05:25 #13492 [Verbose] > │         match v31 with                                                       │

00:05:25 #13493 [Verbose] > │         | US0_1(v32) -> (* Computed *)                                       │

00:05:25 #13494 [Verbose] > │             v32                                                              │

00:05:25 #13495 [Verbose] > │         | US0_0(v33) -> (* NotComputed *)                                    │

00:05:25 #13496 [Verbose] > │             let v34 : UH0 = v33 ()                                           │

00:05:25 #13497 [Verbose] > │             let v43 : UH0 =                                                  │

00:05:25 #13498 [Verbose] > │                 match v34 with                                               │

00:05:25 #13499 [Verbose] > │                 | UH0_0(v36, v37) -> (* StreamCons *)                        │

00:05:25 #13500 [Verbose] > │                     let v38 : US0 = US0_0(v37)                               │

00:05:25 #13501 [Verbose] > │                     let v39 : Mut0 = {l0 = v38} : Mut0                       │

00:05:25 #13502 [Verbose] > │                     let v40 : (unit -> UH0) = closure11(v39)                 │

00:05:25 #13503 [Verbose] > │                     UH0_0(v36, v40)                                          │

00:05:25 #13504 [Verbose] > │                 | UH0_1 -> (* StreamNil *)                                   │

00:05:25 #13505 [Verbose] > │                     UH0_1                                                    │

00:05:25 #13506 [Verbose] > │             let v44 : US0 = US0_1(v43)                                       │

00:05:25 #13507 [Verbose] > │             v2.l0 <- v44                                                     │

00:05:25 #13508 [Verbose] > │             v43                                                              │

00:05:25 #13509 [Verbose] > │     let v47 : int32 = 5                                                      │

00:05:25 #13510 [Verbose] > │     let v48 : US1 = method1(v47, v46)                                        │

00:05:25 #13511 [Verbose] > │     let v52 : int32 =                                                        │

00:05:25 #13512 [Verbose] > │         match v48 with                                                       │

00:05:25 #13513 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:05:25 #13514 [Verbose] > │             failwith<int32> "Option does not have a value."                  │

00:05:25 #13515 [Verbose] > │         | US1_0(v49) -> (* Some *)                                           │

00:05:25 #13516 [Verbose] > │             v49                                                              │

00:05:25 #13517 [Verbose] > │     let v53 : string = $"%A{v52}"                                            │

00:05:25 #13518 [Verbose] > │     System.Console.WriteLine v53                                             │

00:05:25 #13519 [Verbose] > │     let v54 : bool = v52 = 5                                                 │

00:05:25 #13520 [Verbose] > │     let v56 : bool =                                                         │

00:05:25 #13521 [Verbose] > │         if v54 then                                                          │

00:05:25 #13522 [Verbose] > │             true                                                             │

00:05:25 #13523 [Verbose] > │         else                                                                 │

00:05:25 #13524 [Verbose] > │             method2(v54)                                                     │

00:05:25 #13525 [Verbose] > │     let v57 : string = $"__expect / actual: %A{v52} / expected: %A{5}"       │

00:05:25 #13526 [Verbose] > │     let v58 : bool = v56 = false                                             │

00:05:25 #13527 [Verbose] > │     if v58 then                                                              │

00:05:25 #13528 [Verbose] > │         failwith<unit> v57                                                   │

00:05:25 #13529 [Verbose] > │ method0()                                                                    │

00:05:25 #13530 [Verbose] > │                                                                              │

00:05:25 #13531 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:25 #13532 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:25 #13533 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:25 #13534 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:25 #13535 [Verbose] > │ 3                                                                            │

00:05:25 #13536 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:25 #13537 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:25 #13538 [Verbose] > │ 5                                                                            │

00:05:25 #13539 [Verbose] > │                                                                              │

00:05:25 #13540 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:25 #13541 [Verbose] >

00:05:25 #13542 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:25 #13543 [Verbose] > // // test

00:05:25 #13544 [Verbose] >

00:05:25 #13545 [Verbose] > inl memo_stream = new_infinite_stream_ print_and_return |> memoize

00:05:25 #13546 [Verbose] >

00:05:25 #13547 [Verbose] > memo_stream ()

00:05:25 #13548 [Verbose] > |> item 3i32

00:05:25 #13549 [Verbose] > |> _assert_eq 3i32

00:05:25 #13550 [Verbose] >

00:05:25 #13551 [Verbose] > memo_stream ()

00:05:25 #13552 [Verbose] > |> item 5i32

00:05:25 #13553 [Verbose] > |> _assert_eq 5i32

00:05:25 #13554 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5734-3434-3713c2a71714\main.spi

00:05:25 #13555 [Verbose] >

00:05:25 #13556 [Verbose] > ╭─[ 517.25ms - stdout ]────────────────────────────────────────────────────────╮

00:05:25 #13557 [Verbose] > │ type UH0 =                                                                   │

00:05:25 #13558 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │

00:05:25 #13559 [Verbose] > │     | UH0_1                                                                  │

00:05:25 #13560 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:05:25 #13561 [Verbose] > │     | US0_0 of f0_0 : (unit -> UH0)                                          │

00:05:25 #13562 [Verbose] > │     | US0_1 of f1_0 : UH0                                                    │

00:05:25 #13563 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │

00:05:25 #13564 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:05:25 #13565 [Verbose] > │     | US1_0 of f0_0 : int32                                                  │

00:05:25 #13566 [Verbose] > │     | US1_1                                                                  │

00:05:25 #13567 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 =                                     │

00:05:25 #13568 [Verbose] > │     let v1 : int32 = v0 + 1                                                  │

00:05:25 #13569 [Verbose] > │     method1(v1)                                                              │

00:05:25 #13570 [Verbose] > │ and method1 (v0 : int32) : UH0 =                                             │

00:05:25 #13571 [Verbose] > │     printfn $"print_and_return / x: {v0}"                                    │

00:05:25 #13572 [Verbose] > │     let v1 : (unit -> UH0) = closure0(v0)                                    │

00:05:25 #13573 [Verbose] > │     UH0_0(v0, v1)                                                            │

00:05:25 #13574 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 =                                           │

00:05:25 #13575 [Verbose] > │     v0                                                                       │

00:05:25 #13576 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 =                                │

00:05:25 #13577 [Verbose] > │     let v2 : US0 = v1.l0                                                     │

00:05:25 #13578 [Verbose] > │     match v2 with                                                            │

00:05:25 #13579 [Verbose] > │     | US0_1(v3) -> (* Computed *)                                            │

00:05:25 #13580 [Verbose] > │         v3                                                                   │

00:05:25 #13581 [Verbose] > │     | US0_0(v4) -> (* NotComputed *)                                         │

00:05:25 #13582 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │

00:05:25 #13583 [Verbose] > │         let v12 : UH0 =                                                      │

00:05:25 #13584 [Verbose] > │             match v5 with                                                    │

00:05:25 #13585 [Verbose] > │             | UH0_0(v7, v8) -> (* StreamCons *)                              │

00:05:25 #13586 [Verbose] > │                 let v9 : (unit -> UH0) = method2(v0, v8)                     │

00:05:25 #13587 [Verbose] > │                 UH0_0(v7, v9)                                                │

00:05:25 #13588 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:05:25 #13589 [Verbose] > │                 UH0_1                                                        │

00:05:25 #13590 [Verbose] > │         let v13 : US0 = US0_1(v12)                                           │

00:05:25 #13591 [Verbose] > │         v1.l0 <- v13                                                         │

00:05:25 #13592 [Verbose] > │         v12                                                                  │

00:05:25 #13593 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) =                 │

00:05:25 #13594 [Verbose] > │     let v2 : US0 = US0_0(v1)                                                 │

00:05:25 #13595 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │

00:05:25 #13596 [Verbose] > │     closure2(v0, v3)                                                         │

00:05:25 #13597 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US1 =                                   │

00:05:25 #13598 [Verbose] > │     match v1 with                                                            │

00:05:25 #13599 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:05:25 #13600 [Verbose] > │         let v4 : bool = v0 <= 0                                              │

00:05:25 #13601 [Verbose] > │         if v4 then                                                           │

00:05:25 #13602 [Verbose] > │             US1_0(v2)                                                        │

00:05:25 #13603 [Verbose] > │         else                                                                 │

00:05:25 #13604 [Verbose] > │             let v6 : int32 = v0 - 1                                          │

00:05:25 #13605 [Verbose] > │             let v7 : UH0 = v3 ()                                             │

00:05:25 #13606 [Verbose] > │             method3(v6, v7)                                                  │

00:05:25 #13607 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:05:25 #13608 [Verbose] > │         US1_1                                                                │

00:05:25 #13609 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │

00:05:25 #13610 [Verbose] > │     v0                                                                       │

00:05:25 #13611 [Verbose] > │ and method0 () : unit =                                                      │

00:05:25 #13612 [Verbose] > │     let v0 : int32 = 0                                                       │

00:05:25 #13613 [Verbose] > │     let v1 : UH0 = method1(v0)                                               │

00:05:25 #13614 [Verbose] > │     let v2 : (unit -> UH0) = closure1(v1)                                    │

00:05:25 #13615 [Verbose] > │     let v3 : (unit -> UH0) = method2(v1, v2)                                 │

00:05:25 #13616 [Verbose] > │     let v4 : UH0 = v3 ()                                                     │

00:05:25 #13617 [Verbose] > │     let v5 : int32 = 3                                                       │

00:05:25 #13618 [Verbose] > │     let v6 : US1 = method3(v5, v4)                                           │

00:05:25 #13619 [Verbose] > │     let v10 : int32 =                                                        │

00:05:25 #13620 [Verbose] > │         match v6 with                                                        │

00:05:25 #13621 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:05:25 #13622 [Verbose] > │             failwith<int32> "Option does not have a value."                  │

00:05:25 #13623 [Verbose] > │         | US1_0(v7) -> (* Some *)                                            │

00:05:25 #13624 [Verbose] > │             v7                                                               │

00:05:25 #13625 [Verbose] > │     let v11 : string = $"%A{v10}"                                            │

00:05:25 #13626 [Verbose] > │     System.Console.WriteLine v11                                             │

00:05:25 #13627 [Verbose] > │     let v12 : bool = v10 = 3                                                 │

00:05:25 #13628 [Verbose] > │     let v14 : bool =                                                         │

00:05:25 #13629 [Verbose] > │         if v12 then                                                          │

00:05:25 #13630 [Verbose] > │             true                                                             │

00:05:25 #13631 [Verbose] > │         else                                                                 │

00:05:25 #13632 [Verbose] > │             method4(v12)                                                     │

00:05:25 #13633 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v10} / expected: %A{3}"       │

00:05:25 #13634 [Verbose] > │     let v16 : bool = v14 = false                                             │

00:05:25 #13635 [Verbose] > │     if v16 then                                                              │

00:05:25 #13636 [Verbose] > │         failwith<unit> v15                                                   │

00:05:25 #13637 [Verbose] > │     let v17 : UH0 = v3 ()                                                    │

00:05:25 #13638 [Verbose] > │     let v18 : int32 = 5                                                      │

00:05:25 #13639 [Verbose] > │     let v19 : US1 = method3(v18, v17)                                        │

00:05:25 #13640 [Verbose] > │     let v23 : int32 =                                                        │

00:05:25 #13641 [Verbose] > │         match v19 with                                                       │

00:05:25 #13642 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:05:25 #13643 [Verbose] > │             failwith<int32> "Option does not have a value."                  │

00:05:25 #13644 [Verbose] > │         | US1_0(v20) -> (* Some *)                                           │

00:05:25 #13645 [Verbose] > │             v20                                                              │

00:05:25 #13646 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │

00:05:25 #13647 [Verbose] > │     System.Console.WriteLine v24                                             │

00:05:25 #13648 [Verbose] > │     let v25 : bool = v23 = 5                                                 │

00:05:25 #13649 [Verbose] > │     let v27 : bool =                                                         │

00:05:25 #13650 [Verbose] > │         if v25 then                                                          │

00:05:25 #13651 [Verbose] > │             true                                                             │

00:05:25 #13652 [Verbose] > │         else                                                                 │

00:05:25 #13653 [Verbose] > │             method4(v25)                                                     │

00:05:25 #13654 [Verbose] > │     let v28 : string = $"__expect / actual: %A{v23} / expected: %A{5}"       │

00:05:25 #13655 [Verbose] > │     let v29 : bool = v27 = false                                             │

00:05:25 #13656 [Verbose] > │     if v29 then                                                              │

00:05:25 #13657 [Verbose] > │         failwith<unit> v28                                                   │

00:05:25 #13658 [Verbose] > │ method0()                                                                    │

00:05:25 #13659 [Verbose] > │                                                                              │

00:05:25 #13660 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:25 #13661 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:25 #13662 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:25 #13663 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:25 #13664 [Verbose] > │ 3                                                                            │

00:05:25 #13665 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:25 #13666 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:25 #13667 [Verbose] > │ 5                                                                            │

00:05:25 #13668 [Verbose] > │                                                                              │

00:05:25 #13669 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:25 #13670 [Verbose] >

00:05:25 #13671 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:25 #13672 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:25 #13673 [Verbose] > │ ## unfold                                                                    │

00:05:25 #13674 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:25 #13675 [Verbose] >

00:05:25 #13676 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:25 #13677 [Verbose] > inl unfold f x0 =

00:05:25 #13678 [Verbose] >     inl rec body x =

00:05:25 #13679 [Verbose] >         match f x with

00:05:25 #13680 [Verbose] >         | Some (x', y) => StreamCons (x', fun () => loop y)

00:05:25 #13681 [Verbose] >         | None => StreamNil

00:05:25 #13682 [Verbose] >     and inl loop x = join_body_unit body x0 x

00:05:25 #13683 [Verbose] >     loop x0

00:05:25 #13684 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5792-9250-996b16c73d50\main.spi

00:05:25 #13685 [Verbose] >

00:05:25 #13686 [Verbose] > ╭─[ 234.72ms - stdout ]────────────────────────────────────────────────────────╮

00:05:25 #13687 [Verbose] > │ ()                                                                           │

00:05:25 #13688 [Verbose] > │                                                                              │

00:05:25 #13689 [Verbose] > │                                                                              │

00:05:25 #13690 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:25 #13691 [Verbose] >

00:05:25 #13692 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:25 #13693 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:25 #13694 [Verbose] > │ ## iterate                                                                   │

00:05:25 #13695 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:25 #13696 [Verbose] >

00:05:25 #13697 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:25 #13698 [Verbose] > inl iterate f =

00:05:25 #13699 [Verbose] >     unfold (fun x => Some (x, f x))

00:05:26 #13700 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5816-1637-1f9b96c89f37\main.spi

00:05:26 #13701 [Verbose] >

00:05:26 #13702 [Verbose] > ╭─[ 245.64ms - stdout ]────────────────────────────────────────────────────────╮

00:05:26 #13703 [Verbose] > │ ()                                                                           │

00:05:26 #13704 [Verbose] > │                                                                              │

00:05:26 #13705 [Verbose] > │                                                                              │

00:05:26 #13706 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:26 #13707 [Verbose] >

00:05:26 #13708 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:26 #13709 [Verbose] > // // test

00:05:26 #13710 [Verbose] >

00:05:26 #13711 [Verbose] > iterate ((*) 2) 1i32

00:05:26 #13712 [Verbose] > |> item 10i32

00:05:26 #13713 [Verbose] > |> _assert_eq 1024

00:05:26 #13714 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5841-4127-4898b71c7cdf\main.spi

00:05:26 #13715 [Verbose] >

00:05:26 #13716 [Verbose] > ╭─[ 279.71ms - stdout ]────────────────────────────────────────────────────────╮

00:05:26 #13717 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:26 #13718 [Verbose] > │     let v0 : string = $"%A{1024}"                                            │

00:05:26 #13719 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:26 #13720 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}"    │

00:05:26 #13721 [Verbose] > │     ()                                                                       │

00:05:26 #13722 [Verbose] > │ method0()                                                                    │

00:05:26 #13723 [Verbose] > │                                                                              │

00:05:26 #13724 [Verbose] > │ 1024                                                                         │

00:05:26 #13725 [Verbose] > │                                                                              │

00:05:26 #13726 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:26 #13727 [Verbose] >

00:05:26 #13728 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:26 #13729 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:26 #13730 [Verbose] > │ ## take_while                                                                │

00:05:26 #13731 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:26 #13732 [Verbose] >

00:05:26 #13733 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:26 #13734 [Verbose] > inl take_while cond s =

00:05:26 #13735 [Verbose] >     inl rec body i = function

00:05:26 #13736 [Verbose] >         | StreamCons (st, fn) when cond st i => StreamCons (st, fun () => loop

00:05:26 #13737 [Verbose] > (i + 1) (fn ()))

00:05:26 #13738 [Verbose] >         | _ => StreamNil

00:05:26 #13739 [Verbose] >     and inl loop i = join_body body i

00:05:26 #13740 [Verbose] >     loop 0 s

00:05:26 #13741 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5870-7016-7c2db6266ed2\main.spi

00:05:26 #13742 [Verbose] >

00:05:26 #13743 [Verbose] > ╭─[ 238.44ms - stdout ]────────────────────────────────────────────────────────╮

00:05:26 #13744 [Verbose] > │ ()                                                                           │

00:05:26 #13745 [Verbose] > │                                                                              │

00:05:26 #13746 [Verbose] > │                                                                              │

00:05:26 #13747 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:26 #13748 [Verbose] >

00:05:26 #13749 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:26 #13750 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:26 #13751 [Verbose] > │ ## sum                                                                       │

00:05:26 #13752 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:26 #13753 [Verbose] >

00:05:26 #13754 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:26 #13755 [Verbose] > inl sum seq =

00:05:26 #13756 [Verbose] >     seq |> fold (+) 0

00:05:26 #13757 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5894-9480-948cd82549d8\main.spi

00:05:26 #13758 [Verbose] >

00:05:26 #13759 [Verbose] > ╭─[ 228.14ms - stdout ]────────────────────────────────────────────────────────╮

00:05:26 #13760 [Verbose] > │ ()                                                                           │

00:05:26 #13761 [Verbose] > │                                                                              │

00:05:26 #13762 [Verbose] > │                                                                              │

00:05:26 #13763 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:26 #13764 [Verbose] >

00:05:26 #13765 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:26 #13766 [Verbose] > // // test

00:05:26 #13767 [Verbose] >

00:05:26 #13768 [Verbose] > listm.init 10i32 id

00:05:26 #13769 [Verbose] > |> from_list

00:05:26 #13770 [Verbose] > |> sum

00:05:26 #13771 [Verbose] > |> _assert_eq 45

00:05:27 #13772 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5917-1795-1ef411a7d7bc\main.spi

00:05:27 #13773 [Verbose] >

00:05:27 #13774 [Verbose] > ╭─[ 239.51ms - stdout ]────────────────────────────────────────────────────────╮

00:05:27 #13775 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:27 #13776 [Verbose] > │     let v0 : string = $"%A{45}"                                              │

00:05:27 #13777 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:27 #13778 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:05:27 #13779 [Verbose] > │     ()                                                                       │

00:05:27 #13780 [Verbose] > │ method0()                                                                    │

00:05:27 #13781 [Verbose] > │                                                                              │

00:05:27 #13782 [Verbose] > │ 45                                                                           │

00:05:27 #13783 [Verbose] > │                                                                              │

00:05:27 #13784 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:27 #13785 [Verbose] >

00:05:27 #13786 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:27 #13787 [Verbose] > // // test

00:05:27 #13788 [Verbose] >

00:05:27 #13789 [Verbose] > new_finite_stream print_and_return 10i32

00:05:27 #13790 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)

00:05:27 #13791 [Verbose] > |> sum

00:05:27 #13792 [Verbose] > |> _assert_eq 10

00:05:27 #13793 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5942-4234-497027959f04\main.spi

00:05:27 #13794 [Verbose] >

00:05:27 #13795 [Verbose] > ╭─[ 241.82ms - stdout ]────────────────────────────────────────────────────────╮

00:05:27 #13796 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:27 #13797 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:27 #13798 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:27 #13799 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:27 #13800 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:27 #13801 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:27 #13802 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:27 #13803 [Verbose] > │     let v0 : string = $"%A{10}"                                              │

00:05:27 #13804 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:27 #13805 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │

00:05:27 #13806 [Verbose] > │     ()                                                                       │

00:05:27 #13807 [Verbose] > │ method0()                                                                    │

00:05:27 #13808 [Verbose] > │                                                                              │

00:05:27 #13809 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:27 #13810 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:27 #13811 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:27 #13812 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:27 #13813 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:27 #13814 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:27 #13815 [Verbose] > │ 10                                                                           │

00:05:27 #13816 [Verbose] > │                                                                              │

00:05:27 #13817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:27 #13818 [Verbose] >

00:05:27 #13819 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:27 #13820 [Verbose] > // // test

00:05:27 #13821 [Verbose] >

00:05:27 #13822 [Verbose] > new_infinite_stream print_and_return

00:05:27 #13823 [Verbose] > |> take_while (fun n (_ : i32) => n < 5i32)

00:05:27 #13824 [Verbose] > |> sum

00:05:27 #13825 [Verbose] > |> _assert_eq 10

00:05:27 #13826 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1254-5967-6760-65161d74a181\main.spi

00:05:27 #13827 [Verbose] >

00:05:27 #13828 [Verbose] > ╭─[ 421.80ms - stdout ]────────────────────────────────────────────────────────╮

00:05:27 #13829 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:27 #13830 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:27 #13831 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:27 #13832 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:27 #13833 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:27 #13834 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:27 #13835 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:27 #13836 [Verbose] > │     let v0 : string = $"%A{10}"                                              │

00:05:27 #13837 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:27 #13838 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │

00:05:27 #13839 [Verbose] > │     ()                                                                       │

00:05:27 #13840 [Verbose] > │ method0()                                                                    │

00:05:27 #13841 [Verbose] > │                                                                              │

00:05:27 #13842 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:27 #13843 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:27 #13844 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:27 #13845 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:27 #13846 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:27 #13847 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:27 #13848 [Verbose] > │ 10                                                                           │

00:05:27 #13849 [Verbose] > │                                                                              │

00:05:27 #13850 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:27 #13851 [Verbose] >

00:05:27 #13852 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:27 #13853 [Verbose] > // // test

00:05:27 #13854 [Verbose] >

00:05:27 #13855 [Verbose] > iterate ((*) 6) 1i32

00:05:27 #13856 [Verbose] > |> take_while (fun _ i => i <= 7i32)

00:05:27 #13857 [Verbose] > |> to_list

00:05:27 #13858 [Verbose] > |> _assert_eq [[ 1i32; 6; 36; 216; 1296; 7776; 46656; 279936 ]]

00:05:27 #13859 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0011-1180-116d3569ef1b\main.spi

00:05:28 #13860 [Verbose] >

00:05:28 #13861 [Verbose] > ╭─[ 311.62ms - stdout ]────────────────────────────────────────────────────────╮

00:05:28 #13862 [Verbose] > │ type UH0 =                                                                   │

00:05:28 #13863 [Verbose] > │     | UH0_0                                                                  │

00:05:28 #13864 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:05:28 #13865 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:28 #13866 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:05:28 #13867 [Verbose] > │     let v1 : UH0 = UH0_1(279936, v0)                                         │

00:05:28 #13868 [Verbose] > │     let v2 : UH0 = UH0_1(46656, v1)                                          │

00:05:28 #13869 [Verbose] > │     let v3 : UH0 = UH0_1(7776, v2)                                           │

00:05:28 #13870 [Verbose] > │     let v4 : UH0 = UH0_1(1296, v3)                                           │

00:05:28 #13871 [Verbose] > │     let v5 : UH0 = UH0_1(216, v4)                                            │

00:05:28 #13872 [Verbose] > │     let v6 : UH0 = UH0_1(36, v5)                                             │

00:05:28 #13873 [Verbose] > │     let v7 : UH0 = UH0_1(6, v6)                                              │

00:05:28 #13874 [Verbose] > │     let v8 : UH0 = UH0_1(1, v7)                                              │

00:05:28 #13875 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │

00:05:28 #13876 [Verbose] > │     System.Console.WriteLine v9                                              │

00:05:28 #13877 [Verbose] > │     let v73 : UH0 = UH0_0                                                    │

00:05:28 #13878 [Verbose] > │     let v74 : UH0 = UH0_1(279936, v73)                                       │

00:05:28 #13879 [Verbose] > │     let v75 : UH0 = UH0_1(46656, v74)                                        │

00:05:28 #13880 [Verbose] > │     let v76 : UH0 = UH0_1(7776, v75)                                         │

00:05:28 #13881 [Verbose] > │     let v77 : UH0 = UH0_1(1296, v76)                                         │

00:05:28 #13882 [Verbose] > │     let v78 : UH0 = UH0_1(216, v77)                                          │

00:05:28 #13883 [Verbose] > │     let v79 : UH0 = UH0_1(36, v78)                                           │

00:05:28 #13884 [Verbose] > │     let v80 : UH0 = UH0_1(6, v79)                                            │

00:05:28 #13885 [Verbose] > │     let v81 : UH0 = UH0_1(1, v80)                                            │

00:05:28 #13886 [Verbose] > │     let v82 : UH0 = UH0_0                                                    │

00:05:28 #13887 [Verbose] > │     let v83 : UH0 = UH0_1(279936, v82)                                       │

00:05:28 #13888 [Verbose] > │     let v84 : UH0 = UH0_1(46656, v83)                                        │

00:05:28 #13889 [Verbose] > │     let v85 : UH0 = UH0_1(7776, v84)                                         │

00:05:28 #13890 [Verbose] > │     let v86 : UH0 = UH0_1(1296, v85)                                         │

00:05:28 #13891 [Verbose] > │     let v87 : UH0 = UH0_1(216, v86)                                          │

00:05:28 #13892 [Verbose] > │     let v88 : UH0 = UH0_1(36, v87)                                           │

00:05:28 #13893 [Verbose] > │     let v89 : UH0 = UH0_1(6, v88)                                            │

00:05:28 #13894 [Verbose] > │     let v90 : UH0 = UH0_1(1, v89)                                            │

00:05:28 #13895 [Verbose] > │     let v91 : string = $"__expect / actual: %A{v81} / expected: %A{v90}"     │

00:05:28 #13896 [Verbose] > │     ()                                                                       │

00:05:28 #13897 [Verbose] > │ method0()                                                                    │

00:05:28 #13898 [Verbose] > │                                                                              │

00:05:28 #13899 [Verbose] > │ UH0_1                                                                        │

00:05:28 #13900 [Verbose] > │   (1,                                                                        │

00:05:28 #13901 [Verbose] > │    UH0_1                                                                     │

00:05:28 #13902 [Verbose] > │      (6,                                                                     │

00:05:28 #13903 [Verbose] > │       UH0_1                                                                  │

00:05:28 #13904 [Verbose] > │         (36,                                                                 │

00:05:28 #13905 [Verbose] > │          UH0_1                                                               │

00:05:28 #13906 [Verbose] > │            (216,                                                             │

00:05:28 #13907 [Verbose] > │             UH0_1 (1296, UH0_1 (7776, UH0_1 (46656, UH0_1 (279936,           │

00:05:28 #13908 [Verbose] > │ UH0_0))))))))                                                                │

00:05:28 #13909 [Verbose] > │                                                                              │

00:05:28 #13910 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:28 #13911 [Verbose] >

00:05:28 #13912 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:28 #13913 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:28 #13914 [Verbose] > │ ## indexed                                                                   │

00:05:28 #13915 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:28 #13916 [Verbose] >

00:05:28 #13917 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:28 #13918 [Verbose] > inl indexed s =

00:05:28 #13919 [Verbose] >     ((StreamNil, 0), s)

00:05:28 #13920 [Verbose] >     ||> fold fun (acc, i) x =>

00:05:28 #13921 [Verbose] >         StreamCons ((i, x), fun () => acc), i + 1

00:05:28 #13922 [Verbose] >     |> fst

00:05:28 #13923 [Verbose] >     |> rev

00:05:28 #13924 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0045-4533-4a13caf503e5\main.spi

00:05:28 #13925 [Verbose] >

00:05:28 #13926 [Verbose] > ╭─[ 222.47ms - stdout ]────────────────────────────────────────────────────────╮

00:05:28 #13927 [Verbose] > │ ()                                                                           │

00:05:28 #13928 [Verbose] > │                                                                              │

00:05:28 #13929 [Verbose] > │                                                                              │

00:05:28 #13930 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:28 #13931 [Verbose] >

00:05:28 #13932 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:28 #13933 [Verbose] > // // test

00:05:28 #13934 [Verbose] >

00:05:28 #13935 [Verbose] > listm.init 10i32 ((*) 2)

00:05:28 #13936 [Verbose] > |> from_list

00:05:28 #13937 [Verbose] > |> indexed

00:05:28 #13938 [Verbose] > |> item 5i32

00:05:28 #13939 [Verbose] > |> _assert_eq (5i32, 10i32)

00:05:28 #13940 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0067-6786-659ceff6caad\main.spi

00:05:28 #13941 [Verbose] >

00:05:28 #13942 [Verbose] > ╭─[ 235.68ms - stdout ]────────────────────────────────────────────────────────╮

00:05:28 #13943 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:28 #13944 [Verbose] > │     let v0 : string = $"%A{struct (5, 10)}"                                  │

00:05:28 #13945 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:28 #13946 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected:    │

00:05:28 #13947 [Verbose] > │ %A{struct (5, 10)}"                                                          │

00:05:28 #13948 [Verbose] > │     ()                                                                       │

00:05:28 #13949 [Verbose] > │ method0()                                                                    │

00:05:28 #13950 [Verbose] > │                                                                              │

00:05:28 #13951 [Verbose] > │ struct (5, 10)                                                               │

00:05:28 #13952 [Verbose] > │                                                                              │

00:05:28 #13953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:28 #13954 [Verbose] >

00:05:28 #13955 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:28 #13956 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:28 #13957 [Verbose] > │ ## map                                                                       │

00:05:28 #13958 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:28 #13959 [Verbose] >

00:05:28 #13960 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:28 #13961 [Verbose] > inl map fn s =

00:05:28 #13962 [Verbose] >     (s, StreamNil)

00:05:28 #13963 [Verbose] >     ||> fold_back fun x acc =>

00:05:28 #13964 [Verbose] >         StreamCons (fn x, fun () => acc)

00:05:28 #13965 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0092-9225-9e1f750819e4\main.spi

00:05:28 #13966 [Verbose] >

00:05:28 #13967 [Verbose] > ╭─[ 206.27ms - stdout ]────────────────────────────────────────────────────────╮

00:05:28 #13968 [Verbose] > │ ()                                                                           │

00:05:28 #13969 [Verbose] > │                                                                              │

00:05:28 #13970 [Verbose] > │                                                                              │

00:05:28 #13971 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:28 #13972 [Verbose] >

00:05:28 #13973 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:28 #13974 [Verbose] > // // test

00:05:28 #13975 [Verbose] >

00:05:28 #13976 [Verbose] > listm.init 10i32 id

00:05:28 #13977 [Verbose] > |> from_list

00:05:28 #13978 [Verbose] > |> map ((*) 2)

00:05:28 #13979 [Verbose] > |> item 5i32

00:05:28 #13980 [Verbose] > |> _assert_eq 10i32

00:05:28 #13981 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0113-1316-16c9eda01838\main.spi

00:05:29 #13982 [Verbose] >

00:05:29 #13983 [Verbose] > ╭─[ 234.75ms - stdout ]────────────────────────────────────────────────────────╮

00:05:29 #13984 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:29 #13985 [Verbose] > │     let v0 : string = $"%A{10}"                                              │

00:05:29 #13986 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:29 #13987 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │

00:05:29 #13988 [Verbose] > │     ()                                                                       │

00:05:29 #13989 [Verbose] > │ method0()                                                                    │

00:05:29 #13990 [Verbose] > │                                                                              │

00:05:29 #13991 [Verbose] > │ 10                                                                           │

00:05:29 #13992 [Verbose] > │                                                                              │

00:05:29 #13993 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:29 #13994 [Verbose] >

00:05:29 #13995 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:29 #13996 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:29 #13997 [Verbose] > │ ## zip_with                                                                  │

00:05:29 #13998 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:29 #13999 [Verbose] >

00:05:29 #14000 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:29 #14001 [Verbose] > inl zip_with fn s1 s2 =

00:05:29 #14002 [Verbose] >     inl rec loop s1 s2 =

00:05:29 #14003 [Verbose] >         match s1, s2 with

00:05:29 #14004 [Verbose] >         | StreamCons (st1, fn1), StreamCons (st2, fn2) =>

00:05:29 #14005 [Verbose] >             StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))

00:05:29 #14006 [Verbose] >         | StreamNil, _ | _, StreamNil => StreamNil

00:05:29 #14007 [Verbose] >     loop s1 s2

00:05:29 #14008 [Verbose] >

00:05:29 #14009 [Verbose] > inl zip_with_ fn s1 s2 =

00:05:29 #14010 [Verbose] >     let rec loop s1 s2 =

00:05:29 #14011 [Verbose] >         match s1, s2 with

00:05:29 #14012 [Verbose] >         | StreamCons (st1, fn1), StreamCons (st2, fn2) =>

00:05:29 #14013 [Verbose] >             StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ()))

00:05:29 #14014 [Verbose] >         | StreamNil, _ | _, StreamNil => StreamNil

00:05:29 #14015 [Verbose] >     loop s1 s2

00:05:29 #14016 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0137-3762-32ef70be8211\main.spi

00:05:29 #14017 [Verbose] >

00:05:29 #14018 [Verbose] > ╭─[ 222.00ms - stdout ]────────────────────────────────────────────────────────╮

00:05:29 #14019 [Verbose] > │ ()                                                                           │

00:05:29 #14020 [Verbose] > │                                                                              │

00:05:29 #14021 [Verbose] > │                                                                              │

00:05:29 #14022 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:29 #14023 [Verbose] >

00:05:29 #14024 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:29 #14025 [Verbose] > // // test

00:05:29 #14026 [Verbose] >

00:05:29 #14027 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))

00:05:29 #14028 [Verbose] > ||> zip_with (+)

00:05:29 #14029 [Verbose] > |> item 2i32

00:05:29 #14030 [Verbose] > |> _assert_eq 6

00:05:29 #14031 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0160-6001-6a6c0d0a3bd8\main.spi

00:05:29 #14032 [Verbose] >

00:05:29 #14033 [Verbose] > ╭─[ 228.80ms - stdout ]────────────────────────────────────────────────────────╮

00:05:29 #14034 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:29 #14035 [Verbose] > │     let v0 : string = $"%A{6}"                                               │

00:05:29 #14036 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:29 #14037 [Verbose] > │     let v1 : string = $"__expect / actual: %A{6} / expected: %A{6}"          │

00:05:29 #14038 [Verbose] > │     ()                                                                       │

00:05:29 #14039 [Verbose] > │ method0()                                                                    │

00:05:29 #14040 [Verbose] > │                                                                              │

00:05:29 #14041 [Verbose] > │ 6                                                                            │

00:05:29 #14042 [Verbose] > │                                                                              │

00:05:29 #14043 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:29 #14044 [Verbose] >

00:05:29 #14045 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:29 #14046 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:29 #14047 [Verbose] > │ ## zip                                                                       │

00:05:29 #14048 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:29 #14049 [Verbose] >

00:05:29 #14050 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:29 #14051 [Verbose] > inl zip s1 s2 =

00:05:29 #14052 [Verbose] >     zip_with pair s1 s2

00:05:29 #14053 [Verbose] >

00:05:29 #14054 [Verbose] > inl zip_ s1 s2 =

00:05:29 #14055 [Verbose] >     zip_with_ pair s1 s2

00:05:29 #14056 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0183-8378-89a91a58d053\main.spi

00:05:29 #14057 [Verbose] >

00:05:29 #14058 [Verbose] > ╭─[ 321.95ms - stdout ]────────────────────────────────────────────────────────╮

00:05:29 #14059 [Verbose] > │ ()                                                                           │

00:05:29 #14060 [Verbose] > │                                                                              │

00:05:29 #14061 [Verbose] > │                                                                              │

00:05:29 #14062 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:29 #14063 [Verbose] >

00:05:29 #14064 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:29 #14065 [Verbose] > // // test

00:05:29 #14066 [Verbose] >

00:05:29 #14067 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))

00:05:29 #14068 [Verbose] > ||> zip

00:05:29 #14069 [Verbose] > |> item 5i32

00:05:29 #14070 [Verbose] > |> _assert_eq (5, 10)

00:05:30 #14071 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0216-1615-18c6ac4932bb\main.spi

00:05:30 #14072 [Verbose] >

00:05:30 #14073 [Verbose] > ╭─[ 250.73ms - stdout ]────────────────────────────────────────────────────────╮

00:05:30 #14074 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:30 #14075 [Verbose] > │     let v0 : string = $"%A{struct (5, 10)}"                                  │

00:05:30 #14076 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:30 #14077 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5, 10)} / expected:    │

00:05:30 #14078 [Verbose] > │ %A{struct (5, 10)}"                                                          │

00:05:30 #14079 [Verbose] > │     ()                                                                       │

00:05:30 #14080 [Verbose] > │ method0()                                                                    │

00:05:30 #14081 [Verbose] > │                                                                              │

00:05:30 #14082 [Verbose] > │ struct (5, 10)                                                               │

00:05:30 #14083 [Verbose] > │                                                                              │

00:05:30 #14084 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:30 #14085 [Verbose] >

00:05:30 #14086 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:30 #14087 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:30 #14088 [Verbose] > │ ## unzip                                                                     │

00:05:30 #14089 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:30 #14090 [Verbose] >

00:05:30 #14091 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:30 #14092 [Verbose] > inl unzip s =

00:05:30 #14093 [Verbose] >     inl rec body s =

00:05:30 #14094 [Verbose] >         match s with

00:05:30 #14095 [Verbose] >         | StreamCons ((x, y), fn) =>

00:05:30 #14096 [Verbose] >             inl xs, ys = loop (fn ())

00:05:30 #14097 [Verbose] >             StreamCons (x, fun () => xs), StreamCons (y, fun () => ys)

00:05:30 #14098 [Verbose] >         | StreamNil => pair StreamNil StreamNil

00:05:30 #14099 [Verbose] >     and inl loop x =

00:05:30 #14100 [Verbose] >         if var_is x |> not

00:05:30 #14101 [Verbose] >         then body x

00:05:30 #14102 [Verbose] >         else

00:05:30 #14103 [Verbose] >             inl x = dyn x

00:05:30 #14104 [Verbose] >             join body x

00:05:30 #14105 [Verbose] >     loop s

00:05:30 #14106 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0242-4239-43d4c6e58d10\main.spi

00:05:30 #14107 [Verbose] >

00:05:30 #14108 [Verbose] > ╭─[ 219.71ms - stdout ]────────────────────────────────────────────────────────╮

00:05:30 #14109 [Verbose] > │ ()                                                                           │

00:05:30 #14110 [Verbose] > │                                                                              │

00:05:30 #14111 [Verbose] > │                                                                              │

00:05:30 #14112 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:30 #14113 [Verbose] >

00:05:30 #14114 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:30 #14115 [Verbose] > // // test

00:05:30 #14116 [Verbose] >

00:05:30 #14117 [Verbose] > listm.init 10i32 id

00:05:30 #14118 [Verbose] > |> listm.map (fun x => x, x)

00:05:30 #14119 [Verbose] > |> from_list

00:05:30 #14120 [Verbose] > |> unzip

00:05:30 #14121 [Verbose] > |> fun x, y =>

00:05:30 #14122 [Verbose] >     x |> sum

00:05:30 #14123 [Verbose] >     |> _assert_eq 45

00:05:30 #14124 [Verbose] >

00:05:30 #14125 [Verbose] >     y |> sum

00:05:30 #14126 [Verbose] >     |> _assert_eq 45

00:05:30 #14127 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-0264-6453-6421bb2f9409\main.spi

00:05:30 #14128 [Verbose] >

00:05:30 #14129 [Verbose] > ╭─[ 241.61ms - stdout ]────────────────────────────────────────────────────────╮

00:05:30 #14130 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:30 #14131 [Verbose] > │     let v0 : string = $"%A{45}"                                              │

00:05:30 #14132 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:30 #14133 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:05:30 #14134 [Verbose] > │     let v2 : string = $"%A{45}"                                              │

00:05:30 #14135 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:30 #14136 [Verbose] > │     let v3 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:05:30 #14137 [Verbose] > │     ()                                                                       │

00:05:30 #14138 [Verbose] > │ method0()                                                                    │

00:05:30 #14139 [Verbose] > │                                                                              │

00:05:30 #14140 [Verbose] > │ 45                                                                           │

00:05:30 #14141 [Verbose] > │ 45                                                                           │

00:05:30 #14142 [Verbose] > │                                                                              │

00:05:30 #14143 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:33 #14144 [Verbose] > [NbConvertApp] Converting notebook stream.dib.ipynb to html

00:05:33 #14145 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:05:33 #14146 [Verbose] >   validate(nb)

00:05:33 #14147 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:05:33 #14148 [Verbose] >   return _pygments_highlight(

00:05:34 #14149 [Verbose] > [NbConvertApp] Writing 360587 bytes to stream.dib.html

00:05:35 #14150 [Debug] executeAsync / exitCode: 0 / output.Length: 66677

00:05:35 #14151 [Debug] main / executeCommand / exitCode: 0

00:05:35 #14152 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 seq.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:05:39 #14153 [Verbose] >

00:05:39 #14154 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:39 #14155 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:39 #14156 [Verbose] > │ # seq                                                                        │

00:05:39 #14157 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:39 #14158 [Verbose] >

00:05:39 #14159 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:39 #14160 [Verbose] > // // test

00:05:39 #14161 [Verbose] >

00:05:39 #14162 [Verbose] > open testing

00:05:42 #14163 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1435-3560-3af2aa1d374d\main.spi

00:05:43 #14164 [Verbose] >

00:05:43 #14165 [Verbose] > ╭─[ 4.75s - stdout ]───────────────────────────────────────────────────────────╮

00:05:43 #14166 [Verbose] > │ ()                                                                           │

00:05:43 #14167 [Verbose] > │                                                                              │

00:05:43 #14168 [Verbose] > │                                                                              │

00:05:43 #14169 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:43 #14170 [Verbose] >

00:05:43 #14171 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:43 #14172 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:43 #14173 [Verbose] > │ ## seq'                                                                      │

00:05:43 #14174 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:43 #14175 [Verbose] >

00:05:43 #14176 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:43 #14177 [Verbose] > type seq' t = $"`t seq"

00:05:43 #14178 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1612-1287-1a299884f210\main.spi

00:05:44 #14179 [Verbose] >

00:05:44 #14180 [Verbose] > ╭─[ 212.67ms - stdout ]────────────────────────────────────────────────────────╮

00:05:44 #14181 [Verbose] > │ ()                                                                           │

00:05:44 #14182 [Verbose] > │                                                                              │

00:05:44 #14183 [Verbose] > │                                                                              │

00:05:44 #14184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:44 #14185 [Verbose] >

00:05:44 #14186 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:44 #14187 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:44 #14188 [Verbose] > │ ## of_array'                                                                 │

00:05:44 #14189 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:44 #14190 [Verbose] >

00:05:44 #14191 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:44 #14192 [Verbose] > inl of_array' forall dim t. (items : a dim t) : seq' t =

00:05:44 #14193 [Verbose] >     $'seq { for i = 0 to !items.Length - 1 do yield !items.[[i]] }'

00:05:44 #14194 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1634-3471-350d2bcfbce9\main.spi

00:05:44 #14195 [Verbose] >

00:05:44 #14196 [Verbose] > ╭─[ 207.41ms - stdout ]────────────────────────────────────────────────────────╮

00:05:44 #14197 [Verbose] > │ ()                                                                           │

00:05:44 #14198 [Verbose] > │                                                                              │

00:05:44 #14199 [Verbose] > │                                                                              │

00:05:44 #14200 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:44 #14201 [Verbose] >

00:05:44 #14202 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:44 #14203 [Verbose] > // // test

00:05:44 #14204 [Verbose] >

00:05:44 #14205 [Verbose] > (a ;[[ "a"; "b" ]] : _ i32 _)

00:05:44 #14206 [Verbose] > |> of_array'

00:05:44 #14207 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1655-5552-5942d249462d\main.spi

00:05:45 #14208 [Verbose] >

00:05:45 #14209 [Verbose] > ╭─[ 1.22s - return value ]─────────────────────────────────────────────────────╮

00:05:45 #14210 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span                     │

00:05:45 #14211 [Verbose] > │ class="dni-code-hint"><code>[ a, b                                           │

00:05:45 #14212 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │

00:05:45 #14213 [Verbose] > │ CheckClose</td><td><div                                                      │

00:05:45 #14214 [Verbose] > │ class="dni-plaintext"><pre>False</pre></div></td></tr><tr><td>LastGenerated< │

00:05:45 #14215 [Verbose] > │ /td><td><div                                                                 │

00:05:45 #14216 [Verbose] > │ class="dni-plaintext"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>v2</td> │

00:05:45 #14217 [Verbose] > │ <td><div class="dni-plaintext"><pre>[ a, b                                   │

00:05:45 #14218 [Verbose] > │ ]</pre></div></td></tr><tr><td>enum</td><td><div                             │

00:05:45 #14219 [Verbose] > │ class="dni-plaintext"><pre>&lt;null&gt;</pre></div></td></tr><tr><td>pc</td> │

00:05:45 #14220 [Verbose] > │ <td><div                                                                     │

00:05:45 #14221 [Verbose] > │ class="dni-plaintext"><pre>0</pre></div></td></tr><tr><td>current</td><td><d │

00:05:45 #14222 [Verbose] > │ iv                                                                           │

00:05:45 #14223 [Verbose] > │ class="dni-plaintext"><pre>&lt;null&gt;</pre></div></td></tr><tr><td><i>(val │

00:05:45 #14224 [Verbose] > │ ues)</i></td><td><div class="dni-plaintext"><pre>[ a, b ]</pr...             │

00:05:45 #14225 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:45 #14226 [Verbose] >

00:05:45 #14227 [Verbose] > ╭─[ 1.25s - stdout ]───────────────────────────────────────────────────────────╮

00:05:45 #14228 [Verbose] > │ let rec method0 () : string seq =                                            │

00:05:45 #14229 [Verbose] > │     let v0 : string = "a"                                                    │

00:05:45 #14230 [Verbose] > │     let v1 : string = "b"                                                    │

00:05:45 #14231 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │

00:05:45 #14232 [Verbose] > │     let v3 : string seq = seq { for i = 0 to v2.Length - 1 do yield v2.[i] } │

00:05:45 #14233 [Verbose] > │     v3                                                                       │

00:05:45 #14234 [Verbose] > │ method0()                                                                    │

00:05:45 #14235 [Verbose] > │                                                                              │

00:05:45 #14236 [Verbose] > │                                                                              │

00:05:45 #14237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:45 #14238 [Verbose] >

00:05:45 #14239 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:45 #14240 [Verbose] > inl of_array forall dim t. (items : a dim t) : seq' t =

00:05:45 #14241 [Verbose] >     items |> $'Seq.ofArray'

00:05:45 #14242 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1780-8072-83f57d7208d9\main.spi

00:05:45 #14243 [Verbose] >

00:05:45 #14244 [Verbose] > ╭─[ 231.91ms - stdout ]────────────────────────────────────────────────────────╮

00:05:45 #14245 [Verbose] > │ ()                                                                           │

00:05:45 #14246 [Verbose] > │                                                                              │

00:05:45 #14247 [Verbose] > │                                                                              │

00:05:45 #14248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:45 #14249 [Verbose] >

00:05:45 #14250 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:45 #14251 [Verbose] > // // test

00:05:45 #14252 [Verbose] >

00:05:45 #14253 [Verbose] > (a ;[[ "a"; "b" ]] : _ i32 _)

00:05:45 #14254 [Verbose] > |> of_array

00:05:45 #14255 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1803-0394-0a50083e8921\main.spi

00:05:46 #14256 [Verbose] >

00:05:46 #14257 [Verbose] > ╭─[ 253.46ms - return value ]──────────────────────────────────────────────────╮

00:05:46 #14258 [Verbose] > │ <details open="open" class="dni-treeview"><summary><span                     │

00:05:46 #14259 [Verbose] > │ class="dni-code-hint"><code>[ a, b                                           │

00:05:46 #14260 [Verbose] > │ ]</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> │

00:05:46 #14261 [Verbose] > │ f</td><td><details class="dni-treeview"><summary><span                       │

00:05:46 #14262 [Verbose] > │ class="dni-code-hint"><code>Microsoft.FSharp.Collections.SeqModule+OfArray@1 │

00:05:46 #14263 [Verbose] > │ 010[                                                                         │

00:05:46 #14264 [Verbose] > │ System.String]</code></span></summary><div><table><thead><tr></tr></thead><t │

00:05:46 #14265 [Verbose] > │ body><tr><td>source</td><td><div class="dni-plaintext"><pre>[ a, b           │

00:05:46 #14266 [Verbose] > │ ]</pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><i> │

00:05:46 #14267 [Verbose] > │ (values)</i></td><td><div class="dni-plaintext"><pre>[ a, b                  │

00:05:46 #14268 [Verbose] > │ ]</pre></div></td></tr></tbody></table></div></details><style>               │

00:05:46 #14269 [Verbose] > │ .dni-code-hint {                                                             │

00:05:46 #14270 [Verbose] > │     font-style: italic;                                                      │

00:05:46 #14271 [Verbose] > │     overflow: hidden;                                                        │

00:05:46 #14272 [Verbose] > │     white-space: nowrap;                                                     │

00:05:46 #14273 [Verbose] > │ }                                                                            │

00:05:46 #14274 [Verbose] > │ .dni-tree...                                                                 │

00:05:46 #14275 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:46 #14276 [Verbose] >

00:05:46 #14277 [Verbose] > ╭─[ 262.66ms - stdout ]────────────────────────────────────────────────────────╮

00:05:46 #14278 [Verbose] > │ let rec method0 () : string seq =                                            │

00:05:46 #14279 [Verbose] > │     let v0 : string = "a"                                                    │

00:05:46 #14280 [Verbose] > │     let v1 : string = "b"                                                    │

00:05:46 #14281 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │

00:05:46 #14282 [Verbose] > │     let v3 : ((string []) -> string seq) = Seq.ofArray                       │

00:05:46 #14283 [Verbose] > │     v3 v2                                                                    │

00:05:46 #14284 [Verbose] > │ method0()                                                                    │

00:05:46 #14285 [Verbose] > │                                                                              │

00:05:46 #14286 [Verbose] > │                                                                              │

00:05:46 #14287 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:46 #14288 [Verbose] >

00:05:46 #14289 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:46 #14290 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:46 #14291 [Verbose] > │ ## to_array'                                                                 │

00:05:46 #14292 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:46 #14293 [Verbose] >

00:05:46 #14294 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:46 #14295 [Verbose] > inl to_array' forall dim t. (items : seq' t) : a dim t =

00:05:46 #14296 [Verbose] >     $'!items |> Seq.toArray'

00:05:46 #14297 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1830-3081-3e9012a2dc3b\main.spi

00:05:46 #14298 [Verbose] >

00:05:46 #14299 [Verbose] > ╭─[ 389.05ms - stdout ]────────────────────────────────────────────────────────╮

00:05:46 #14300 [Verbose] > │ ()                                                                           │

00:05:46 #14301 [Verbose] > │                                                                              │

00:05:46 #14302 [Verbose] > │                                                                              │

00:05:46 #14303 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:46 #14304 [Verbose] >

00:05:46 #14305 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:46 #14306 [Verbose] > // // test

00:05:46 #14307 [Verbose] >

00:05:46 #14308 [Verbose] > (a ;[[ "a"; "b" ]] : _ i32 _)

00:05:46 #14309 [Verbose] > |> of_array'

00:05:46 #14310 [Verbose] > |> to_array'

00:05:46 #14311 [Verbose] > |> _assert_eq (a ;[[ "a"; "b" ]] : _ i32 _)

00:05:46 #14312 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1870-7015-73239d4a9458\main.spi

00:05:46 #14313 [Verbose] >

00:05:46 #14314 [Verbose] > ╭─[ 456.82ms - stdout ]────────────────────────────────────────────────────────╮

00:05:46 #14315 [Verbose] > │ let rec method1 (v0 : (string []), v1 : (string []), v2 : int32) : bool =    │

00:05:46 #14316 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:05:46 #14317 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:05:46 #14318 [Verbose] > │     if v4 then                                                               │

00:05:46 #14319 [Verbose] > │         let v5 : string = v0.[int v2]                                        │

00:05:46 #14320 [Verbose] > │         let v6 : string = v1.[int v2]                                        │

00:05:46 #14321 [Verbose] > │         let v7 : bool = v5 = v6                                              │

00:05:46 #14322 [Verbose] > │         if v7 then                                                           │

00:05:46 #14323 [Verbose] > │             let v8 : int32 = v2 + 1                                          │

00:05:46 #14324 [Verbose] > │             method1(v0, v1, v8)                                              │

00:05:46 #14325 [Verbose] > │         else                                                                 │

00:05:46 #14326 [Verbose] > │             false                                                            │

00:05:46 #14327 [Verbose] > │     else                                                                     │

00:05:46 #14328 [Verbose] > │         true                                                                 │

00:05:46 #14329 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:05:46 #14330 [Verbose] > │     v0                                                                       │

00:05:46 #14331 [Verbose] > │ and method0 () : unit =                                                      │

00:05:46 #14332 [Verbose] > │     let v0 : string = "a"                                                    │

00:05:46 #14333 [Verbose] > │     let v1 : string = "b"                                                    │

00:05:46 #14334 [Verbose] > │     let v2 : (string []) = [|v0; v1|]                                        │

00:05:46 #14335 [Verbose] > │     let v3 : string seq = seq { for i = 0 to v2.Length - 1 do yield v2.[i] } │

00:05:46 #14336 [Verbose] > │     let v4 : (string []) = v3 |> Seq.toArray                                 │

00:05:46 #14337 [Verbose] > │     let v5 : (string []) = [|v0; v1|]                                        │

00:05:46 #14338 [Verbose] > │     let v6 : string = $"%A{v4}"                                              │

00:05:46 #14339 [Verbose] > │     System.Console.WriteLine v6                                              │

00:05:46 #14340 [Verbose] > │     let v7 : int32 = v4.Length                                               │

00:05:46 #14341 [Verbose] > │     let v8 : int32 = v5.Length                                               │

00:05:46 #14342 [Verbose] > │     let v9 : bool = v7 = v8                                                  │

00:05:46 #14343 [Verbose] > │     let v10 : bool = v9 <> true                                              │

00:05:46 #14344 [Verbose] > │     let v13 : bool =                                                         │

00:05:46 #14345 [Verbose] > │         if v10 then                                                          │

00:05:46 #14346 [Verbose] > │             false                                                            │

00:05:46 #14347 [Verbose] > │         else                                                                 │

00:05:46 #14348 [Verbose] > │             let v11 : int32 = 0                                              │

00:05:46 #14349 [Verbose] > │             method1(v4, v5, v11)                                             │

00:05:46 #14350 [Verbose] > │     let v15 : bool =                                                         │

00:05:46 #14351 [Verbose] > │         if v13 then                                                          │

00:05:46 #14352 [Verbose] > │             true                                                             │

00:05:46 #14353 [Verbose] > │         else                                                                 │

00:05:46 #14354 [Verbose] > │             method2(v13)                                                     │

00:05:46 #14355 [Verbose] > │     let v16 : string = $"__expect / actual: %A{v4} / expected: %A{v5}"       │

00:05:46 #14356 [Verbose] > │     let v17 : bool = v15 = false                                             │

00:05:46 #14357 [Verbose] > │     if v17 then                                                              │

00:05:46 #14358 [Verbose] > │         failwith<unit> v16                                                   │

00:05:46 #14359 [Verbose] > │ method0()                                                                    │

00:05:46 #14360 [Verbose] > │                                                                              │

00:05:46 #14361 [Verbose] > │ [|"a"; "b"|]                                                                 │

00:05:46 #14362 [Verbose] > │                                                                              │

00:05:46 #14363 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:46 #14364 [Verbose] >

00:05:46 #14365 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:46 #14366 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:46 #14367 [Verbose] > │ ## seq                                                                       │

00:05:46 #14368 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:46 #14369 [Verbose] >

00:05:46 #14370 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:46 #14371 [Verbose] > type seq dim el = dim -> option el

00:05:47 #14372 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1918-1825-163b9cd6227c\main.spi

00:05:47 #14373 [Verbose] >

00:05:47 #14374 [Verbose] > ╭─[ 196.56ms - stdout ]────────────────────────────────────────────────────────╮

00:05:47 #14375 [Verbose] > │ ()                                                                           │

00:05:47 #14376 [Verbose] > │                                                                              │

00:05:47 #14377 [Verbose] > │                                                                              │

00:05:47 #14378 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:47 #14379 [Verbose] >

00:05:47 #14380 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:47 #14381 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:47 #14382 [Verbose] > │ ## try_item                                                                  │

00:05:47 #14383 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:47 #14384 [Verbose] >

00:05:47 #14385 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:47 #14386 [Verbose] > inl try_item n s =

00:05:47 #14387 [Verbose] >     n |> s

00:05:47 #14388 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1938-3852-3c15b5c692a2\main.spi

00:05:47 #14389 [Verbose] >

00:05:47 #14390 [Verbose] > ╭─[ 211.67ms - stdout ]────────────────────────────────────────────────────────╮

00:05:47 #14391 [Verbose] > │ ()                                                                           │

00:05:47 #14392 [Verbose] > │                                                                              │

00:05:47 #14393 [Verbose] > │                                                                              │

00:05:47 #14394 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:47 #14395 [Verbose] >

00:05:47 #14396 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:47 #14397 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:47 #14398 [Verbose] > │ ## from_list                                                                 │

00:05:47 #14399 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:47 #14400 [Verbose] >

00:05:47 #14401 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:47 #14402 [Verbose] > inl from_list list =

00:05:47 #14403 [Verbose] >     fun n =>

00:05:47 #14404 [Verbose] >         list

00:05:47 #14405 [Verbose] >         |> listm'.try_item n

00:05:47 #14406 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1960-6041-6bafbce7d6eb\main.spi

00:05:47 #14407 [Verbose] >

00:05:47 #14408 [Verbose] > ╭─[ 216.25ms - stdout ]────────────────────────────────────────────────────────╮

00:05:47 #14409 [Verbose] > │ ()                                                                           │

00:05:47 #14410 [Verbose] > │                                                                              │

00:05:47 #14411 [Verbose] > │                                                                              │

00:05:47 #14412 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:47 #14413 [Verbose] >

00:05:47 #14414 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:47 #14415 [Verbose] > // // test

00:05:47 #14416 [Verbose] >

00:05:47 #14417 [Verbose] > listm.init 10i32 print_and_return

00:05:47 #14418 [Verbose] > |> from_list

00:05:47 #14419 [Verbose] > |> try_item 5i32

00:05:47 #14420 [Verbose] > |> _assert_eq (Some 5i32)

00:05:47 #14421 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-1982-8221-829da872c6e2\main.spi

00:05:48 #14422 [Verbose] >

00:05:48 #14423 [Verbose] > ╭─[ 701.99ms - stdout ]────────────────────────────────────────────────────────╮

00:05:48 #14424 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:48 #14425 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:48 #14426 [Verbose] > │     | US0_1                                                                  │

00:05:48 #14427 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:48 #14428 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:48 #14429 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:48 #14430 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:48 #14431 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:48 #14432 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:48 #14433 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:48 #14434 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │

00:05:48 #14435 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │

00:05:48 #14436 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │

00:05:48 #14437 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │

00:05:48 #14438 [Verbose] > │     let v0 : US0 = US0_0(5)                                                  │

00:05:48 #14439 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:05:48 #14440 [Verbose] > │     System.Console.WriteLine v1                                              │

00:05:48 #14441 [Verbose] > │     let v5 : US0 = US0_0(5)                                                  │

00:05:48 #14442 [Verbose] > │     let v6 : US0 = US0_0(5)                                                  │

00:05:48 #14443 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:05:48 #14444 [Verbose] > │     ()                                                                       │

00:05:48 #14445 [Verbose] > │ method0()                                                                    │

00:05:48 #14446 [Verbose] > │                                                                              │

00:05:48 #14447 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:48 #14448 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:48 #14449 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:48 #14450 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:48 #14451 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:48 #14452 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:48 #14453 [Verbose] > │ print_and_return / x: 6                                                      │

00:05:48 #14454 [Verbose] > │ print_and_return / x: 7                                                      │

00:05:48 #14455 [Verbose] > │ print_and_return / x: 8                                                      │

00:05:48 #14456 [Verbose] > │ print_and_return / x: 9                                                      │

00:05:48 #14457 [Verbose] > │ US0_0 5                                                                      │

00:05:48 #14458 [Verbose] > │                                                                              │

00:05:48 #14459 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:48 #14460 [Verbose] >

00:05:48 #14461 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:48 #14462 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:48 #14463 [Verbose] > │ ## map                                                                       │

00:05:48 #14464 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:48 #14465 [Verbose] >

00:05:48 #14466 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:48 #14467 [Verbose] > inl map fn s =

00:05:48 #14468 [Verbose] >     fun n =>

00:05:48 #14469 [Verbose] >         n

00:05:48 #14470 [Verbose] >         |> s

00:05:48 #14471 [Verbose] >         |> optionm.map fn

00:05:48 #14472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2053-5397-5cd394d0986f\main.spi

00:05:48 #14473 [Verbose] >

00:05:48 #14474 [Verbose] > ╭─[ 217.70ms - stdout ]────────────────────────────────────────────────────────╮

00:05:48 #14475 [Verbose] > │ ()                                                                           │

00:05:48 #14476 [Verbose] > │                                                                              │

00:05:48 #14477 [Verbose] > │                                                                              │

00:05:48 #14478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:48 #14479 [Verbose] >

00:05:48 #14480 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:48 #14481 [Verbose] > // // test

00:05:48 #14482 [Verbose] >

00:05:48 #14483 [Verbose] > listm.init 10i32 id

00:05:48 #14484 [Verbose] > |> from_list

00:05:48 #14485 [Verbose] > |> map ((*) 2)

00:05:48 #14486 [Verbose] > |> try_item 5i32

00:05:48 #14487 [Verbose] > |> _assert_eq (Some 10i32)

00:05:48 #14488 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2076-7605-7151b8889736\main.spi

00:05:48 #14489 [Verbose] >

00:05:48 #14490 [Verbose] > ╭─[ 249.89ms - stdout ]────────────────────────────────────────────────────────╮

00:05:48 #14491 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:48 #14492 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:48 #14493 [Verbose] > │     | US0_1                                                                  │

00:05:48 #14494 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:48 #14495 [Verbose] > │     let v0 : US0 = US0_0(10)                                                 │

00:05:48 #14496 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:05:48 #14497 [Verbose] > │     System.Console.WriteLine v1                                              │

00:05:48 #14498 [Verbose] > │     let v5 : US0 = US0_0(10)                                                 │

00:05:48 #14499 [Verbose] > │     let v6 : US0 = US0_0(10)                                                 │

00:05:48 #14500 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:05:48 #14501 [Verbose] > │     ()                                                                       │

00:05:48 #14502 [Verbose] > │ method0()                                                                    │

00:05:48 #14503 [Verbose] > │                                                                              │

00:05:48 #14504 [Verbose] > │ US0_0 10                                                                     │

00:05:48 #14505 [Verbose] > │                                                                              │

00:05:48 #14506 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:48 #14507 [Verbose] >

00:05:48 #14508 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:48 #14509 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:48 #14510 [Verbose] > │ ## mapi                                                                      │

00:05:48 #14511 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:48 #14512 [Verbose] >

00:05:48 #14513 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:48 #14514 [Verbose] > inl mapi fn s =

00:05:48 #14515 [Verbose] >     fun n =>

00:05:48 #14516 [Verbose] >         n

00:05:48 #14517 [Verbose] >         |> s

00:05:48 #14518 [Verbose] >         |> optionm.map (fn n)

00:05:48 #14519 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2102-0250-0b3618d50902\main.spi

00:05:48 #14520 [Verbose] >

00:05:48 #14521 [Verbose] > ╭─[ 246.69ms - stdout ]────────────────────────────────────────────────────────╮

00:05:48 #14522 [Verbose] > │ ()                                                                           │

00:05:48 #14523 [Verbose] > │                                                                              │

00:05:48 #14524 [Verbose] > │                                                                              │

00:05:48 #14525 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:49 #14526 [Verbose] >

00:05:49 #14527 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:49 #14528 [Verbose] > // // test

00:05:49 #14529 [Verbose] >

00:05:49 #14530 [Verbose] > listm.init 10i32 print_and_return

00:05:49 #14531 [Verbose] > |> from_list

00:05:49 #14532 [Verbose] > |> mapi fun i x => i + x

00:05:49 #14533 [Verbose] > |> try_item 5i32

00:05:49 #14534 [Verbose] > |> _assert_eq (Some 10i32)

00:05:49 #14535 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2127-2749-25b4efe2e56d\main.spi

00:05:49 #14536 [Verbose] >

00:05:49 #14537 [Verbose] > ╭─[ 269.78ms - stdout ]────────────────────────────────────────────────────────╮

00:05:49 #14538 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:49 #14539 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:49 #14540 [Verbose] > │     | US0_1                                                                  │

00:05:49 #14541 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:49 #14542 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:49 #14543 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:49 #14544 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:49 #14545 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:49 #14546 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:49 #14547 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:49 #14548 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │

00:05:49 #14549 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │

00:05:49 #14550 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │

00:05:49 #14551 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │

00:05:49 #14552 [Verbose] > │     let v0 : US0 = US0_0(10)                                                 │

00:05:49 #14553 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:05:49 #14554 [Verbose] > │     System.Console.WriteLine v1                                              │

00:05:49 #14555 [Verbose] > │     let v5 : US0 = US0_0(10)                                                 │

00:05:49 #14556 [Verbose] > │     let v6 : US0 = US0_0(10)                                                 │

00:05:49 #14557 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:05:49 #14558 [Verbose] > │     ()                                                                       │

00:05:49 #14559 [Verbose] > │ method0()                                                                    │

00:05:49 #14560 [Verbose] > │                                                                              │

00:05:49 #14561 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:49 #14562 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:49 #14563 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:49 #14564 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:49 #14565 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:49 #14566 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:49 #14567 [Verbose] > │ print_and_return / x: 6                                                      │

00:05:49 #14568 [Verbose] > │ print_and_return / x: 7                                                      │

00:05:49 #14569 [Verbose] > │ print_and_return / x: 8                                                      │

00:05:49 #14570 [Verbose] > │ print_and_return / x: 9                                                      │

00:05:49 #14571 [Verbose] > │ US0_0 10                                                                     │

00:05:49 #14572 [Verbose] > │                                                                              │

00:05:49 #14573 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:49 #14574 [Verbose] >

00:05:49 #14575 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:49 #14576 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:49 #14577 [Verbose] > │ ## choose                                                                    │

00:05:49 #14578 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:49 #14579 [Verbose] >

00:05:49 #14580 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:49 #14581 [Verbose] > inl choose forall dim {number} t u. (fn : t -> option u) (s : seq dim t) : seq

00:05:49 #14582 [Verbose] > dim u =

00:05:49 #14583 [Verbose] >     fun n =>

00:05:49 #14584 [Verbose] >         inl rec body fn s i i' =

00:05:49 #14585 [Verbose] >             match i |> s with

00:05:49 #14586 [Verbose] >             | None => None

00:05:49 #14587 [Verbose] >             | Some x =>

00:05:49 #14588 [Verbose] >                 match x |> fn with

00:05:49 #14589 [Verbose] >                 | Some x when n = i' => Some x

00:05:49 #14590 [Verbose] >                 | Some _ => loop (i + 1) (i' + 1)

00:05:49 #14591 [Verbose] >                 | _ => loop (i + 1) i'

00:05:49 #14592 [Verbose] >         and inl loop i i' =

00:05:49 #14593 [Verbose] >             if n |> var_is |> not

00:05:49 #14594 [Verbose] >             then body fn s i i'

00:05:49 #14595 [Verbose] >             else

00:05:49 #14596 [Verbose] >                 inl fn = join fn

00:05:49 #14597 [Verbose] >                 inl s = join s

00:05:49 #14598 [Verbose] >                 join body fn s i i'

00:05:49 #14599 [Verbose] >         loop 0 0

00:05:49 #14600 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2157-5748-5a5e040e271e\main.spi

00:05:49 #14601 [Verbose] >

00:05:49 #14602 [Verbose] > ╭─[ 233.14ms - stdout ]────────────────────────────────────────────────────────╮

00:05:49 #14603 [Verbose] > │ ()                                                                           │

00:05:49 #14604 [Verbose] > │                                                                              │

00:05:49 #14605 [Verbose] > │                                                                              │

00:05:49 #14606 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:49 #14607 [Verbose] >

00:05:49 #14608 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:49 #14609 [Verbose] > // // test

00:05:49 #14610 [Verbose] >

00:05:49 #14611 [Verbose] > listm.init 10i32 print_and_return

00:05:49 #14612 [Verbose] > |> from_list

00:05:49 #14613 [Verbose] > |> choose (fun x => if x % 2 = 0 then Some x else None)

00:05:49 #14614 [Verbose] > |> try_item 1i32

00:05:49 #14615 [Verbose] > |> _assert_eq (Some 2i32)

00:05:49 #14616 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2180-8077-842daf13c24b\main.spi

00:05:49 #14617 [Verbose] >

00:05:49 #14618 [Verbose] > ╭─[ 336.58ms - stdout ]────────────────────────────────────────────────────────╮

00:05:49 #14619 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:49 #14620 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:49 #14621 [Verbose] > │     | US0_1                                                                  │

00:05:49 #14622 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:49 #14623 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:49 #14624 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:49 #14625 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:49 #14626 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:49 #14627 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:49 #14628 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:49 #14629 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │

00:05:49 #14630 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │

00:05:49 #14631 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │

00:05:49 #14632 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │

00:05:49 #14633 [Verbose] > │     let v0 : US0 = US0_0(2)                                                  │

00:05:49 #14634 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:05:49 #14635 [Verbose] > │     System.Console.WriteLine v1                                              │

00:05:49 #14636 [Verbose] > │     let v5 : US0 = US0_0(2)                                                  │

00:05:49 #14637 [Verbose] > │     let v6 : US0 = US0_0(2)                                                  │

00:05:49 #14638 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:05:49 #14639 [Verbose] > │     ()                                                                       │

00:05:49 #14640 [Verbose] > │ method0()                                                                    │

00:05:49 #14641 [Verbose] > │                                                                              │

00:05:49 #14642 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:49 #14643 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:49 #14644 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:49 #14645 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:49 #14646 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:49 #14647 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:49 #14648 [Verbose] > │ print_and_return / x: 6                                                      │

00:05:49 #14649 [Verbose] > │ print_and_return / x: 7                                                      │

00:05:49 #14650 [Verbose] > │ print_and_return / x: 8                                                      │

00:05:49 #14651 [Verbose] > │ print_and_return / x: 9                                                      │

00:05:49 #14652 [Verbose] > │ US0_0 2                                                                      │

00:05:49 #14653 [Verbose] > │                                                                              │

00:05:49 #14654 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:49 #14655 [Verbose] >

00:05:49 #14656 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:49 #14657 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:49 #14658 [Verbose] > │ ## indexed                                                                   │

00:05:49 #14659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:49 #14660 [Verbose] >

00:05:49 #14661 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:49 #14662 [Verbose] > inl indexed s =

00:05:49 #14663 [Verbose] >     s

00:05:49 #14664 [Verbose] >     |> mapi fun i x =>

00:05:49 #14665 [Verbose] >         i, x

00:05:50 #14666 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2216-1664-1dc86fe3e4ea\main.spi

00:05:50 #14667 [Verbose] >

00:05:50 #14668 [Verbose] > ╭─[ 263.72ms - stdout ]────────────────────────────────────────────────────────╮

00:05:50 #14669 [Verbose] > │ ()                                                                           │

00:05:50 #14670 [Verbose] > │                                                                              │

00:05:50 #14671 [Verbose] > │                                                                              │

00:05:50 #14672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:50 #14673 [Verbose] >

00:05:50 #14674 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:50 #14675 [Verbose] > // // test

00:05:50 #14676 [Verbose] >

00:05:50 #14677 [Verbose] > listm.init 10i32 ((*) 2)

00:05:50 #14678 [Verbose] > |> from_list

00:05:50 #14679 [Verbose] > |> indexed

00:05:50 #14680 [Verbose] > |> try_item 5i32

00:05:50 #14681 [Verbose] > |> _assert_eq (Some (5i32, 10i32))

00:05:50 #14682 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2243-4305-479d5b8fac1d\main.spi

00:05:50 #14683 [Verbose] >

00:05:50 #14684 [Verbose] > ╭─[ 354.31ms - stdout ]────────────────────────────────────────────────────────╮

00:05:50 #14685 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:50 #14686 [Verbose] > │     | US0_0 of f0_0 : int32 * f0_1 : int32                                   │

00:05:50 #14687 [Verbose] > │     | US0_1                                                                  │

00:05:50 #14688 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:50 #14689 [Verbose] > │     let v0 : US0 = US0_0(5, 10)                                              │

00:05:50 #14690 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:05:50 #14691 [Verbose] > │     System.Console.WriteLine v1                                              │

00:05:50 #14692 [Verbose] > │     let v5 : US0 = US0_0(5, 10)                                              │

00:05:50 #14693 [Verbose] > │     let v6 : US0 = US0_0(5, 10)                                              │

00:05:50 #14694 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:05:50 #14695 [Verbose] > │     ()                                                                       │

00:05:50 #14696 [Verbose] > │ method0()                                                                    │

00:05:50 #14697 [Verbose] > │                                                                              │

00:05:50 #14698 [Verbose] > │ US0_0 (5, 10)                                                                │

00:05:50 #14699 [Verbose] > │                                                                              │

00:05:50 #14700 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:50 #14701 [Verbose] >

00:05:50 #14702 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:50 #14703 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:50 #14704 [Verbose] > │ ## zip                                                                       │

00:05:50 #14705 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:50 #14706 [Verbose] >

00:05:50 #14707 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:50 #14708 [Verbose] > inl zip n seq1 seq2 =

00:05:50 #14709 [Verbose] >     seq1 n, seq2 n

00:05:50 #14710 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2280-8010-8ffc3d3dbb49\main.spi

00:05:50 #14711 [Verbose] >

00:05:50 #14712 [Verbose] > ╭─[ 406.91ms - stdout ]────────────────────────────────────────────────────────╮

00:05:50 #14713 [Verbose] > │ ()                                                                           │

00:05:50 #14714 [Verbose] > │                                                                              │

00:05:50 #14715 [Verbose] > │                                                                              │

00:05:50 #14716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:50 #14717 [Verbose] >

00:05:50 #14718 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:50 #14719 [Verbose] > // // test

00:05:50 #14720 [Verbose] >

00:05:50 #14721 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))

00:05:50 #14722 [Verbose] > ||> zip 5i32

00:05:50 #14723 [Verbose] > |> _assert_eq (Some 5, Some 10)

00:05:51 #14724 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2320-2085-267d04a8ef3a\main.spi

00:05:51 #14725 [Verbose] >

00:05:51 #14726 [Verbose] > ╭─[ 438.33ms - stdout ]────────────────────────────────────────────────────────╮

00:05:51 #14727 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:51 #14728 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:51 #14729 [Verbose] > │     | US0_1                                                                  │

00:05:51 #14730 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:51 #14731 [Verbose] > │     let v0 : US0 = US0_0(5)                                                  │

00:05:51 #14732 [Verbose] > │     let v1 : US0 = US0_0(10)                                                 │

00:05:51 #14733 [Verbose] > │     let v2 : string = $"%A{struct (v0, v1)}"                                 │

00:05:51 #14734 [Verbose] > │     System.Console.WriteLine v2                                              │

00:05:51 #14735 [Verbose] > │     let v9 : US0 = US0_0(5)                                                  │

00:05:51 #14736 [Verbose] > │     let v10 : US0 = US0_0(10)                                                │

00:05:51 #14737 [Verbose] > │     let v11 : US0 = US0_0(5)                                                 │

00:05:51 #14738 [Verbose] > │     let v12 : US0 = US0_0(10)                                                │

00:05:51 #14739 [Verbose] > │     let v13 : string = $"__expect / actual: %A{struct (v9, v10)} / expected: │

00:05:51 #14740 [Verbose] > │ %A{struct (v11, v12)}"                                                       │

00:05:51 #14741 [Verbose] > │     ()                                                                       │

00:05:51 #14742 [Verbose] > │ method0()                                                                    │

00:05:51 #14743 [Verbose] > │                                                                              │

00:05:51 #14744 [Verbose] > │ struct (US0_0 5, US0_0 10)                                                   │

00:05:51 #14745 [Verbose] > │                                                                              │

00:05:51 #14746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:51 #14747 [Verbose] >

00:05:51 #14748 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:51 #14749 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:51 #14750 [Verbose] > │ ## zip_with                                                                  │

00:05:51 #14751 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:51 #14752 [Verbose] >

00:05:51 #14753 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:51 #14754 [Verbose] > inl zip_with fn seq1 seq2 =

00:05:51 #14755 [Verbose] >     fun n =>

00:05:51 #14756 [Verbose] >         fn (seq1 n) (seq2 n)

00:05:51 #14757 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2366-6649-6eee6d346ab4\main.spi

00:05:51 #14758 [Verbose] >

00:05:51 #14759 [Verbose] > ╭─[ 238.95ms - stdout ]────────────────────────────────────────────────────────╮

00:05:51 #14760 [Verbose] > │ ()                                                                           │

00:05:51 #14761 [Verbose] > │                                                                              │

00:05:51 #14762 [Verbose] > │                                                                              │

00:05:51 #14763 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:51 #14764 [Verbose] >

00:05:51 #14765 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:51 #14766 [Verbose] > // // test

00:05:51 #14767 [Verbose] >

00:05:51 #14768 [Verbose] > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list))

00:05:51 #14769 [Verbose] > ||> zip_with (optionm'.choose (+))

00:05:51 #14770 [Verbose] > |> try_item 2i32

00:05:51 #14771 [Verbose] > |> _assert_eq (Some 6)

00:05:51 #14772 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2390-9065-9671f4178a12\main.spi

00:05:51 #14773 [Verbose] >

00:05:51 #14774 [Verbose] > ╭─[ 246.80ms - stdout ]────────────────────────────────────────────────────────╮

00:05:51 #14775 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:51 #14776 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:51 #14777 [Verbose] > │     | US0_1                                                                  │

00:05:51 #14778 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:51 #14779 [Verbose] > │     let v0 : US0 = US0_0(6)                                                  │

00:05:51 #14780 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:05:51 #14781 [Verbose] > │     System.Console.WriteLine v1                                              │

00:05:51 #14782 [Verbose] > │     let v5 : US0 = US0_0(6)                                                  │

00:05:51 #14783 [Verbose] > │     let v6 : US0 = US0_0(6)                                                  │

00:05:51 #14784 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:05:51 #14785 [Verbose] > │     ()                                                                       │

00:05:51 #14786 [Verbose] > │ method0()                                                                    │

00:05:51 #14787 [Verbose] > │                                                                              │

00:05:51 #14788 [Verbose] > │ US0_0 6                                                                      │

00:05:51 #14789 [Verbose] > │                                                                              │

00:05:51 #14790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:51 #14791 [Verbose] >

00:05:51 #14792 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:51 #14793 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:51 #14794 [Verbose] > │ ## fold                                                                      │

00:05:51 #14795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:51 #14796 [Verbose] >

00:05:51 #14797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:51 #14798 [Verbose] > inl fold fn init seq =

00:05:51 #14799 [Verbose] >     inl rec loop acc n =

00:05:51 #14800 [Verbose] >         match seq n with

00:05:51 #14801 [Verbose] >         | Some x => loop (fn acc x) (n + 1)

00:05:51 #14802 [Verbose] >         | None => acc

00:05:51 #14803 [Verbose] >     loop init 0

00:05:51 #14804 [Verbose] >

00:05:51 #14805 [Verbose] > inl fold_ fn init seq =

00:05:51 #14806 [Verbose] >     let rec loop acc n =

00:05:51 #14807 [Verbose] >         match seq n with

00:05:51 #14808 [Verbose] >         | Some x => loop (fn acc x) (n + 1)

00:05:51 #14809 [Verbose] >         | None => acc

00:05:51 #14810 [Verbose] >     loop init 0

00:05:52 #14811 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2416-1659-12e648732a3d\main.spi

00:05:52 #14812 [Verbose] >

00:05:52 #14813 [Verbose] > ╭─[ 270.49ms - stdout ]────────────────────────────────────────────────────────╮

00:05:52 #14814 [Verbose] > │ ()                                                                           │

00:05:52 #14815 [Verbose] > │                                                                              │

00:05:52 #14816 [Verbose] > │                                                                              │

00:05:52 #14817 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:52 #14818 [Verbose] >

00:05:52 #14819 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:52 #14820 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:52 #14821 [Verbose] > │ ## sum                                                                       │

00:05:52 #14822 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:52 #14823 [Verbose] >

00:05:52 #14824 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:52 #14825 [Verbose] > inl sum seq =

00:05:52 #14826 [Verbose] >     seq |> fold (+) 0

00:05:52 #14827 [Verbose] >

00:05:52 #14828 [Verbose] > inl sum_ seq =

00:05:52 #14829 [Verbose] >     seq |> fold_ (+) 0

00:05:52 #14830 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2444-4437-4dfce5632a4f\main.spi

00:05:52 #14831 [Verbose] >

00:05:52 #14832 [Verbose] > ╭─[ 284.57ms - stdout ]────────────────────────────────────────────────────────╮

00:05:52 #14833 [Verbose] > │ ()                                                                           │

00:05:52 #14834 [Verbose] > │                                                                              │

00:05:52 #14835 [Verbose] > │                                                                              │

00:05:52 #14836 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:52 #14837 [Verbose] >

00:05:52 #14838 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:52 #14839 [Verbose] > // // test

00:05:52 #14840 [Verbose] >

00:05:52 #14841 [Verbose] > listm.init 10i32 id

00:05:52 #14842 [Verbose] > |> from_list

00:05:52 #14843 [Verbose] > |> fun f (n : i32) => f n

00:05:52 #14844 [Verbose] > |> sum

00:05:52 #14845 [Verbose] > |> _assert_eq 45

00:05:52 #14846 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2473-7306-78d37367669f\main.spi

00:05:52 #14847 [Verbose] >

00:05:52 #14848 [Verbose] > ╭─[ 371.06ms - stdout ]────────────────────────────────────────────────────────╮

00:05:52 #14849 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:52 #14850 [Verbose] > │     let v0 : string = $"%A{45}"                                              │

00:05:52 #14851 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:52 #14852 [Verbose] > │     let v1 : string = $"__expect / actual: %A{45} / expected: %A{45}"        │

00:05:52 #14853 [Verbose] > │     ()                                                                       │

00:05:52 #14854 [Verbose] > │ method0()                                                                    │

00:05:52 #14855 [Verbose] > │                                                                              │

00:05:52 #14856 [Verbose] > │ 45                                                                           │

00:05:52 #14857 [Verbose] > │                                                                              │

00:05:52 #14858 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:52 #14859 [Verbose] >

00:05:52 #14860 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:52 #14861 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:52 #14862 [Verbose] > │ ## to_list                                                                   │

00:05:52 #14863 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:52 #14864 [Verbose] >

00:05:52 #14865 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:52 #14866 [Verbose] > inl to_list seq =

00:05:52 #14867 [Verbose] >     seq

00:05:52 #14868 [Verbose] >     |> fold (fun acc x => x :: acc) [[]]

00:05:52 #14869 [Verbose] >     |> listm.rev

00:05:52 #14870 [Verbose] >

00:05:52 #14871 [Verbose] > inl to_list_ seq =

00:05:52 #14872 [Verbose] >     seq

00:05:52 #14873 [Verbose] >     |> fold_ (fun acc x => x :: acc) [[]]

00:05:52 #14874 [Verbose] >     |> listm.rev

00:05:52 #14875 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2511-1104-1fa0fa34c8db\main.spi

00:05:53 #14876 [Verbose] >

00:05:53 #14877 [Verbose] > ╭─[ 342.52ms - stdout ]────────────────────────────────────────────────────────╮

00:05:53 #14878 [Verbose] > │ ()                                                                           │

00:05:53 #14879 [Verbose] > │                                                                              │

00:05:53 #14880 [Verbose] > │                                                                              │

00:05:53 #14881 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:53 #14882 [Verbose] >

00:05:53 #14883 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:53 #14884 [Verbose] > // // test

00:05:53 #14885 [Verbose] >

00:05:53 #14886 [Verbose] > listm.init 10i32 id

00:05:53 #14887 [Verbose] > |> from_list

00:05:53 #14888 [Verbose] > |> fun f (n : i32) => f n

00:05:53 #14889 [Verbose] > |> to_list

00:05:53 #14890 [Verbose] > |> _assert_eq (listm.init 10i32 id)

00:05:53 #14891 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2546-4601-4b2f7091cb37\main.spi

00:05:53 #14892 [Verbose] >

00:05:53 #14893 [Verbose] > ╭─[ 363.20ms - stdout ]────────────────────────────────────────────────────────╮

00:05:53 #14894 [Verbose] > │ type UH0 =                                                                   │

00:05:53 #14895 [Verbose] > │     | UH0_0                                                                  │

00:05:53 #14896 [Verbose] > │     | UH0_1 of int32 * UH0                                                   │

00:05:53 #14897 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:53 #14898 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:05:53 #14899 [Verbose] > │     let v1 : UH0 = UH0_1(9, v0)                                              │

00:05:53 #14900 [Verbose] > │     let v2 : UH0 = UH0_1(8, v1)                                              │

00:05:53 #14901 [Verbose] > │     let v3 : UH0 = UH0_1(7, v2)                                              │

00:05:53 #14902 [Verbose] > │     let v4 : UH0 = UH0_1(6, v3)                                              │

00:05:53 #14903 [Verbose] > │     let v5 : UH0 = UH0_1(5, v4)                                              │

00:05:53 #14904 [Verbose] > │     let v6 : UH0 = UH0_1(4, v5)                                              │

00:05:53 #14905 [Verbose] > │     let v7 : UH0 = UH0_1(3, v6)                                              │

00:05:53 #14906 [Verbose] > │     let v8 : UH0 = UH0_1(2, v7)                                              │

00:05:53 #14907 [Verbose] > │     let v9 : UH0 = UH0_1(1, v8)                                              │

00:05:53 #14908 [Verbose] > │     let v10 : UH0 = UH0_1(0, v9)                                             │

00:05:53 #14909 [Verbose] > │     let v11 : string = $"%A{v10}"                                            │

00:05:53 #14910 [Verbose] > │     System.Console.WriteLine v11                                             │

00:05:53 #14911 [Verbose] > │     let v100 : UH0 = UH0_0                                                   │

00:05:53 #14912 [Verbose] > │     let v101 : UH0 = UH0_1(9, v100)                                          │

00:05:53 #14913 [Verbose] > │     let v102 : UH0 = UH0_1(8, v101)                                          │

00:05:53 #14914 [Verbose] > │     let v103 : UH0 = UH0_1(7, v102)                                          │

00:05:53 #14915 [Verbose] > │     let v104 : UH0 = UH0_1(6, v103)                                          │

00:05:53 #14916 [Verbose] > │     let v105 : UH0 = UH0_1(5, v104)                                          │

00:05:53 #14917 [Verbose] > │     let v106 : UH0 = UH0_1(4, v105)                                          │

00:05:53 #14918 [Verbose] > │     let v107 : UH0 = UH0_1(3, v106)                                          │

00:05:53 #14919 [Verbose] > │     let v108 : UH0 = UH0_1(2, v107)                                          │

00:05:53 #14920 [Verbose] > │     let v109 : UH0 = UH0_1(1, v108)                                          │

00:05:53 #14921 [Verbose] > │     let v110 : UH0 = UH0_1(0, v109)                                          │

00:05:53 #14922 [Verbose] > │     let v111 : UH0 = UH0_0                                                   │

00:05:53 #14923 [Verbose] > │     let v112 : UH0 = UH0_1(9, v111)                                          │

00:05:53 #14924 [Verbose] > │     let v113 : UH0 = UH0_1(8, v112)                                          │

00:05:53 #14925 [Verbose] > │     let v114 : UH0 = UH0_1(7, v113)                                          │

00:05:53 #14926 [Verbose] > │     let v115 : UH0 = UH0_1(6, v114)                                          │

00:05:53 #14927 [Verbose] > │     let v116 : UH0 = UH0_1(5, v115)                                          │

00:05:53 #14928 [Verbose] > │     let v117 : UH0 = UH0_1(4, v116)                                          │

00:05:53 #14929 [Verbose] > │     let v118 : UH0 = UH0_1(3, v117)                                          │

00:05:53 #14930 [Verbose] > │     let v119 : UH0 = UH0_1(2, v118)                                          │

00:05:53 #14931 [Verbose] > │     let v120 : UH0 = UH0_1(1, v119)                                          │

00:05:53 #14932 [Verbose] > │     let v121 : UH0 = UH0_1(0, v120)                                          │

00:05:53 #14933 [Verbose] > │     let v122 : string = $"__expect / actual: %A{v110} / expected: %A{v121}"  │

00:05:53 #14934 [Verbose] > │     ()                                                                       │

00:05:53 #14935 [Verbose] > │ method0()                                                                    │

00:05:53 #14936 [Verbose] > │                                                                              │

00:05:53 #14937 [Verbose] > │ UH0_1                                                                        │

00:05:53 #14938 [Verbose] > │   (0,                                                                        │

00:05:53 #14939 [Verbose] > │    UH0_1                                                                     │

00:05:53 #14940 [Verbose] > │      (1,                                                                     │

00:05:53 #14941 [Verbose] > │       UH0_1                                                                  │

00:05:53 #14942 [Verbose] > │         (2,                                                                  │

00:05:53 #14943 [Verbose] > │          UH0_1                                                               │

00:05:53 #14944 [Verbose] > │            (3,                                                               │

00:05:53 #14945 [Verbose] > │             UH0_1                                                            │

00:05:53 #14946 [Verbose] > │               (4, UH0_1 (5, UH0_1 (6, UH0_1 (7, UH0_1 (8, UH0_1 (9,          │

00:05:53 #14947 [Verbose] > │ UH0_0))))))))))                                                              │

00:05:53 #14948 [Verbose] > │                                                                              │

00:05:53 #14949 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:53 #14950 [Verbose] >

00:05:53 #14951 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:53 #14952 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:53 #14953 [Verbose] > │ ## from_array                                                                │

00:05:53 #14954 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:53 #14955 [Verbose] >

00:05:53 #14956 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:53 #14957 [Verbose] > inl from_array forall dim {number; int} el. (array : a dim el) : seq dim el =

00:05:53 #14958 [Verbose] >     fun n =>

00:05:53 #14959 [Verbose] >         if n >= length array

00:05:53 #14960 [Verbose] >         then None

00:05:53 #14961 [Verbose] >         else index array n |> Some

00:05:53 #14962 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2586-8620-8840826350c8\main.spi

00:05:53 #14963 [Verbose] >

00:05:53 #14964 [Verbose] > ╭─[ 238.12ms - stdout ]────────────────────────────────────────────────────────╮

00:05:53 #14965 [Verbose] > │ ()                                                                           │

00:05:53 #14966 [Verbose] > │                                                                              │

00:05:53 #14967 [Verbose] > │                                                                              │

00:05:53 #14968 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:53 #14969 [Verbose] >

00:05:53 #14970 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:53 #14971 [Verbose] > // // test

00:05:53 #14972 [Verbose] >

00:05:53 #14973 [Verbose] > a ;[[ 1; 2; 3 ]]

00:05:53 #14974 [Verbose] > |> from_array

00:05:53 #14975 [Verbose] > |> try_item 1i32

00:05:53 #14976 [Verbose] > |> _assert_eq (Some 2i32)

00:05:53 #14977 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2610-1008-1acb601ec604\main.spi

00:05:54 #14978 [Verbose] >

00:05:54 #14979 [Verbose] > ╭─[ 375.36ms - stdout ]────────────────────────────────────────────────────────╮

00:05:54 #14980 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:54 #14981 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:54 #14982 [Verbose] > │     | US0_1                                                                  │

00:05:54 #14983 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:05:54 #14984 [Verbose] > │     v0                                                                       │

00:05:54 #14985 [Verbose] > │ and method0 () : unit =                                                      │

00:05:54 #14986 [Verbose] > │     let v0 : (int32 []) = [|1; 2; 3|]                                        │

00:05:54 #14987 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:05:54 #14988 [Verbose] > │     let v2 : bool = 1 >= v1                                                  │

00:05:54 #14989 [Verbose] > │     let v6 : US0 =                                                           │

00:05:54 #14990 [Verbose] > │         if v2 then                                                           │

00:05:54 #14991 [Verbose] > │             US0_1                                                            │

00:05:54 #14992 [Verbose] > │         else                                                                 │

00:05:54 #14993 [Verbose] > │             let v4 : int32 = v0.[int 1]                                      │

00:05:54 #14994 [Verbose] > │             US0_0(v4)                                                        │

00:05:54 #14995 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │

00:05:54 #14996 [Verbose] > │     System.Console.WriteLine v7                                              │

00:05:54 #14997 [Verbose] > │     let v11 : bool =                                                         │

00:05:54 #14998 [Verbose] > │         match v6 with                                                        │

00:05:54 #14999 [Verbose] > │         | US0_0(v9) -> (* Some *)                                            │

00:05:54 #15000 [Verbose] > │             let v10 : bool = v9 = 2                                          │

00:05:54 #15001 [Verbose] > │             v10                                                              │

00:05:54 #15002 [Verbose] > │         | _ ->                                                               │

00:05:54 #15003 [Verbose] > │             false                                                            │

00:05:54 #15004 [Verbose] > │     let v13 : bool =                                                         │

00:05:54 #15005 [Verbose] > │         if v11 then                                                          │

00:05:54 #15006 [Verbose] > │             true                                                             │

00:05:54 #15007 [Verbose] > │         else                                                                 │

00:05:54 #15008 [Verbose] > │             method1(v11)                                                     │

00:05:54 #15009 [Verbose] > │     let v14 : US0 = US0_0(2)                                                 │

00:05:54 #15010 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v6} / expected: %A{v14}"      │

00:05:54 #15011 [Verbose] > │     let v16 : bool = v13 = false                                             │

00:05:54 #15012 [Verbose] > │     if v16 then                                                              │

00:05:54 #15013 [Verbose] > │         failwith<unit> v15                                                   │

00:05:54 #15014 [Verbose] > │ method0()                                                                    │

00:05:54 #15015 [Verbose] > │                                                                              │

00:05:54 #15016 [Verbose] > │ US0_0 2                                                                      │

00:05:54 #15017 [Verbose] > │                                                                              │

00:05:54 #15018 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:54 #15019 [Verbose] >

00:05:54 #15020 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:54 #15021 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:54 #15022 [Verbose] > │ ## to_array                                                                  │

00:05:54 #15023 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:54 #15024 [Verbose] >

00:05:54 #15025 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:54 #15026 [Verbose] > inl to_array seq =

00:05:54 #15027 [Verbose] >     inl ar = a ;[[]] |> mut

00:05:54 #15028 [Verbose] >     ((), seq)

00:05:54 #15029 [Verbose] >     ||> fold fun _ x =>

00:05:54 #15030 [Verbose] >         ar <- *ar /@ a ;[[x]]

00:05:54 #15031 [Verbose] >     *ar

00:05:54 #15032 [Verbose] >

00:05:54 #15033 [Verbose] > inl to_array_ seq =

00:05:54 #15034 [Verbose] >     inl ar = a ;[[]] |> mut

00:05:54 #15035 [Verbose] >     ((), seq)

00:05:54 #15036 [Verbose] >     ||> fold_ fun _ x =>

00:05:54 #15037 [Verbose] >         ar <- *ar /@ a ;[[x]]

00:05:54 #15038 [Verbose] >     *ar

00:05:54 #15039 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2650-5004-50c1e5a621bc\main.spi

00:05:54 #15040 [Verbose] >

00:05:54 #15041 [Verbose] > ╭─[ 243.66ms - stdout ]────────────────────────────────────────────────────────╮

00:05:54 #15042 [Verbose] > │ ()                                                                           │

00:05:54 #15043 [Verbose] > │                                                                              │

00:05:54 #15044 [Verbose] > │                                                                              │

00:05:54 #15045 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:54 #15046 [Verbose] >

00:05:54 #15047 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:54 #15048 [Verbose] > // // test

00:05:54 #15049 [Verbose] >

00:05:54 #15050 [Verbose] > listm.init 10i32 id

00:05:54 #15051 [Verbose] > |> from_list

00:05:54 #15052 [Verbose] > |> fun (x : i32 -> _) => x

00:05:54 #15053 [Verbose] > |> to_array

00:05:54 #15054 [Verbose] > |> _assert_eq (a ;[[ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 ]] : _ i32 _)

00:05:54 #15055 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2674-7465-7c77d1baa6ae\main.spi

00:05:55 #15056 [Verbose] >

00:05:55 #15057 [Verbose] > ╭─[ 706.96ms - stdout ]────────────────────────────────────────────────────────╮

00:05:55 #15058 [Verbose] > │ type Mut0 = {mutable l0 : (int32 [])}                                        │

00:05:55 #15059 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │

00:05:55 #15060 [Verbose] > │ let rec method1 (v0 : int32, v1 : Mut1) : bool =                             │

00:05:55 #15061 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:05:55 #15062 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:05:55 #15063 [Verbose] > │     v3                                                                       │

00:05:55 #15064 [Verbose] > │ and method2 (v0 : (int32 []), v1 : (int32 []), v2 : int32) : bool =          │

00:05:55 #15065 [Verbose] > │     let v3 : int32 = v0.Length                                               │

00:05:55 #15066 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:05:55 #15067 [Verbose] > │     if v4 then                                                               │

00:05:55 #15068 [Verbose] > │         let v5 : int32 = v0.[int v2]                                         │

00:05:55 #15069 [Verbose] > │         let v6 : int32 = v1.[int v2]                                         │

00:05:55 #15070 [Verbose] > │         let v7 : bool = v5 = v6                                              │

00:05:55 #15071 [Verbose] > │         if v7 then                                                           │

00:05:55 #15072 [Verbose] > │             let v8 : int32 = v2 + 1                                          │

00:05:55 #15073 [Verbose] > │             method2(v0, v1, v8)                                              │

00:05:55 #15074 [Verbose] > │         else                                                                 │

00:05:55 #15075 [Verbose] > │             false                                                            │

00:05:55 #15076 [Verbose] > │     else                                                                     │

00:05:55 #15077 [Verbose] > │         true                                                                 │

00:05:55 #15078 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:05:55 #15079 [Verbose] > │     v0                                                                       │

00:05:55 #15080 [Verbose] > │ and method0 () : unit =                                                      │

00:05:55 #15081 [Verbose] > │     let v0 : (int32 []) = [||]                                               │

00:05:55 #15082 [Verbose] > │     let v1 : Mut0 = {l0 = v0} : Mut0                                         │

00:05:55 #15083 [Verbose] > │     let v2 : (int32 []) = v1.l0                                              │

00:05:55 #15084 [Verbose] > │     let v3 : (int32 []) = [|0|]                                              │

00:05:55 #15085 [Verbose] > │     let v4 : int32 = v2.Length                                               │

00:05:55 #15086 [Verbose] > │     let v5 : int32 = v3.Length                                               │

00:05:55 #15087 [Verbose] > │     let v6 : int32 = v4 + v5                                                 │

00:05:55 #15088 [Verbose] > │     let v7 : (int32 []) = Array.zeroCreate<int32> (v6)                       │

00:05:55 #15089 [Verbose] > │     let v8 : Mut1 = {l0 = 0} : Mut1                                          │

00:05:55 #15090 [Verbose] > │     while method1(v6, v8) do                                                 │

00:05:55 #15091 [Verbose] > │         let v10 : int32 = v8.l0                                              │

00:05:55 #15092 [Verbose] > │         let v11 : bool = v10 < v4                                            │

00:05:55 #15093 [Verbose] > │         let v15 : int32 =                                                    │

00:05:55 #15094 [Verbose] > │             if v11 then                                                      │

00:05:55 #15095 [Verbose] > │                 let v12 : int32 = v2.[int v10]                               │

00:05:55 #15096 [Verbose] > │                 v12                                                          │

00:05:55 #15097 [Verbose] > │             else                                                             │

00:05:55 #15098 [Verbose] > │                 let v13 : int32 = v10 - v4                                   │

00:05:55 #15099 [Verbose] > │                 let v14 : int32 = v3.[int v13]                               │

00:05:55 #15100 [Verbose] > │                 v14                                                          │

00:05:55 #15101 [Verbose] > │         v7.[int v10] <- v15                                                  │

00:05:55 #15102 [Verbose] > │         let v16 : int32 = v10 + 1                                            │

00:05:55 #15103 [Verbose] > │         v8.l0 <- v16                                                         │

00:05:55 #15104 [Verbose] > │         ()                                                                   │

00:05:55 #15105 [Verbose] > │     v1.l0 <- v7                                                              │

00:05:55 #15106 [Verbose] > │     let v17 : (int32 []) = v1.l0                                             │

00:05:55 #15107 [Verbose] > │     let v18 : (int32 []) = [|1|]                                             │

00:05:55 #15108 [Verbose] > │     let v19 : int32 = v17.Length                                             │

00:05:55 #15109 [Verbose] > │     let v20 : int32 = v18.Length                                             │

00:05:55 #15110 [Verbose] > │     let v21 : int32 = v19 + v20                                              │

00:05:55 #15111 [Verbose] > │     let v22 : (int32 []) = Array.zeroCreate<int32> (v21)                     │

00:05:55 #15112 [Verbose] > │     let v23 : Mut1 = {l0 = 0} : Mut1                                         │

00:05:55 #15113 [Verbose] > │     while method1(v21, v23) do                                               │

00:05:55 #15114 [Verbose] > │         let v25 : int32 = v23.l0                                             │

00:05:55 #15115 [Verbose] > │         let v26 : bool = v25 < v19                                           │

00:05:55 #15116 [Verbose] > │         let v30 : int32 =                                                    │

00:05:55 #15117 [Verbose] > │             if v26 then                                                      │

00:05:55 #15118 [Verbose] > │                 let v27 : int32 = v17.[int v25]                              │

00:05:55 #15119 [Verbose] > │                 v27                                                          │

00:05:55 #15120 [Verbose] > │             else                                                             │

00:05:55 #15121 [Verbose] > │                 let v28 : int32 = v25 - v19                                  │

00:05:55 #15122 [Verbose] > │                 let v29 : int32 = v18.[int v28]                              │

00:05:55 #15123 [Verbose] > │                 v29                                                          │

00:05:55 #15124 [Verbose] > │         v22.[int v25] <- v30                                                 │

00:05:55 #15125 [Verbose] > │         let v31 : int32 = v25 + 1                                            │

00:05:55 #15126 [Verbose] > │         v23.l0 <- v31                                                        │

00:05:55 #15127 [Verbose] > │         ()                                                                   │

00:05:55 #15128 [Verbose] > │     v1.l0 <- v22                                                             │

00:05:55 #15129 [Verbose] > │     let v32 : (int32 []) = v1.l0                                             │

00:05:55 #15130 [Verbose] > │     let v33 : (int32 []) = [|2|]                                             │

00:05:55 #15131 [Verbose] > │     let v34 : int32 = v32.Length                                             │

00:05:55 #15132 [Verbose] > │     let v35 : int32 = v33.Length                                             │

00:05:55 #15133 [Verbose] > │     let v36 : int32 = v34 + v35                                              │

00:05:55 #15134 [Verbose] > │     let v37 : (int32 []) = Array.zeroCreate<int32> (v36)                     │

00:05:55 #15135 [Verbose] > │     let v38 : Mut1 = {l0 = 0} : Mut1                                         │

00:05:55 #15136 [Verbose] > │     while method1(v36, v38) do                                               │

00:05:55 #15137 [Verbose] > │         let v40 : int32 = v38.l0                                             │

00:05:55 #15138 [Verbose] > │         let v41 : bool = v40 < v34                                           │

00:05:55 #15139 [Verbose] > │         let v45 : int32 =                                                    │

00:05:55 #15140 [Verbose] > │             if v41 then                                                      │

00:05:55 #15141 [Verbose] > │                 let v42 : int32 = v32.[int v40]                              │

00:05:55 #15142 [Verbose] > │                 v42                                                          │

00:05:55 #15143 [Verbose] > │             else                                                             │

00:05:55 #15144 [Verbose] > │                 let v43 : int32 = v40 - v34                                  │

00:05:55 #15145 [Verbose] > │                 let v44 : int32 = v33.[int v43]                              │

00:05:55 #15146 [Verbose] > │                 v44                                                          │

00:05:55 #15147 [Verbose] > │         v37.[int v40] <- v45                                                 │

00:05:55 #15148 [Verbose] > │         let v46 : int32 = v40 + 1                                            │

00:05:55 #15149 [Verbose] > │         v38.l0 <- v46                                                        │

00:05:55 #15150 [Verbose] > │         ()                                                                   │

00:05:55 #15151 [Verbose] > │     v1.l0 <- v37                                                             │

00:05:55 #15152 [Verbose] > │     let v47 : (int32 []) = v1.l0                                             │

00:05:55 #15153 [Verbose] > │     let v48 : (int32 []) = [|3|]                                             │

00:05:55 #15154 [Verbose] > │     let v49 : int32 = v47.Length                                             │

00:05:55 #15155 [Verbose] > │     let v50 : int32 = v48.Length                                             │

00:05:55 #15156 [Verbose] > │     let v51 : int32 = v49 + v50                                              │

00:05:55 #15157 [Verbose] > │     let v52 : (int32 []) = Array.zeroCreate<int32> (v51)                     │

00:05:55 #15158 [Verbose] > │     let v53 : Mut1 = {l0 = 0} : Mut1                                         │

00:05:55 #15159 [Verbose] > │     while method1(v51, v53) do                                               │

00:05:55 #15160 [Verbose] > │         let v55 : int32 = v53.l0                                             │

00:05:55 #15161 [Verbose] > │         let v56 : bool = v55 < v49                                           │

00:05:55 #15162 [Verbose] > │         let v60 : int32 =                                                    │

00:05:55 #15163 [Verbose] > │             if v56 then                                                      │

00:05:55 #15164 [Verbose] > │                 let v57 : int32 = v47.[int v55]                              │

00:05:55 #15165 [Verbose] > │                 v57                                                          │

00:05:55 #15166 [Verbose] > │             else                                                             │

00:05:55 #15167 [Verbose] > │                 let v58 : int32 = v55 - v49                                  │

00:05:55 #15168 [Verbose] > │                 let v59 : int32 = v48.[int v58]                              │

00:05:55 #15169 [Verbose] > │                 v59                                                          │

00:05:55 #15170 [Verbose] > │         v52.[int v55] <- v60                                                 │

00:05:55 #15171 [Verbose] > │         let v61 : int32 = v55 + 1                                            │

00:05:55 #15172 [Verbose] > │         v53.l0 <- v61                                                        │

00:05:55 #15173 [Verbose] > │         ()                                                                   │

00:05:55 #15174 [Verbose] > │     v1.l0 <- v52                                                             │

00:05:55 #15175 [Verbose] > │     let v62 : (int32 []) = v1.l0                                             │

00:05:55 #15176 [Verbose] > │     let v63 : (int32 []) = [|4|]                                             │

00:05:55 #15177 [Verbose] > │     let v64 : int32 = v62.Length                                             │

00:05:55 #15178 [Verbose] > │     let v65 : int32 = v63.Length                                             │

00:05:55 #15179 [Verbose] > │     let v66 : int32 = v64 + v65                                              │

00:05:55 #15180 [Verbose] > │     let v67 : (int32 []) = Array.zeroCreate<int32> (v66)                     │

00:05:55 #15181 [Verbose] > │     let v68 : Mut1 = {l0 = 0} : Mut1                                         │

00:05:55 #15182 [Verbose] > │     while method1(v66, v68) do                                               │

00:05:55 #15183 [Verbose] > │         let v70 : int32 = v68.l0                                             │

00:05:55 #15184 [Verbose] > │         let v71 : bool = v70 < v64                                           │

00:05:55 #15185 [Verbose] > │         let v75 : int32 =                                                    │

00:05:55 #15186 [Verbose] > │             if v71 then                                                      │

00:05:55 #15187 [Verbose] > │                 let v72 : int32 = v62.[int v70]                              │

00:05:55 #15188 [Verbose] > │                 v72                                                          │

00:05:55 #15189 [Verbose] > │             else                                                             │

00:05:55 #15190 [Verbose] > │                 let v73 : int32 = v70 - v64                                  │

00:05:55 #15191 [Verbose] > │                 let v74 : int32 = v63.[int v73]                              │

00:05:55 #15192 [Verbose] > │                 v74                                                          │

00:05:55 #15193 [Verbose] > │         v67.[int v70] <- v75                                                 │

00:05:55 #15194 [Verbose] > │         let v76 : int32 = v70 + 1                                            │

00:05:55 #15195 [Verbose] > │         v68.l0 <- v76                                                        │

00:05:55 #15196 [Verbose] > │         ()                                                                   │

00:05:55 #15197 [Verbose] > │     v1.l0 <- v67                                                             │

00:05:55 #15198 [Verbose] > │     let v77 : (int32 []) = v1.l0                                             │

00:05:55 #15199 [Verbose] > │     let v78 : (int32 []) = [|5|]                                             │

00:05:55 #15200 [Verbose] > │     let v79 : int32 = v77.Length                                             │

00:05:55 #15201 [Verbose] > │     let v80 : int32 = v78.Length                                             │

00:05:55 #15202 [Verbose] > │     let v81 : int32 = v79 + v80                                              │

00:05:55 #15203 [Verbose] > │     let v82 : (int32 []) = Array.zeroCreate<int32> (v81)                     │

00:05:55 #15204 [Verbose] > │     let v83 : Mut1 = {l0 = 0} : Mut1                                         │

00:05:55 #15205 [Verbose] > │     while method1(v81, v83) do                                               │

00:05:55 #15206 [Verbose] > │         let v85 : int32 = v83.l0                                             │

00:05:55 #15207 [Verbose] > │         let v86 : bool = v85 < v79                                           │

00:05:55 #15208 [Verbose] > │         let v90 : int32 =                                                    │

00:05:55 #15209 [Verbose] > │             if v86 then                                                      │

00:05:55 #15210 [Verbose] > │                 let v87 : int32 = v77.[int v85]                              │

00:05:55 #15211 [Verbose] > │                 v87                                                          │

00:05:55 #15212 [Verbose] > │             else                                                             │

00:05:55 #15213 [Verbose] > │                 let v88 : int32 = v85 - v79                                  │

00:05:55 #15214 [Verbose] > │                 let v89 : int32 = v78.[int v88]                              │

00:05:55 #15215 [Verbose] > │                 v89                                                          │

00:05:55 #15216 [Verbose] > │         v82.[int v85] <- v90                                                 │

00:05:55 #15217 [Verbose] > │         let v91 : int32 = v85 + 1                                            │

00:05:55 #15218 [Verbose] > │         v83.l0 <- v91                                                        │

00:05:55 #15219 [Verbose] > │         ()                                                                   │

00:05:55 #15220 [Verbose] > │     v1.l0 <- v82                                                             │

00:05:55 #15221 [Verbose] > │     let v92 : (int32 []) = v1.l0                                             │

00:05:55 #15222 [Verbose] > │     let v93 : (int32 []) = [|6|]                                             │

00:05:55 #15223 [Verbose] > │     let v94 : int32 = v92.Length                                             │

00:05:55 #15224 [Verbose] > │     let v95 : int32 = v93.Length                                             │

00:05:55 #15225 [Verbose] > │     let v96 : int32 = v94 + v95                                              │

00:05:55 #15226 [Verbose] > │     let v97 : (int32 []) = Array.zeroCreate<int32> (v96)                     │

00:05:55 #15227 [Verbose] > │     let v98 : Mut1 = {l0 = 0} : Mut1                                         │

00:05:55 #15228 [Verbose] > │     while method1(v96, v98) do                                               │

00:05:55 #15229 [Verbose] > │         let v100 : int32 = v98.l0                                            │

00:05:55 #15230 [Verbose] > │         let v101 : bool = v100 < v94                                         │

00:05:55 #15231 [Verbose] > │         let v105 : int32 =                                                   │

00:05:55 #15232 [Verbose] > │             if v101 then                                                     │

00:05:55 #15233 [Verbose] > │                 let v102 : int32 = v92.[int v100]                            │

00:05:55 #15234 [Verbose] > │                 v102                                                         │

00:05:55 #15235 [Verbose] > │             else                                                             │

00:05:55 #15236 [Verbose] > │                 let v103 : int32 = v100 - v94                                │

00:05:55 #15237 [Verbose] > │                 let v104 : int32 = v93.[int v103]                            │

00:05:55 #15238 [Verbose] > │                 v104                                                         │

00:05:55 #15239 [Verbose] > │         v97.[int v100] <- v105                                               │

00:05:55 #15240 [Verbose] > │         let v106 : int32 = v100 + 1                                          │

00:05:55 #15241 [Verbose] > │         v98.l0 <- v106                                                       │

00:05:55 #15242 [Verbose] > │         ()                                                                   │

00:05:55 #15243 [Verbose] > │     v1.l0 <- v97                                                             │

00:05:55 #15244 [Verbose] > │     let v107 : (int32 []) = v1.l0                                            │

00:05:55 #15245 [Verbose] > │     let v108 : (int32 []) = [|7|]                                            │

00:05:55 #15246 [Verbose] > │     let v109 : int32 = v107.Length                                           │

00:05:55 #15247 [Verbose] > │     let v110 : int32 = v108.Length                                           │

00:05:55 #15248 [Verbose] > │     let v111 : int32 = v109 + v110                                           │

00:05:55 #15249 [Verbose] > │     let v112 : (int32 []) = Array.zeroCreate<int32> (v111)                   │

00:05:55 #15250 [Verbose] > │     let v113 : Mut1 = {l0 = 0} : Mut1                                        │

00:05:55 #15251 [Verbose] > │     while method1(v111, v113) do                                             │

00:05:55 #15252 [Verbose] > │         let v115 : int32 = v113.l0                                           │

00:05:55 #15253 [Verbose] > │         let v116 : bool = v115 < v109                                        │

00:05:55 #15254 [Verbose] > │         let v120 : int32 =                                                   │

00:05:55 #15255 [Verbose] > │             if v116 then                                                     │

00:05:55 #15256 [Verbose] > │                 let v117 : int32 = v107.[int v115]                           │

00:05:55 #15257 [Verbose] > │                 v117                                                         │

00:05:55 #15258 [Verbose] > │             else                                                             │

00:05:55 #15259 [Verbose] > │                 let v118 : int32 = v115 - v109                               │

00:05:55 #15260 [Verbose] > │                 let v119 : int32 = v108.[int v118]                           │

00:05:55 #15261 [Verbose] > │                 v119                                                         │

00:05:55 #15262 [Verbose] > │         v112.[int v115] <- v120                                              │

00:05:55 #15263 [Verbose] > │         let v121 : int32 = v115 + 1                                          │

00:05:55 #15264 [Verbose] > │         v113.l0 <- v121                                                      │

00:05:55 #15265 [Verbose] > │         ()                                                                   │

00:05:55 #15266 [Verbose] > │     v1.l0 <- v112                                                            │

00:05:55 #15267 [Verbose] > │     let v122 : (int32 []) = v1.l0                                            │

00:05:55 #15268 [Verbose] > │     let v123 : (int32 []) = [|8|]                                            │

00:05:55 #15269 [Verbose] > │     let v124 : int32 = v122.Length                                           │

00:05:55 #15270 [Verbose] > │     let v125 : int32 = v123.Length                                           │

00:05:55 #15271 [Verbose] > │     let v126 : int32 = v124 + v125                                           │

00:05:55 #15272 [Verbose] > │     let v127 : (int32 []) = Array.zeroCreate<int32> (v126)                   │

00:05:55 #15273 [Verbose] > │     let v128 : Mut1 = {l0 = 0} : Mut1                                        │

00:05:55 #15274 [Verbose] > │     while method1(v126, v128) do                                             │

00:05:55 #15275 [Verbose] > │         let v130 : int32 = v128.l0                                           │

00:05:55 #15276 [Verbose] > │         let v131 : bool = v130 < v124                                        │

00:05:55 #15277 [Verbose] > │         let v135 : int32 =                                                   │

00:05:55 #15278 [Verbose] > │             if v131 then                                                     │

00:05:55 #15279 [Verbose] > │                 let v132 : int32 = v122.[int v130]                           │

00:05:55 #15280 [Verbose] > │                 v132                                                         │

00:05:55 #15281 [Verbose] > │             else                                                             │

00:05:55 #15282 [Verbose] > │                 let v133 : int32 = v130 - v124                               │

00:05:55 #15283 [Verbose] > │                 let v134 : int32 = v123.[int v133]                           │

00:05:55 #15284 [Verbose] > │                 v134                                                         │

00:05:55 #15285 [Verbose] > │         v127.[int v130] <- v135                                              │

00:05:55 #15286 [Verbose] > │         let v136 : int32 = v130 + 1                                          │

00:05:55 #15287 [Verbose] > │         v128.l0 <- v136                                                      │

00:05:55 #15288 [Verbose] > │         ()                                                                   │

00:05:55 #15289 [Verbose] > │     v1.l0 <- v127                                                            │

00:05:55 #15290 [Verbose] > │     let v137 : (int32 []) = v1.l0                                            │

00:05:55 #15291 [Verbose] > │     let v138 : (int32 []) = [|9|]                                            │

00:05:55 #15292 [Verbose] > │     let v139 : int32 = v137.Length                                           │

00:05:55 #15293 [Verbose] > │     let v140 : int32 = v138.Length                                           │

00:05:55 #15294 [Verbose] > │     let v141 : int32 = v139 + v140                                           │

00:05:55 #15295 [Verbose] > │     let v142 : (int32 []) = Array.zeroCreate<int32> (v141)                   │

00:05:55 #15296 [Verbose] > │     let v143 : Mut1 = {l0 = 0} : Mut1                                        │

00:05:55 #15297 [Verbose] > │     while method1(v141, v143) do                                             │

00:05:55 #15298 [Verbose] > │         let v145 : int32 = v143.l0                                           │

00:05:55 #15299 [Verbose] > │         let v146 : bool = v145 < v139                                        │

00:05:55 #15300 [Verbose] > │         let v150 : int32 =                                                   │

00:05:55 #15301 [Verbose] > │             if v146 then                                                     │

00:05:55 #15302 [Verbose] > │                 let v147 : int32 = v137.[int v145]                           │

00:05:55 #15303 [Verbose] > │                 v147                                                         │

00:05:55 #15304 [Verbose] > │             else                                                             │

00:05:55 #15305 [Verbose] > │                 let v148 : int32 = v145 - v139                               │

00:05:55 #15306 [Verbose] > │                 let v149 : int32 = v138.[int v148]                           │

00:05:55 #15307 [Verbose] > │                 v149                                                         │

00:05:55 #15308 [Verbose] > │         v142.[int v145] <- v150                                              │

00:05:55 #15309 [Verbose] > │         let v151 : int32 = v145 + 1                                          │

00:05:55 #15310 [Verbose] > │         v143.l0 <- v151                                                      │

00:05:55 #15311 [Verbose] > │         ()                                                                   │

00:05:55 #15312 [Verbose] > │     v1.l0 <- v142                                                            │

00:05:55 #15313 [Verbose] > │     let v152 : (int32 []) = v1.l0                                            │

00:05:55 #15314 [Verbose] > │     let v153 : (int32 []) = [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|]                 │

00:05:55 #15315 [Verbose] > │     let v154 : string = $"%A{v152}"                                          │

00:05:55 #15316 [Verbose] > │     System.Console.WriteLine v154                                            │

00:05:55 #15317 [Verbose] > │     let v155 : int32 = v152.Length                                           │

00:05:55 #15318 [Verbose] > │     let v156 : int32 = v153.Length                                           │

00:05:55 #15319 [Verbose] > │     let v157 : bool = v155 = v156                                            │

00:05:55 #15320 [Verbose] > │     let v158 : bool = v157 <> true                                           │

00:05:55 #15321 [Verbose] > │     let v161 : bool =                                                        │

00:05:55 #15322 [Verbose] > │         if v158 then                                                         │

00:05:55 #15323 [Verbose] > │             false                                                            │

00:05:55 #15324 [Verbose] > │         else                                                                 │

00:05:55 #15325 [Verbose] > │             let v159 : int32 = 0                                             │

00:05:55 #15326 [Verbose] > │             method2(v152, v153, v159)                                        │

00:05:55 #15327 [Verbose] > │     let v163 : bool =                                                        │

00:05:55 #15328 [Verbose] > │         if v161 then                                                         │

00:05:55 #15329 [Verbose] > │             true                                                             │

00:05:55 #15330 [Verbose] > │         else                                                                 │

00:05:55 #15331 [Verbose] > │             method3(v161)                                                    │

00:05:55 #15332 [Verbose] > │     let v164 : string = $"__expect / actual: %A{v152} / expected: %A{v153}"  │

00:05:55 #15333 [Verbose] > │     let v165 : bool = v163 = false                                           │

00:05:55 #15334 [Verbose] > │     if v165 then                                                             │

00:05:55 #15335 [Verbose] > │         failwith<unit> v164                                                  │

00:05:55 #15336 [Verbose] > │ method0()                                                                    │

00:05:55 #15337 [Verbose] > │                                                                              │

00:05:55 #15338 [Verbose] > │ [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|]                                             │

00:05:55 #15339 [Verbose] > │                                                                              │

00:05:55 #15340 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:55 #15341 [Verbose] >

00:05:55 #15342 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:55 #15343 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:55 #15344 [Verbose] > │ ## take_while                                                                │

00:05:55 #15345 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:55 #15346 [Verbose] >

00:05:55 #15347 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:55 #15348 [Verbose] > inl take_while cond seq =

00:05:55 #15349 [Verbose] >     inl rec loop acc i =

00:05:55 #15350 [Verbose] >         match seq i with

00:05:55 #15351 [Verbose] >         | Some st when cond st i => loop (st :: acc) (i + 1)

00:05:55 #15352 [Verbose] >         | _ => acc |> listm.rev

00:05:55 #15353 [Verbose] >     loop [[]] 0

00:05:55 #15354 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2763-6386-69343f1b4fde\main.spi

00:05:55 #15355 [Verbose] >

00:05:55 #15356 [Verbose] > ╭─[ 229.64ms - stdout ]────────────────────────────────────────────────────────╮

00:05:55 #15357 [Verbose] > │ ()                                                                           │

00:05:55 #15358 [Verbose] > │                                                                              │

00:05:55 #15359 [Verbose] > │                                                                              │

00:05:55 #15360 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:55 #15361 [Verbose] >

00:05:55 #15362 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:55 #15363 [Verbose] > // // test

00:05:55 #15364 [Verbose] >

00:05:55 #15365 [Verbose] > listm.init 10i32 id

00:05:55 #15366 [Verbose] > |> from_list

00:05:55 #15367 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)

00:05:55 #15368 [Verbose] > |> listm'.sum

00:05:55 #15369 [Verbose] > |> _assert_eq 10

00:05:55 #15370 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2786-8676-875c89e3f51c\main.spi

00:05:55 #15371 [Verbose] >

00:05:55 #15372 [Verbose] > ╭─[ 233.14ms - stdout ]────────────────────────────────────────────────────────╮

00:05:55 #15373 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:55 #15374 [Verbose] > │     let v0 : string = $"%A{10}"                                              │

00:05:55 #15375 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:55 #15376 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │

00:05:55 #15377 [Verbose] > │     ()                                                                       │

00:05:55 #15378 [Verbose] > │ method0()                                                                    │

00:05:55 #15379 [Verbose] > │                                                                              │

00:05:55 #15380 [Verbose] > │ 10                                                                           │

00:05:55 #15381 [Verbose] > │                                                                              │

00:05:55 #15382 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:55 #15383 [Verbose] >

00:05:55 #15384 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:55 #15385 [Verbose] > // // test

00:05:55 #15386 [Verbose] >

00:05:55 #15387 [Verbose] > stream.new_finite_stream print_and_return 10i32

00:05:55 #15388 [Verbose] > |> flip stream.try_item

00:05:55 #15389 [Verbose] > |> take_while (fun n (_ : i32) => n < 5)

00:05:55 #15390 [Verbose] > |> listm'.sum

00:05:55 #15391 [Verbose] > |> _assert_eq 10

00:05:55 #15392 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2810-1083-1554284939b3\main.spi

00:05:56 #15393 [Verbose] >

00:05:56 #15394 [Verbose] > ╭─[ 320.64ms - stdout ]────────────────────────────────────────────────────────╮

00:05:56 #15395 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:56 #15396 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:56 #15397 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:56 #15398 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:56 #15399 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:56 #15400 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:56 #15401 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:56 #15402 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:56 #15403 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:56 #15404 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:56 #15405 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:56 #15406 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:56 #15407 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:56 #15408 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:56 #15409 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:56 #15410 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:56 #15411 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:56 #15412 [Verbose] > │     let v0 : string = $"%A{10}"                                              │

00:05:56 #15413 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:56 #15414 [Verbose] > │     let v1 : string = $"__expect / actual: %A{10} / expected: %A{10}"        │

00:05:56 #15415 [Verbose] > │     ()                                                                       │

00:05:56 #15416 [Verbose] > │ method0()                                                                    │

00:05:56 #15417 [Verbose] > │                                                                              │

00:05:56 #15418 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:56 #15419 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15420 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15421 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15422 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15423 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15424 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:56 #15425 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15426 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15427 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:56 #15428 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:56 #15429 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15430 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15431 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:56 #15432 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:56 #15433 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:56 #15434 [Verbose] > │ 10                                                                           │

00:05:56 #15435 [Verbose] > │                                                                              │

00:05:56 #15436 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:56 #15437 [Verbose] >

00:05:56 #15438 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:56 #15439 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:56 #15440 [Verbose] > │ ## take_while_                                                               │

00:05:56 #15441 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:56 #15442 [Verbose] >

00:05:56 #15443 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:56 #15444 [Verbose] > inl take_while_ cond seq =

00:05:56 #15445 [Verbose] >     let rec loop acc i =

00:05:56 #15446 [Verbose] >         match seq i with

00:05:56 #15447 [Verbose] >         | Some st when cond st i => loop (st :: acc) (i + 1)

00:05:56 #15448 [Verbose] >         | _ => acc |> listm.rev

00:05:56 #15449 [Verbose] >     loop [[]] 0

00:05:56 #15450 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2846-4665-48a2f68cef55\main.spi

00:05:56 #15451 [Verbose] >

00:05:56 #15452 [Verbose] > ╭─[ 202.57ms - stdout ]────────────────────────────────────────────────────────╮

00:05:56 #15453 [Verbose] > │ ()                                                                           │

00:05:56 #15454 [Verbose] > │                                                                              │

00:05:56 #15455 [Verbose] > │                                                                              │

00:05:56 #15456 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:56 #15457 [Verbose] >

00:05:56 #15458 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:56 #15459 [Verbose] > // // test

00:05:56 #15460 [Verbose] >

00:05:56 #15461 [Verbose] > stream.new_infinite_stream_ print_and_return

00:05:56 #15462 [Verbose] > |> flip stream.try_item

00:05:56 #15463 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)

00:05:56 #15464 [Verbose] > |> listm'.sum

00:05:56 #15465 [Verbose] > |> _assert_eq 10

00:05:56 #15466 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2867-6710-619c1ef5dd2c\main.spi

00:05:56 #15467 [Verbose] >

00:05:56 #15468 [Verbose] > ╭─[ 399.49ms - stdout ]────────────────────────────────────────────────────────╮

00:05:56 #15469 [Verbose] > │ type UH0 =                                                                   │

00:05:56 #15470 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │

00:05:56 #15471 [Verbose] > │     | UH0_1                                                                  │

00:05:56 #15472 [Verbose] > │ and UH1 =                                                                    │

00:05:56 #15473 [Verbose] > │     | UH1_0                                                                  │

00:05:56 #15474 [Verbose] > │     | UH1_1 of int32 * UH1                                                   │

00:05:56 #15475 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:05:56 #15476 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:56 #15477 [Verbose] > │     | US0_1                                                                  │

00:05:56 #15478 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 =                                     │

00:05:56 #15479 [Verbose] > │     let v1 : int32 = v0 + 1                                                  │

00:05:56 #15480 [Verbose] > │     method1(v1)                                                              │

00:05:56 #15481 [Verbose] > │ and method1 (v0 : int32) : UH0 =                                             │

00:05:56 #15482 [Verbose] > │     printfn $"print_and_return / x: {v0}"                                    │

00:05:56 #15483 [Verbose] > │     let v1 : (unit -> UH0) = closure0(v0)                                    │

00:05:56 #15484 [Verbose] > │     UH0_0(v0, v1)                                                            │

00:05:56 #15485 [Verbose] > │ and method3 (v0 : int32, v1 : UH0) : US0 =                                   │

00:05:56 #15486 [Verbose] > │     match v1 with                                                            │

00:05:56 #15487 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:05:56 #15488 [Verbose] > │         let v4 : bool = v0 <= 0                                              │

00:05:56 #15489 [Verbose] > │         if v4 then                                                           │

00:05:56 #15490 [Verbose] > │             US0_0(v2)                                                        │

00:05:56 #15491 [Verbose] > │         else                                                                 │

00:05:56 #15492 [Verbose] > │             let v6 : int32 = v0 - 1                                          │

00:05:56 #15493 [Verbose] > │             let v7 : UH0 = v3 ()                                             │

00:05:56 #15494 [Verbose] > │             method3(v6, v7)                                                  │

00:05:56 #15495 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:05:56 #15496 [Verbose] > │         US0_1                                                                │

00:05:56 #15497 [Verbose] > │ and method4 (v0 : UH1, v1 : UH1) : UH1 =                                     │

00:05:56 #15498 [Verbose] > │     match v0 with                                                            │

00:05:56 #15499 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:56 #15500 [Verbose] > │         let v4 : UH1 = UH1_1(v2, v1)                                         │

00:05:56 #15501 [Verbose] > │         method4(v3, v4)                                                      │

00:05:56 #15502 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:56 #15503 [Verbose] > │         v1                                                                   │

00:05:56 #15504 [Verbose] > │ and method2 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 =                         │

00:05:56 #15505 [Verbose] > │     let v3 : US0 = method3(v2, v0)                                           │

00:05:56 #15506 [Verbose] > │     match v3 with                                                            │

00:05:56 #15507 [Verbose] > │     | US0_0(v4) -> (* Some *)                                                │

00:05:56 #15508 [Verbose] > │         let v5 : bool = v4 < 5                                               │

00:05:56 #15509 [Verbose] > │         if v5 then                                                           │

00:05:56 #15510 [Verbose] > │             let v6 : UH1 = UH1_1(v4, v1)                                     │

00:05:56 #15511 [Verbose] > │             let v7 : int32 = v2 + 1                                          │

00:05:56 #15512 [Verbose] > │             method2(v0, v6, v7)                                              │

00:05:56 #15513 [Verbose] > │         else                                                                 │

00:05:56 #15514 [Verbose] > │             let v9 : UH1 = UH1_0                                             │

00:05:56 #15515 [Verbose] > │             method4(v1, v9)                                                  │

00:05:56 #15516 [Verbose] > │     | _ ->                                                                   │

00:05:56 #15517 [Verbose] > │         let v12 : UH1 = UH1_0                                                │

00:05:56 #15518 [Verbose] > │         method4(v1, v12)                                                     │

00:05:56 #15519 [Verbose] > │ and method5 (v0 : UH1, v1 : int32) : int32 =                                 │

00:05:56 #15520 [Verbose] > │     match v0 with                                                            │

00:05:56 #15521 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:56 #15522 [Verbose] > │         let v4 : int32 = v1 + v2                                             │

00:05:56 #15523 [Verbose] > │         method5(v3, v4)                                                      │

00:05:56 #15524 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:56 #15525 [Verbose] > │         v1                                                                   │

00:05:56 #15526 [Verbose] > │ and method6 (v0 : bool) : bool =                                             │

00:05:56 #15527 [Verbose] > │     v0                                                                       │

00:05:56 #15528 [Verbose] > │ and method0 () : unit =                                                      │

00:05:56 #15529 [Verbose] > │     let v0 : int32 = 0                                                       │

00:05:56 #15530 [Verbose] > │     let v1 : UH0 = method1(v0)                                               │

00:05:56 #15531 [Verbose] > │     let v2 : UH1 = UH1_0                                                     │

00:05:56 #15532 [Verbose] > │     let v3 : int32 = 0                                                       │

00:05:56 #15533 [Verbose] > │     let v4 : UH1 = method2(v1, v2, v3)                                       │

00:05:56 #15534 [Verbose] > │     let v5 : int32 = 0                                                       │

00:05:56 #15535 [Verbose] > │     let v6 : int32 = method5(v4, v5)                                         │

00:05:56 #15536 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │

00:05:56 #15537 [Verbose] > │     System.Console.WriteLine v7                                              │

00:05:56 #15538 [Verbose] > │     let v8 : bool = v6 = 10                                                  │

00:05:56 #15539 [Verbose] > │     let v10 : bool =                                                         │

00:05:56 #15540 [Verbose] > │         if v8 then                                                           │

00:05:56 #15541 [Verbose] > │             true                                                             │

00:05:56 #15542 [Verbose] > │         else                                                                 │

00:05:56 #15543 [Verbose] > │             method6(v8)                                                      │

00:05:56 #15544 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}"       │

00:05:56 #15545 [Verbose] > │     let v12 : bool = v10 = false                                             │

00:05:56 #15546 [Verbose] > │     if v12 then                                                              │

00:05:56 #15547 [Verbose] > │         failwith<unit> v11                                                   │

00:05:56 #15548 [Verbose] > │ method0()                                                                    │

00:05:56 #15549 [Verbose] > │                                                                              │

00:05:56 #15550 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:56 #15551 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15552 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15553 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15554 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15555 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15556 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:56 #15557 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15558 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15559 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:56 #15560 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:56 #15561 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:56 #15562 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:56 #15563 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:56 #15564 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:56 #15565 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:56 #15566 [Verbose] > │ 10                                                                           │

00:05:56 #15567 [Verbose] > │                                                                              │

00:05:56 #15568 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:56 #15569 [Verbose] >

00:05:56 #15570 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:56 #15571 [Verbose] > // // test

00:05:56 #15572 [Verbose] >

00:05:56 #15573 [Verbose] > stream.new_infinite_stream_ print_and_return

00:05:56 #15574 [Verbose] > |> stream.memoize

00:05:56 #15575 [Verbose] > |> fun list =>

00:05:56 #15576 [Verbose] >     inl list = list ()

00:05:56 #15577 [Verbose] >     fun n =>

00:05:56 #15578 [Verbose] >         list |> stream.try_item n

00:05:56 #15579 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5i32)

00:05:56 #15580 [Verbose] > |> listm'.sum

00:05:56 #15581 [Verbose] > |> _assert_eq 10

00:05:56 #15582 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2911-1120-1ac01101590b\main.spi

00:05:57 #15583 [Verbose] >

00:05:57 #15584 [Verbose] > ╭─[ 426.20ms - stdout ]────────────────────────────────────────────────────────╮

00:05:57 #15585 [Verbose] > │ type UH0 =                                                                   │

00:05:57 #15586 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │

00:05:57 #15587 [Verbose] > │     | UH0_1                                                                  │

00:05:57 #15588 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:05:57 #15589 [Verbose] > │     | US0_0 of f0_0 : (unit -> UH0)                                          │

00:05:57 #15590 [Verbose] > │     | US0_1 of f1_0 : UH0                                                    │

00:05:57 #15591 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │

00:05:57 #15592 [Verbose] > │ and UH1 =                                                                    │

00:05:57 #15593 [Verbose] > │     | UH1_0                                                                  │

00:05:57 #15594 [Verbose] > │     | UH1_1 of int32 * UH1                                                   │

00:05:57 #15595 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:05:57 #15596 [Verbose] > │     | US1_0 of f0_0 : int32                                                  │

00:05:57 #15597 [Verbose] > │     | US1_1                                                                  │

00:05:57 #15598 [Verbose] > │ let rec closure0 (v0 : int32) () : UH0 =                                     │

00:05:57 #15599 [Verbose] > │     let v1 : int32 = v0 + 1                                                  │

00:05:57 #15600 [Verbose] > │     method1(v1)                                                              │

00:05:57 #15601 [Verbose] > │ and method1 (v0 : int32) : UH0 =                                             │

00:05:57 #15602 [Verbose] > │     printfn $"print_and_return / x: {v0}"                                    │

00:05:57 #15603 [Verbose] > │     let v1 : (unit -> UH0) = closure0(v0)                                    │

00:05:57 #15604 [Verbose] > │     UH0_0(v0, v1)                                                            │

00:05:57 #15605 [Verbose] > │ and closure1 (v0 : UH0) () : UH0 =                                           │

00:05:57 #15606 [Verbose] > │     v0                                                                       │

00:05:57 #15607 [Verbose] > │ and closure2 (v0 : UH0, v1 : Mut0) () : UH0 =                                │

00:05:57 #15608 [Verbose] > │     let v2 : US0 = v1.l0                                                     │

00:05:57 #15609 [Verbose] > │     match v2 with                                                            │

00:05:57 #15610 [Verbose] > │     | US0_1(v3) -> (* Computed *)                                            │

00:05:57 #15611 [Verbose] > │         v3                                                                   │

00:05:57 #15612 [Verbose] > │     | US0_0(v4) -> (* NotComputed *)                                         │

00:05:57 #15613 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │

00:05:57 #15614 [Verbose] > │         let v12 : UH0 =                                                      │

00:05:57 #15615 [Verbose] > │             match v5 with                                                    │

00:05:57 #15616 [Verbose] > │             | UH0_0(v7, v8) -> (* StreamCons *)                              │

00:05:57 #15617 [Verbose] > │                 let v9 : (unit -> UH0) = method2(v0, v8)                     │

00:05:57 #15618 [Verbose] > │                 UH0_0(v7, v9)                                                │

00:05:57 #15619 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:05:57 #15620 [Verbose] > │                 UH0_1                                                        │

00:05:57 #15621 [Verbose] > │         let v13 : US0 = US0_1(v12)                                           │

00:05:57 #15622 [Verbose] > │         v1.l0 <- v13                                                         │

00:05:57 #15623 [Verbose] > │         v12                                                                  │

00:05:57 #15624 [Verbose] > │ and method2 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) =                 │

00:05:57 #15625 [Verbose] > │     let v2 : US0 = US0_0(v1)                                                 │

00:05:57 #15626 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │

00:05:57 #15627 [Verbose] > │     closure2(v0, v3)                                                         │

00:05:57 #15628 [Verbose] > │ and method4 (v0 : int32, v1 : UH0) : US1 =                                   │

00:05:57 #15629 [Verbose] > │     match v1 with                                                            │

00:05:57 #15630 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:05:57 #15631 [Verbose] > │         let v4 : bool = v0 <= 0                                              │

00:05:57 #15632 [Verbose] > │         if v4 then                                                           │

00:05:57 #15633 [Verbose] > │             US1_0(v2)                                                        │

00:05:57 #15634 [Verbose] > │         else                                                                 │

00:05:57 #15635 [Verbose] > │             let v6 : int32 = v0 - 1                                          │

00:05:57 #15636 [Verbose] > │             let v7 : UH0 = v3 ()                                             │

00:05:57 #15637 [Verbose] > │             method4(v6, v7)                                                  │

00:05:57 #15638 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:05:57 #15639 [Verbose] > │         US1_1                                                                │

00:05:57 #15640 [Verbose] > │ and method5 (v0 : UH1, v1 : UH1) : UH1 =                                     │

00:05:57 #15641 [Verbose] > │     match v0 with                                                            │

00:05:57 #15642 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:57 #15643 [Verbose] > │         let v4 : UH1 = UH1_1(v2, v1)                                         │

00:05:57 #15644 [Verbose] > │         method5(v3, v4)                                                      │

00:05:57 #15645 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:57 #15646 [Verbose] > │         v1                                                                   │

00:05:57 #15647 [Verbose] > │ and method3 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 =                         │

00:05:57 #15648 [Verbose] > │     let v3 : US1 = method4(v2, v0)                                           │

00:05:57 #15649 [Verbose] > │     match v3 with                                                            │

00:05:57 #15650 [Verbose] > │     | US1_0(v4) -> (* Some *)                                                │

00:05:57 #15651 [Verbose] > │         let v5 : bool = v4 < 5                                               │

00:05:57 #15652 [Verbose] > │         if v5 then                                                           │

00:05:57 #15653 [Verbose] > │             let v6 : UH1 = UH1_1(v4, v1)                                     │

00:05:57 #15654 [Verbose] > │             let v7 : int32 = v2 + 1                                          │

00:05:57 #15655 [Verbose] > │             method3(v0, v6, v7)                                              │

00:05:57 #15656 [Verbose] > │         else                                                                 │

00:05:57 #15657 [Verbose] > │             let v9 : UH1 = UH1_0                                             │

00:05:57 #15658 [Verbose] > │             method5(v1, v9)                                                  │

00:05:57 #15659 [Verbose] > │     | _ ->                                                                   │

00:05:57 #15660 [Verbose] > │         let v12 : UH1 = UH1_0                                                │

00:05:57 #15661 [Verbose] > │         method5(v1, v12)                                                     │

00:05:57 #15662 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 =                                 │

00:05:57 #15663 [Verbose] > │     match v0 with                                                            │

00:05:57 #15664 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:57 #15665 [Verbose] > │         let v4 : int32 = v1 + v2                                             │

00:05:57 #15666 [Verbose] > │         method6(v3, v4)                                                      │

00:05:57 #15667 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:57 #15668 [Verbose] > │         v1                                                                   │

00:05:57 #15669 [Verbose] > │ and method7 (v0 : bool) : bool =                                             │

00:05:57 #15670 [Verbose] > │     v0                                                                       │

00:05:57 #15671 [Verbose] > │ and method0 () : unit =                                                      │

00:05:57 #15672 [Verbose] > │     let v0 : int32 = 0                                                       │

00:05:57 #15673 [Verbose] > │     let v1 : UH0 = method1(v0)                                               │

00:05:57 #15674 [Verbose] > │     let v2 : (unit -> UH0) = closure1(v1)                                    │

00:05:57 #15675 [Verbose] > │     let v3 : (unit -> UH0) = method2(v1, v2)                                 │

00:05:57 #15676 [Verbose] > │     let v4 : UH0 = v3 ()                                                     │

00:05:57 #15677 [Verbose] > │     let v5 : UH1 = UH1_0                                                     │

00:05:57 #15678 [Verbose] > │     let v6 : int32 = 0                                                       │

00:05:57 #15679 [Verbose] > │     let v7 : UH1 = method3(v4, v5, v6)                                       │

00:05:57 #15680 [Verbose] > │     let v8 : int32 = 0                                                       │

00:05:57 #15681 [Verbose] > │     let v9 : int32 = method6(v7, v8)                                         │

00:05:57 #15682 [Verbose] > │     let v10 : string = $"%A{v9}"                                             │

00:05:57 #15683 [Verbose] > │     System.Console.WriteLine v10                                             │

00:05:57 #15684 [Verbose] > │     let v11 : bool = v9 = 10                                                 │

00:05:57 #15685 [Verbose] > │     let v13 : bool =                                                         │

00:05:57 #15686 [Verbose] > │         if v11 then                                                          │

00:05:57 #15687 [Verbose] > │             true                                                             │

00:05:57 #15688 [Verbose] > │         else                                                                 │

00:05:57 #15689 [Verbose] > │             method7(v11)                                                     │

00:05:57 #15690 [Verbose] > │     let v14 : string = $"__expect / actual: %A{v9} / expected: %A{10}"       │

00:05:57 #15691 [Verbose] > │     let v15 : bool = v13 = false                                             │

00:05:57 #15692 [Verbose] > │     if v15 then                                                              │

00:05:57 #15693 [Verbose] > │         failwith<unit> v14                                                   │

00:05:57 #15694 [Verbose] > │ method0()                                                                    │

00:05:57 #15695 [Verbose] > │                                                                              │

00:05:57 #15696 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:57 #15697 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:57 #15698 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:57 #15699 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:57 #15700 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:57 #15701 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:57 #15702 [Verbose] > │ 10                                                                           │

00:05:57 #15703 [Verbose] > │                                                                              │

00:05:57 #15704 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:57 #15705 [Verbose] >

00:05:57 #15706 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:57 #15707 [Verbose] > // // test

00:05:57 #15708 [Verbose] >

00:05:57 #15709 [Verbose] > stream.new_finite_stream print_and_return 10i32

00:05:57 #15710 [Verbose] > |> stream.memoize

00:05:57 #15711 [Verbose] > |> fun list =>

00:05:57 #15712 [Verbose] >     inl list = list ()

00:05:57 #15713 [Verbose] >     fun n =>

00:05:57 #15714 [Verbose] >         list |> stream.try_item n

00:05:57 #15715 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)

00:05:57 #15716 [Verbose] > |> listm'.sum

00:05:57 #15717 [Verbose] > |> _assert_eq 10

00:05:57 #15718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-2959-5954-51f4f2a563a0\main.spi

00:05:57 #15719 [Verbose] >

00:05:57 #15720 [Verbose] > ╭─[ 614.78ms - stdout ]────────────────────────────────────────────────────────╮

00:05:57 #15721 [Verbose] > │ type UH0 =                                                                   │

00:05:57 #15722 [Verbose] > │     | UH0_0 of int32 * (unit -> UH0)                                         │

00:05:57 #15723 [Verbose] > │     | UH0_1                                                                  │

00:05:57 #15724 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:05:57 #15725 [Verbose] > │     | US0_0 of f0_0 : (unit -> UH0)                                          │

00:05:57 #15726 [Verbose] > │     | US0_1 of f1_0 : UH0                                                    │

00:05:57 #15727 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │

00:05:57 #15728 [Verbose] > │ and UH1 =                                                                    │

00:05:57 #15729 [Verbose] > │     | UH1_0                                                                  │

00:05:57 #15730 [Verbose] > │     | UH1_1 of int32 * UH1                                                   │

00:05:57 #15731 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:05:57 #15732 [Verbose] > │     | US1_0 of f0_0 : int32                                                  │

00:05:57 #15733 [Verbose] > │     | US1_1                                                                  │

00:05:57 #15734 [Verbose] > │ let rec closure10 () () : UH0 =                                              │

00:05:57 #15735 [Verbose] > │     UH0_1                                                                    │

00:05:57 #15736 [Verbose] > │ and closure9 () () : UH0 =                                                   │

00:05:57 #15737 [Verbose] > │     printfn $"print_and_return / x: {9}"                                     │

00:05:57 #15738 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │

00:05:57 #15739 [Verbose] > │     UH0_0(9, v0)                                                             │

00:05:57 #15740 [Verbose] > │ and closure8 () () : UH0 =                                                   │

00:05:57 #15741 [Verbose] > │     printfn $"print_and_return / x: {8}"                                     │

00:05:57 #15742 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │

00:05:57 #15743 [Verbose] > │     UH0_0(8, v0)                                                             │

00:05:57 #15744 [Verbose] > │ and closure7 () () : UH0 =                                                   │

00:05:57 #15745 [Verbose] > │     printfn $"print_and_return / x: {7}"                                     │

00:05:57 #15746 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │

00:05:57 #15747 [Verbose] > │     UH0_0(7, v0)                                                             │

00:05:57 #15748 [Verbose] > │ and closure6 () () : UH0 =                                                   │

00:05:57 #15749 [Verbose] > │     printfn $"print_and_return / x: {6}"                                     │

00:05:57 #15750 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │

00:05:57 #15751 [Verbose] > │     UH0_0(6, v0)                                                             │

00:05:57 #15752 [Verbose] > │ and closure5 () () : UH0 =                                                   │

00:05:57 #15753 [Verbose] > │     printfn $"print_and_return / x: {5}"                                     │

00:05:57 #15754 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │

00:05:57 #15755 [Verbose] > │     UH0_0(5, v0)                                                             │

00:05:57 #15756 [Verbose] > │ and closure4 () () : UH0 =                                                   │

00:05:57 #15757 [Verbose] > │     printfn $"print_and_return / x: {4}"                                     │

00:05:57 #15758 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │

00:05:57 #15759 [Verbose] > │     UH0_0(4, v0)                                                             │

00:05:57 #15760 [Verbose] > │ and closure3 () () : UH0 =                                                   │

00:05:57 #15761 [Verbose] > │     printfn $"print_and_return / x: {3}"                                     │

00:05:57 #15762 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │

00:05:57 #15763 [Verbose] > │     UH0_0(3, v0)                                                             │

00:05:57 #15764 [Verbose] > │ and closure2 () () : UH0 =                                                   │

00:05:57 #15765 [Verbose] > │     printfn $"print_and_return / x: {2}"                                     │

00:05:57 #15766 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │

00:05:57 #15767 [Verbose] > │     UH0_0(2, v0)                                                             │

00:05:57 #15768 [Verbose] > │ and closure1 () () : UH0 =                                                   │

00:05:57 #15769 [Verbose] > │     printfn $"print_and_return / x: {1}"                                     │

00:05:57 #15770 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │

00:05:57 #15771 [Verbose] > │     UH0_0(1, v0)                                                             │

00:05:57 #15772 [Verbose] > │ and closure0 () () : UH0 =                                                   │

00:05:57 #15773 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │

00:05:57 #15774 [Verbose] > │     UH0_0(0, v0)                                                             │

00:05:57 #15775 [Verbose] > │ and closure11 (v0 : Mut0) () : UH0 =                                         │

00:05:57 #15776 [Verbose] > │     let v1 : US0 = v0.l0                                                     │

00:05:57 #15777 [Verbose] > │     match v1 with                                                            │

00:05:57 #15778 [Verbose] > │     | US0_1(v2) -> (* Computed *)                                            │

00:05:57 #15779 [Verbose] > │         v2                                                                   │

00:05:57 #15780 [Verbose] > │     | US0_0(v3) -> (* NotComputed *)                                         │

00:05:57 #15781 [Verbose] > │         let v4 : UH0 = v3 ()                                                 │

00:05:57 #15782 [Verbose] > │         let v13 : UH0 =                                                      │

00:05:57 #15783 [Verbose] > │             match v4 with                                                    │

00:05:57 #15784 [Verbose] > │             | UH0_0(v6, v7) -> (* StreamCons *)                              │

00:05:57 #15785 [Verbose] > │                 let v8 : US0 = US0_0(v7)                                     │

00:05:57 #15786 [Verbose] > │                 let v9 : Mut0 = {l0 = v8} : Mut0                             │

00:05:57 #15787 [Verbose] > │                 let v10 : (unit -> UH0) = closure11(v9)                      │

00:05:57 #15788 [Verbose] > │                 UH0_0(v6, v10)                                               │

00:05:57 #15789 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:05:57 #15790 [Verbose] > │                 UH0_1                                                        │

00:05:57 #15791 [Verbose] > │         let v14 : US0 = US0_1(v13)                                           │

00:05:57 #15792 [Verbose] > │         v0.l0 <- v14                                                         │

00:05:57 #15793 [Verbose] > │         v13                                                                  │

00:05:57 #15794 [Verbose] > │ and method2 (v0 : int32, v1 : UH0) : US1 =                                   │

00:05:57 #15795 [Verbose] > │     match v1 with                                                            │

00:05:57 #15796 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:05:57 #15797 [Verbose] > │         let v4 : bool = v0 <= 0                                              │

00:05:57 #15798 [Verbose] > │         if v4 then                                                           │

00:05:57 #15799 [Verbose] > │             US1_0(v2)                                                        │

00:05:57 #15800 [Verbose] > │         else                                                                 │

00:05:57 #15801 [Verbose] > │             let v6 : int32 = v0 - 1                                          │

00:05:57 #15802 [Verbose] > │             let v7 : UH0 = v3 ()                                             │

00:05:57 #15803 [Verbose] > │             method2(v6, v7)                                                  │

00:05:57 #15804 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:05:57 #15805 [Verbose] > │         US1_1                                                                │

00:05:57 #15806 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 =                                     │

00:05:57 #15807 [Verbose] > │     match v0 with                                                            │

00:05:57 #15808 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:57 #15809 [Verbose] > │         let v4 : UH1 = UH1_1(v2, v1)                                         │

00:05:57 #15810 [Verbose] > │         method3(v3, v4)                                                      │

00:05:57 #15811 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:57 #15812 [Verbose] > │         v1                                                                   │

00:05:57 #15813 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1, v2 : int32) : UH1 =                         │

00:05:57 #15814 [Verbose] > │     let v3 : US1 = method2(v2, v0)                                           │

00:05:57 #15815 [Verbose] > │     match v3 with                                                            │

00:05:57 #15816 [Verbose] > │     | US1_0(v4) -> (* Some *)                                                │

00:05:57 #15817 [Verbose] > │         let v5 : bool = v4 < 5                                               │

00:05:57 #15818 [Verbose] > │         if v5 then                                                           │

00:05:57 #15819 [Verbose] > │             let v6 : UH1 = UH1_1(v4, v1)                                     │

00:05:57 #15820 [Verbose] > │             let v7 : int32 = v2 + 1                                          │

00:05:57 #15821 [Verbose] > │             method1(v0, v6, v7)                                              │

00:05:57 #15822 [Verbose] > │         else                                                                 │

00:05:57 #15823 [Verbose] > │             let v9 : UH1 = UH1_0                                             │

00:05:57 #15824 [Verbose] > │             method3(v1, v9)                                                  │

00:05:57 #15825 [Verbose] > │     | _ ->                                                                   │

00:05:57 #15826 [Verbose] > │         let v12 : UH1 = UH1_0                                                │

00:05:57 #15827 [Verbose] > │         method3(v1, v12)                                                     │

00:05:57 #15828 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 =                                 │

00:05:57 #15829 [Verbose] > │     match v0 with                                                            │

00:05:57 #15830 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:57 #15831 [Verbose] > │         let v4 : int32 = v1 + v2                                             │

00:05:57 #15832 [Verbose] > │         method4(v3, v4)                                                      │

00:05:57 #15833 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:57 #15834 [Verbose] > │         v1                                                                   │

00:05:57 #15835 [Verbose] > │ and method5 (v0 : bool) : bool =                                             │

00:05:57 #15836 [Verbose] > │     v0                                                                       │

00:05:57 #15837 [Verbose] > │ and method0 () : unit =                                                      │

00:05:57 #15838 [Verbose] > │     printfn $"print_and_return / x: {0}"                                     │

00:05:58 #15839 [Verbose] > │     let v0 : (unit -> UH0) = closure0()                                      │

00:05:58 #15840 [Verbose] > │     let v1 : US0 = US0_0(v0)                                                 │

00:05:58 #15841 [Verbose] > │     let v2 : Mut0 = {l0 = v1} : Mut0                                         │

00:05:58 #15842 [Verbose] > │     let v3 : US0 = v2.l0                                                     │

00:05:58 #15843 [Verbose] > │     let v18 : UH0 =                                                          │

00:05:58 #15844 [Verbose] > │         match v3 with                                                        │

00:05:58 #15845 [Verbose] > │         | US0_1(v4) -> (* Computed *)                                        │

00:05:58 #15846 [Verbose] > │             v4                                                               │

00:05:58 #15847 [Verbose] > │         | US0_0(v5) -> (* NotComputed *)                                     │

00:05:58 #15848 [Verbose] > │             let v6 : UH0 = v5 ()                                             │

00:05:58 #15849 [Verbose] > │             let v15 : UH0 =                                                  │

00:05:58 #15850 [Verbose] > │                 match v6 with                                                │

00:05:58 #15851 [Verbose] > │                 | UH0_0(v8, v9) -> (* StreamCons *)                          │

00:05:58 #15852 [Verbose] > │                     let v10 : US0 = US0_0(v9)                                │

00:05:58 #15853 [Verbose] > │                     let v11 : Mut0 = {l0 = v10} : Mut0                       │

00:05:58 #15854 [Verbose] > │                     let v12 : (unit -> UH0) = closure11(v11)                 │

00:05:58 #15855 [Verbose] > │                     UH0_0(v8, v12)                                           │

00:05:58 #15856 [Verbose] > │                 | UH0_1 -> (* StreamNil *)                                   │

00:05:58 #15857 [Verbose] > │                     UH0_1                                                    │

00:05:58 #15858 [Verbose] > │             let v16 : US0 = US0_1(v15)                                       │

00:05:58 #15859 [Verbose] > │             v2.l0 <- v16                                                     │

00:05:58 #15860 [Verbose] > │             v15                                                              │

00:05:58 #15861 [Verbose] > │     let v19 : UH1 = UH1_0                                                    │

00:05:58 #15862 [Verbose] > │     let v20 : int32 = 0                                                      │

00:05:58 #15863 [Verbose] > │     let v21 : UH1 = method1(v18, v19, v20)                                   │

00:05:58 #15864 [Verbose] > │     let v22 : int32 = 0                                                      │

00:05:58 #15865 [Verbose] > │     let v23 : int32 = method4(v21, v22)                                      │

00:05:58 #15866 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │

00:05:58 #15867 [Verbose] > │     System.Console.WriteLine v24                                             │

00:05:58 #15868 [Verbose] > │     let v25 : bool = v23 = 10                                                │

00:05:58 #15869 [Verbose] > │     let v27 : bool =                                                         │

00:05:58 #15870 [Verbose] > │         if v25 then                                                          │

00:05:58 #15871 [Verbose] > │             true                                                             │

00:05:58 #15872 [Verbose] > │         else                                                                 │

00:05:58 #15873 [Verbose] > │             method5(v25)                                                     │

00:05:58 #15874 [Verbose] > │     let v28 : string = $"__expect / actual: %A{v23} / expected: %A{10}"      │

00:05:58 #15875 [Verbose] > │     let v29 : bool = v27 = false                                             │

00:05:58 #15876 [Verbose] > │     if v29 then                                                              │

00:05:58 #15877 [Verbose] > │         failwith<unit> v28                                                   │

00:05:58 #15878 [Verbose] > │ method0()                                                                    │

00:05:58 #15879 [Verbose] > │                                                                              │

00:05:58 #15880 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:58 #15881 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:58 #15882 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:58 #15883 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:58 #15884 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:58 #15885 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:58 #15886 [Verbose] > │ 10                                                                           │

00:05:58 #15887 [Verbose] > │                                                                              │

00:05:58 #15888 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:58 #15889 [Verbose] >

00:05:58 #15890 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:58 #15891 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:58 #15892 [Verbose] > │ ## memoize                                                                   │

00:05:58 #15893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:58 #15894 [Verbose] >

00:05:58 #15895 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:58 #15896 [Verbose] > inl memoize seq =

00:05:58 #15897 [Verbose] >     inl state = mut [[]]

00:05:58 #15898 [Verbose] >     fun n =>

00:05:58 #15899 [Verbose] >         match *state |> listm'.try_find (fun (n', _) => n' = n) with

00:05:58 #15900 [Verbose] >         | Some (_, v) => v

00:05:58 #15901 [Verbose] >         | None =>

00:05:58 #15902 [Verbose] >             inl new_state = seq n

00:05:58 #15903 [Verbose] >             state <- (n, new_state) :: *state

00:05:58 #15904 [Verbose] >             new_state

00:05:58 #15905 [Verbose] >

00:05:58 #15906 [Verbose] > inl memoize_ seq =

00:05:58 #15907 [Verbose] >     inl state = mut [[]]

00:05:58 #15908 [Verbose] >     fun n =>

00:05:58 #15909 [Verbose] >         match *state |> listm'.try_find_ (fun (n', _) => n' = n) with

00:05:58 #15910 [Verbose] >         | Some (_, v) => v

00:05:58 #15911 [Verbose] >         | None =>

00:05:58 #15912 [Verbose] >             inl new_state = seq n

00:05:58 #15913 [Verbose] >             state <- (n, new_state) :: *state

00:05:58 #15914 [Verbose] >             new_state

00:05:58 #15915 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3033-3333-3aa958c9515b\main.spi

00:05:58 #15916 [Verbose] >

00:05:58 #15917 [Verbose] > ╭─[ 218.93ms - stdout ]────────────────────────────────────────────────────────╮

00:05:58 #15918 [Verbose] > │ ()                                                                           │

00:05:58 #15919 [Verbose] > │                                                                              │

00:05:58 #15920 [Verbose] > │                                                                              │

00:05:58 #15921 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:58 #15922 [Verbose] >

00:05:58 #15923 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:58 #15924 [Verbose] > // // test

00:05:58 #15925 [Verbose] >

00:05:58 #15926 [Verbose] > inl seq =

00:05:58 #15927 [Verbose] >     fun n =>

00:05:58 #15928 [Verbose] >         n |> print_and_return |> Some

00:05:58 #15929 [Verbose] >     |> memoize_

00:05:58 #15930 [Verbose] >

00:05:58 #15931 [Verbose] > seq

00:05:58 #15932 [Verbose] > |> take_while_ (fun n (_ : i32) => n < 5)

00:05:58 #15933 [Verbose] > |> listm'.sum

00:05:58 #15934 [Verbose] > |> _assert_eq 10

00:05:58 #15935 [Verbose] >

00:05:58 #15936 [Verbose] > seq

00:05:58 #15937 [Verbose] > |> take_while_ (fun n _ => n < 5)

00:05:58 #15938 [Verbose] > |> listm'.sum

00:05:58 #15939 [Verbose] > |> _assert_eq 10

00:05:58 #15940 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3055-5527-5d8a3b4c6439\main.spi

00:05:58 #15941 [Verbose] >

00:05:58 #15942 [Verbose] > ╭─[ 493.03ms - stdout ]────────────────────────────────────────────────────────╮

00:05:58 #15943 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:05:58 #15944 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:05:58 #15945 [Verbose] > │     | US0_1                                                                  │

00:05:58 #15946 [Verbose] > │ and UH0 =                                                                    │

00:05:58 #15947 [Verbose] > │     | UH0_0                                                                  │

00:05:58 #15948 [Verbose] > │     | UH0_1 of int32 * US0 * UH0                                             │

00:05:58 #15949 [Verbose] > │ and Mut0 = {mutable l0 : UH0}                                                │

00:05:58 #15950 [Verbose] > │ and UH1 =                                                                    │

00:05:58 #15951 [Verbose] > │     | UH1_0                                                                  │

00:05:58 #15952 [Verbose] > │     | UH1_1 of int32 * UH1                                                   │

00:05:58 #15953 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:05:58 #15954 [Verbose] > │     | US1_0 of f0_0 : int32 * f0_1 : US0                                     │

00:05:58 #15955 [Verbose] > │     | US1_1                                                                  │

00:05:58 #15956 [Verbose] > │ let rec method2 (v0 : int32, v1 : UH0) : US1 =                               │

00:05:58 #15957 [Verbose] > │     match v1 with                                                            │

00:05:58 #15958 [Verbose] > │     | UH0_1(v3, v4, v5) -> (* Cons *)                                        │

00:05:58 #15959 [Verbose] > │         let v6 : bool = v3 = v0                                              │

00:05:58 #15960 [Verbose] > │         if v6 then                                                           │

00:05:58 #15961 [Verbose] > │             US1_0(v3, v4)                                                    │

00:05:58 #15962 [Verbose] > │         else                                                                 │

00:05:58 #15963 [Verbose] > │             method2(v0, v5)                                                  │

00:05:58 #15964 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:05:58 #15965 [Verbose] > │         US1_1                                                                │

00:05:58 #15966 [Verbose] > │ and method3 (v0 : UH1, v1 : UH1) : UH1 =                                     │

00:05:58 #15967 [Verbose] > │     match v0 with                                                            │

00:05:58 #15968 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:58 #15969 [Verbose] > │         let v4 : UH1 = UH1_1(v2, v1)                                         │

00:05:58 #15970 [Verbose] > │         method3(v3, v4)                                                      │

00:05:58 #15971 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:58 #15972 [Verbose] > │         v1                                                                   │

00:05:58 #15973 [Verbose] > │ and method1 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 =                        │

00:05:58 #15974 [Verbose] > │     let v3 : UH0 = v0.l0                                                     │

00:05:58 #15975 [Verbose] > │     let v4 : US1 = method2(v2, v3)                                           │

00:05:58 #15976 [Verbose] > │     let v12 : US0 =                                                          │

00:05:58 #15977 [Verbose] > │         match v4 with                                                        │

00:05:58 #15978 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:05:58 #15979 [Verbose] > │             printfn $"print_and_return / x: {v2}"                            │

00:05:58 #15980 [Verbose] > │             let v7 : UH0 = v0.l0                                             │

00:05:58 #15981 [Verbose] > │             let v8 : US0 = US0_0(v2)                                         │

00:05:58 #15982 [Verbose] > │             let v9 : UH0 = UH0_1(v2, v8, v7)                                 │

00:05:58 #15983 [Verbose] > │             v0.l0 <- v9                                                      │

00:05:58 #15984 [Verbose] > │             US0_0(v2)                                                        │

00:05:58 #15985 [Verbose] > │         | US1_0(v5, v6) -> (* Some *)                                        │

00:05:58 #15986 [Verbose] > │             v6                                                               │

00:05:58 #15987 [Verbose] > │     match v12 with                                                           │

00:05:58 #15988 [Verbose] > │     | US0_0(v13) -> (* Some *)                                               │

00:05:58 #15989 [Verbose] > │         let v14 : bool = v13 < 5                                             │

00:05:58 #15990 [Verbose] > │         if v14 then                                                          │

00:05:58 #15991 [Verbose] > │             let v15 : UH1 = UH1_1(v13, v1)                                   │

00:05:58 #15992 [Verbose] > │             let v16 : int32 = v2 + 1                                         │

00:05:58 #15993 [Verbose] > │             method1(v0, v15, v16)                                            │

00:05:58 #15994 [Verbose] > │         else                                                                 │

00:05:58 #15995 [Verbose] > │             let v18 : UH1 = UH1_0                                            │

00:05:58 #15996 [Verbose] > │             method3(v1, v18)                                                 │

00:05:58 #15997 [Verbose] > │     | _ ->                                                                   │

00:05:58 #15998 [Verbose] > │         let v21 : UH1 = UH1_0                                                │

00:05:58 #15999 [Verbose] > │         method3(v1, v21)                                                     │

00:05:58 #16000 [Verbose] > │ and method4 (v0 : UH1, v1 : int32) : int32 =                                 │

00:05:58 #16001 [Verbose] > │     match v0 with                                                            │

00:05:58 #16002 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:05:58 #16003 [Verbose] > │         let v4 : int32 = v1 + v2                                             │

00:05:58 #16004 [Verbose] > │         method4(v3, v4)                                                      │

00:05:58 #16005 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:05:58 #16006 [Verbose] > │         v1                                                                   │

00:05:58 #16007 [Verbose] > │ and method5 (v0 : bool) : bool =                                             │

00:05:58 #16008 [Verbose] > │     v0                                                                       │

00:05:58 #16009 [Verbose] > │ and method6 (v0 : Mut0, v1 : UH1, v2 : int32) : UH1 =                        │

00:05:58 #16010 [Verbose] > │     let v3 : UH0 = v0.l0                                                     │

00:05:58 #16011 [Verbose] > │     let v4 : US1 = method2(v2, v3)                                           │

00:05:58 #16012 [Verbose] > │     let v12 : US0 =                                                          │

00:05:58 #16013 [Verbose] > │         match v4 with                                                        │

00:05:58 #16014 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:05:58 #16015 [Verbose] > │             printfn $"print_and_return / x: {v2}"                            │

00:05:58 #16016 [Verbose] > │             let v7 : UH0 = v0.l0                                             │

00:05:58 #16017 [Verbose] > │             let v8 : US0 = US0_0(v2)                                         │

00:05:58 #16018 [Verbose] > │             let v9 : UH0 = UH0_1(v2, v8, v7)                                 │

00:05:58 #16019 [Verbose] > │             v0.l0 <- v9                                                      │

00:05:58 #16020 [Verbose] > │             US0_0(v2)                                                        │

00:05:58 #16021 [Verbose] > │         | US1_0(v5, v6) -> (* Some *)                                        │

00:05:58 #16022 [Verbose] > │             v6                                                               │

00:05:58 #16023 [Verbose] > │     match v12 with                                                           │

00:05:58 #16024 [Verbose] > │     | US0_0(v13) -> (* Some *)                                               │

00:05:58 #16025 [Verbose] > │         let v14 : bool = v13 < 5                                             │

00:05:58 #16026 [Verbose] > │         if v14 then                                                          │

00:05:58 #16027 [Verbose] > │             let v15 : UH1 = UH1_1(v13, v1)                                   │

00:05:58 #16028 [Verbose] > │             let v16 : int32 = v2 + 1                                         │

00:05:58 #16029 [Verbose] > │             method6(v0, v15, v16)                                            │

00:05:58 #16030 [Verbose] > │         else                                                                 │

00:05:58 #16031 [Verbose] > │             let v18 : UH1 = UH1_0                                            │

00:05:58 #16032 [Verbose] > │             method3(v1, v18)                                                 │

00:05:58 #16033 [Verbose] > │     | _ ->                                                                   │

00:05:58 #16034 [Verbose] > │         let v21 : UH1 = UH1_0                                                │

00:05:58 #16035 [Verbose] > │         method3(v1, v21)                                                     │

00:05:58 #16036 [Verbose] > │ and method0 () : unit =                                                      │

00:05:58 #16037 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:05:58 #16038 [Verbose] > │     let v1 : Mut0 = {l0 = v0} : Mut0                                         │

00:05:58 #16039 [Verbose] > │     let v2 : UH1 = UH1_0                                                     │

00:05:58 #16040 [Verbose] > │     let v3 : int32 = 0                                                       │

00:05:58 #16041 [Verbose] > │     let v4 : UH1 = method1(v1, v2, v3)                                       │

00:05:58 #16042 [Verbose] > │     let v5 : int32 = 0                                                       │

00:05:58 #16043 [Verbose] > │     let v6 : int32 = method4(v4, v5)                                         │

00:05:58 #16044 [Verbose] > │     let v7 : string = $"%A{v6}"                                              │

00:05:58 #16045 [Verbose] > │     System.Console.WriteLine v7                                              │

00:05:58 #16046 [Verbose] > │     let v8 : bool = v6 = 10                                                  │

00:05:58 #16047 [Verbose] > │     let v10 : bool =                                                         │

00:05:58 #16048 [Verbose] > │         if v8 then                                                           │

00:05:58 #16049 [Verbose] > │             true                                                             │

00:05:58 #16050 [Verbose] > │         else                                                                 │

00:05:58 #16051 [Verbose] > │             method5(v8)                                                      │

00:05:58 #16052 [Verbose] > │     let v11 : string = $"__expect / actual: %A{v6} / expected: %A{10}"       │

00:05:58 #16053 [Verbose] > │     let v12 : bool = v10 = false                                             │

00:05:58 #16054 [Verbose] > │     if v12 then                                                              │

00:05:58 #16055 [Verbose] > │         failwith<unit> v11                                                   │

00:05:58 #16056 [Verbose] > │     let v13 : UH1 = UH1_0                                                    │

00:05:58 #16057 [Verbose] > │     let v14 : int32 = 0                                                      │

00:05:58 #16058 [Verbose] > │     let v15 : UH1 = method6(v1, v13, v14)                                    │

00:05:58 #16059 [Verbose] > │     let v16 : int32 = 0                                                      │

00:05:58 #16060 [Verbose] > │     let v17 : int32 = method4(v15, v16)                                      │

00:05:58 #16061 [Verbose] > │     let v18 : string = $"%A{v17}"                                            │

00:05:58 #16062 [Verbose] > │     System.Console.WriteLine v18                                             │

00:05:58 #16063 [Verbose] > │     let v19 : bool = v17 = 10                                                │

00:05:58 #16064 [Verbose] > │     let v21 : bool =                                                         │

00:05:58 #16065 [Verbose] > │         if v19 then                                                          │

00:05:58 #16066 [Verbose] > │             true                                                             │

00:05:58 #16067 [Verbose] > │         else                                                                 │

00:05:58 #16068 [Verbose] > │             method5(v19)                                                     │

00:05:58 #16069 [Verbose] > │     let v22 : string = $"__expect / actual: %A{v17} / expected: %A{10}"      │

00:05:58 #16070 [Verbose] > │     let v23 : bool = v21 = false                                             │

00:05:58 #16071 [Verbose] > │     if v23 then                                                              │

00:05:58 #16072 [Verbose] > │         failwith<unit> v22                                                   │

00:05:58 #16073 [Verbose] > │ method0()                                                                    │

00:05:58 #16074 [Verbose] > │                                                                              │

00:05:58 #16075 [Verbose] > │ print_and_return / x: 0                                                      │

00:05:58 #16076 [Verbose] > │ print_and_return / x: 1                                                      │

00:05:58 #16077 [Verbose] > │ print_and_return / x: 2                                                      │

00:05:58 #16078 [Verbose] > │ print_and_return / x: 3                                                      │

00:05:58 #16079 [Verbose] > │ print_and_return / x: 4                                                      │

00:05:58 #16080 [Verbose] > │ print_and_return / x: 5                                                      │

00:05:58 #16081 [Verbose] > │ 10                                                                           │

00:05:58 #16082 [Verbose] > │ 10                                                                           │

00:05:58 #16083 [Verbose] > │                                                                              │

00:05:58 #16084 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:58 #16085 [Verbose] >

00:05:58 #16086 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:05:58 #16087 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:05:58 #16088 [Verbose] > │ ## iterate                                                                   │

00:05:58 #16089 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:58 #16090 [Verbose] >

00:05:58 #16091 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:58 #16092 [Verbose] > inl iterate f x0 num_steps =

00:05:58 #16093 [Verbose] >     inl rec loop x n =

00:05:58 #16094 [Verbose] >         if n <= 0

00:05:58 #16095 [Verbose] >         then x

00:05:58 #16096 [Verbose] >         else loop (f x) (n - 1)

00:05:58 #16097 [Verbose] >     loop x0 num_steps

00:05:58 #16098 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3113-1317-1857e98eb910\main.spi

00:05:59 #16099 [Verbose] >

00:05:59 #16100 [Verbose] > ╭─[ 236.84ms - stdout ]────────────────────────────────────────────────────────╮

00:05:59 #16101 [Verbose] > │ ()                                                                           │

00:05:59 #16102 [Verbose] > │                                                                              │

00:05:59 #16103 [Verbose] > │                                                                              │

00:05:59 #16104 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:59 #16105 [Verbose] >

00:05:59 #16106 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:59 #16107 [Verbose] > // // test

00:05:59 #16108 [Verbose] >

00:05:59 #16109 [Verbose] > 10i32 |> iterate ((*) 2) 1i32

00:05:59 #16110 [Verbose] > |> _assert_eq 1024

00:05:59 #16111 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3137-3701-390dff35653a\main.spi

00:05:59 #16112 [Verbose] >

00:05:59 #16113 [Verbose] > ╭─[ 246.00ms - stdout ]────────────────────────────────────────────────────────╮

00:05:59 #16114 [Verbose] > │ let rec method0 () : unit =                                                  │

00:05:59 #16115 [Verbose] > │     let v0 : string = $"%A{1024}"                                            │

00:05:59 #16116 [Verbose] > │     System.Console.WriteLine v0                                              │

00:05:59 #16117 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}"    │

00:05:59 #16118 [Verbose] > │     ()                                                                       │

00:05:59 #16119 [Verbose] > │ method0()                                                                    │

00:05:59 #16120 [Verbose] > │                                                                              │

00:05:59 #16121 [Verbose] > │ 1024                                                                         │

00:05:59 #16122 [Verbose] > │                                                                              │

00:05:59 #16123 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:59 #16124 [Verbose] >

00:05:59 #16125 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:59 #16126 [Verbose] > inl iterate_ f x0 num_steps =

00:05:59 #16127 [Verbose] >     let rec loop x n =

00:05:59 #16128 [Verbose] >         if n <= 0

00:05:59 #16129 [Verbose] >         then x

00:05:59 #16130 [Verbose] >         else loop (f x) (n - 1)

00:05:59 #16131 [Verbose] >     loop x0 num_steps

00:05:59 #16132 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3162-6225-6e0a02d68128\main.spi

00:05:59 #16133 [Verbose] >

00:05:59 #16134 [Verbose] > ╭─[ 289.94ms - stdout ]────────────────────────────────────────────────────────╮

00:05:59 #16135 [Verbose] > │ ()                                                                           │

00:05:59 #16136 [Verbose] > │                                                                              │

00:05:59 #16137 [Verbose] > │                                                                              │

00:05:59 #16138 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:59 #16139 [Verbose] >

00:05:59 #16140 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:59 #16141 [Verbose] > // // test

00:05:59 #16142 [Verbose] >

00:05:59 #16143 [Verbose] > 10i32 |> iterate_ ((*) 2) 1i32

00:05:59 #16144 [Verbose] > |> _assert_eq 1024

00:05:59 #16145 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3191-9140-9ee5467fea81\main.spi

00:05:59 #16146 [Verbose] >

00:05:59 #16147 [Verbose] > ╭─[ 258.82ms - stdout ]────────────────────────────────────────────────────────╮

00:05:59 #16148 [Verbose] > │ let rec method1 (v0 : int32, v1 : int32) : int32 =                           │

00:05:59 #16149 [Verbose] > │     let v2 : bool = v1 <= 0                                                  │

00:05:59 #16150 [Verbose] > │     if v2 then                                                               │

00:05:59 #16151 [Verbose] > │         v0                                                                   │

00:05:59 #16152 [Verbose] > │     else                                                                     │

00:05:59 #16153 [Verbose] > │         let v3 : int32 = 2 * v0                                              │

00:05:59 #16154 [Verbose] > │         let v4 : int32 = v1 - 1                                              │

00:05:59 #16155 [Verbose] > │         method1(v3, v4)                                                      │

00:05:59 #16156 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:05:59 #16157 [Verbose] > │     v0                                                                       │

00:05:59 #16158 [Verbose] > │ and method0 () : unit =                                                      │

00:05:59 #16159 [Verbose] > │     let v0 : int32 = 1                                                       │

00:05:59 #16160 [Verbose] > │     let v1 : int32 = 10                                                      │

00:05:59 #16161 [Verbose] > │     let v2 : int32 = method1(v0, v1)                                         │

00:05:59 #16162 [Verbose] > │     let v3 : string = $"%A{v2}"                                              │

00:05:59 #16163 [Verbose] > │     System.Console.WriteLine v3                                              │

00:05:59 #16164 [Verbose] > │     let v4 : bool = v2 = 1024                                                │

00:05:59 #16165 [Verbose] > │     let v6 : bool =                                                          │

00:05:59 #16166 [Verbose] > │         if v4 then                                                           │

00:05:59 #16167 [Verbose] > │             true                                                             │

00:05:59 #16168 [Verbose] > │         else                                                                 │

00:05:59 #16169 [Verbose] > │             method2(v4)                                                      │

00:05:59 #16170 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v2} / expected: %A{1024}"      │

00:05:59 #16171 [Verbose] > │     let v8 : bool = v6 = false                                               │

00:05:59 #16172 [Verbose] > │     if v8 then                                                               │

00:05:59 #16173 [Verbose] > │         failwith<unit> v7                                                    │

00:05:59 #16174 [Verbose] > │ method0()                                                                    │

00:05:59 #16175 [Verbose] > │                                                                              │

00:05:59 #16176 [Verbose] > │ 1024                                                                         │

00:05:59 #16177 [Verbose] > │                                                                              │

00:05:59 #16178 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:05:59 #16179 [Verbose] >

00:05:59 #16180 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:05:59 #16181 [Verbose] > inl iterate' f x0 num_steps =

00:05:59 #16182 [Verbose] >     listm.init num_steps id

00:05:59 #16183 [Verbose] >     |> listm.fold (fun x _ => f x) x0

00:06:00 #16184 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3219-1923-199d45e29121\main.spi

00:06:00 #16185 [Verbose] >

00:06:00 #16186 [Verbose] > ╭─[ 220.41ms - stdout ]────────────────────────────────────────────────────────╮

00:06:00 #16187 [Verbose] > │ ()                                                                           │

00:06:00 #16188 [Verbose] > │                                                                              │

00:06:00 #16189 [Verbose] > │                                                                              │

00:06:00 #16190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:00 #16191 [Verbose] >

00:06:00 #16192 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:00 #16193 [Verbose] > // // test

00:06:00 #16194 [Verbose] >

00:06:00 #16195 [Verbose] > 10i32 |> iterate' ((*) 2) 1i32

00:06:00 #16196 [Verbose] > |> _assert_eq 1024

00:06:00 #16197 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3241-4147-4487b72990e2\main.spi

00:06:00 #16198 [Verbose] >

00:06:00 #16199 [Verbose] > ╭─[ 226.45ms - stdout ]────────────────────────────────────────────────────────╮

00:06:00 #16200 [Verbose] > │ let rec method0 () : unit =                                                  │

00:06:00 #16201 [Verbose] > │     let v0 : string = $"%A{1024}"                                            │

00:06:00 #16202 [Verbose] > │     System.Console.WriteLine v0                                              │

00:06:00 #16203 [Verbose] > │     let v1 : string = $"__expect / actual: %A{1024} / expected: %A{1024}"    │

00:06:00 #16204 [Verbose] > │     ()                                                                       │

00:06:00 #16205 [Verbose] > │ method0()                                                                    │

00:06:00 #16206 [Verbose] > │                                                                              │

00:06:00 #16207 [Verbose] > │ 1024                                                                         │

00:06:00 #16208 [Verbose] > │                                                                              │

00:06:00 #16209 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:00 #16210 [Verbose] >

00:06:00 #16211 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:00 #16212 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:00 #16213 [Verbose] > │ ## find_last                                                                 │

00:06:00 #16214 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:00 #16215 [Verbose] >

00:06:00 #16216 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:00 #16217 [Verbose] > inl find_last forall item result. fold_fn fn target : option result =

00:06:00 #16218 [Verbose] >     fold_fn (fun (item : item) (result : option result) =>

00:06:00 #16219 [Verbose] >         match result with

00:06:00 #16220 [Verbose] >         | None => fn item

00:06:00 #16221 [Verbose] >         | result => result

00:06:00 #16222 [Verbose] >     ) target (None : option result)

00:06:00 #16223 [Verbose] >

00:06:00 #16224 [Verbose] > inl array_find_last forall item result. (fn : item -> option result) (target : a

00:06:00 #16225 [Verbose] > i32 item) : option result =

00:06:00 #16226 [Verbose] >     find_last am.foldBack fn target

00:06:00 #16227 [Verbose] >

00:06:00 #16228 [Verbose] > inl list_find_last forall item result. (fn : item -> option result) (target :

00:06:00 #16229 [Verbose] > list item) : option result =

00:06:00 #16230 [Verbose] >     find_last listm.foldBack fn target

00:06:00 #16231 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-3264-6497-64eb6047304a\main.spi

00:06:00 #16232 [Verbose] >

00:06:00 #16233 [Verbose] > ╭─[ 216.68ms - stdout ]────────────────────────────────────────────────────────╮

00:06:00 #16234 [Verbose] > │ ()                                                                           │

00:06:00 #16235 [Verbose] > │                                                                              │

00:06:00 #16236 [Verbose] > │                                                                              │

00:06:00 #16237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:02 #16238 [Verbose] > [NbConvertApp] Converting notebook seq.dib.ipynb to html

00:06:02 #16239 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:06:02 #16240 [Verbose] >   validate(nb)

00:06:03 #16241 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:06:03 #16242 [Verbose] >   return _pygments_highlight(

00:06:04 #16243 [Verbose] > [NbConvertApp] Writing 410189 bytes to seq.dib.html

00:06:05 #16244 [Debug] executeAsync / exitCode: 0 / output.Length: 137269

00:06:05 #16245 [Debug] main / executeCommand / exitCode: 0

00:06:05 #16246 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 util.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:06:09 #16247 [Verbose] >

00:06:09 #16248 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:09 #16249 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:09 #16250 [Verbose] > │ # util                                                                       │

00:06:09 #16251 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:09 #16252 [Verbose] >

00:06:09 #16253 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:09 #16254 [Verbose] > // // test

00:06:09 #16255 [Verbose] >

00:06:09 #16256 [Verbose] > open testing

00:06:12 #16257 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-4428-2821-21f1a1cab5de\main.spi

00:06:13 #16258 [Verbose] >

00:06:13 #16259 [Verbose] > ╭─[ 4.58s - stdout ]───────────────────────────────────────────────────────────╮

00:06:13 #16260 [Verbose] > │ ()                                                                           │

00:06:13 #16261 [Verbose] > │                                                                              │

00:06:13 #16262 [Verbose] > │                                                                              │

00:06:13 #16263 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:13 #16264 [Verbose] >

00:06:13 #16265 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:13 #16266 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:13 #16267 [Verbose] > │ ## ski                                                                       │

00:06:13 #16268 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:13 #16269 [Verbose] >

00:06:13 #16270 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:13 #16271 [Verbose] > union rec ski =

00:06:13 #16272 [Verbose] >     | I

00:06:13 #16273 [Verbose] >     | K

00:06:13 #16274 [Verbose] >     | S

00:06:13 #16275 [Verbose] >     | App : ski * ski

00:06:13 #16276 [Verbose] >

00:06:13 #16277 [Verbose] > inl rec eval ski =

00:06:13 #16278 [Verbose] >     match ski with

00:06:13 #16279 [Verbose] >     | App (App (K, x), y) => eval x

00:06:13 #16280 [Verbose] >     | App (App (App (S, x), y), z) => eval (App (App (x, z), App (y, z)))

00:06:13 #16281 [Verbose] >     | App (I, x) => eval x

00:06:13 #16282 [Verbose] >     | App (K, x) => App (K, eval x)

00:06:13 #16283 [Verbose] >     | App (f, x) => eval (App (eval f, x))

00:06:13 #16284 [Verbose] >     | _ => ski

00:06:13 #16285 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-4613-1336-122fedf2e000\main.spi

00:06:14 #16286 [Verbose] >

00:06:14 #16287 [Verbose] > ╭─[ 264.15ms - stdout ]────────────────────────────────────────────────────────╮

00:06:14 #16288 [Verbose] > │ ()                                                                           │

00:06:14 #16289 [Verbose] > │                                                                              │

00:06:14 #16290 [Verbose] > │                                                                              │

00:06:14 #16291 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:14 #16292 [Verbose] >

00:06:14 #16293 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:14 #16294 [Verbose] > // // test

00:06:14 #16295 [Verbose] >

00:06:14 #16296 [Verbose] > eval I

00:06:14 #16297 [Verbose] > |> _assert_eq I

00:06:14 #16298 [Verbose] >

00:06:14 #16299 [Verbose] > eval (App (I, I))

00:06:14 #16300 [Verbose] > |> _assert_eq I

00:06:14 #16301 [Verbose] >

00:06:14 #16302 [Verbose] > eval (App (I, App (I, I)))

00:06:14 #16303 [Verbose] > |> _assert_eq I

00:06:14 #16304 [Verbose] >

00:06:14 #16305 [Verbose] > eval (App (App (I, I), I))

00:06:14 #16306 [Verbose] > |> _assert_eq I

00:06:14 #16307 [Verbose] >

00:06:14 #16308 [Verbose] > eval (App (App (App (I, I), I), I))

00:06:14 #16309 [Verbose] > |> _assert_eq I

00:06:14 #16310 [Verbose] >

00:06:14 #16311 [Verbose] > eval K

00:06:14 #16312 [Verbose] > |> _assert_eq K

00:06:14 #16313 [Verbose] >

00:06:14 #16314 [Verbose] > eval (App (K, I))

00:06:14 #16315 [Verbose] > |> _assert_eq (App (K, I))

00:06:14 #16316 [Verbose] >

00:06:14 #16317 [Verbose] > eval (App (K, K))

00:06:14 #16318 [Verbose] > |> _assert_eq (App (K, K))

00:06:14 #16319 [Verbose] >

00:06:14 #16320 [Verbose] > eval (App (App (K, I), K))

00:06:14 #16321 [Verbose] > |> _assert_eq I

00:06:14 #16322 [Verbose] >

00:06:14 #16323 [Verbose] > eval (App (App (K, K), I))

00:06:14 #16324 [Verbose] > |> _assert_eq K

00:06:14 #16325 [Verbose] >

00:06:14 #16326 [Verbose] > eval (App (App (App (App (K, K), I), S), K))

00:06:14 #16327 [Verbose] > |> _assert_eq S

00:06:14 #16328 [Verbose] >

00:06:14 #16329 [Verbose] > eval S

00:06:14 #16330 [Verbose] > |> _assert_eq S

00:06:14 #16331 [Verbose] >

00:06:14 #16332 [Verbose] > eval (App (App (App (S, I), I), I))

00:06:14 #16333 [Verbose] > |> _assert_eq I

00:06:14 #16334 [Verbose] >

00:06:14 #16335 [Verbose] > eval (App (App (App (S, K), K), I))

00:06:14 #16336 [Verbose] > |> _assert_eq I

00:06:14 #16337 [Verbose] >

00:06:14 #16338 [Verbose] > eval (App (App (App (S, K), I), (App (App (K, I), S))))

00:06:14 #16339 [Verbose] > |> _assert_eq I

00:06:14 #16340 [Verbose] >

00:06:14 #16341 [Verbose] > eval (App (App (K, S), App (I, App (App (App (S, K), S), I))))

00:06:14 #16342 [Verbose] > |> _assert_eq S

00:06:14 #16343 [Verbose] >

00:06:14 #16344 [Verbose] > eval (App (App (App (S, K), I), K))

00:06:14 #16345 [Verbose] > |> _assert_eq K

00:06:14 #16346 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-4639-3961-3cfb0ce9b2ca\main.spi

00:06:16 #16347 [Verbose] >

00:06:16 #16348 [Verbose] > ╭─[ 1.89s - stdout ]───────────────────────────────────────────────────────────╮

00:06:16 #16349 [Verbose] > │ type UH0 =                                                                   │

00:06:16 #16350 [Verbose] > │     | UH0_0                                                                  │

00:06:16 #16351 [Verbose] > │     | UH0_1                                                                  │

00:06:16 #16352 [Verbose] > │     | UH0_2                                                                  │

00:06:16 #16353 [Verbose] > │     | UH0_3 of UH0 * UH0                                                     │

00:06:16 #16354 [Verbose] > │ let rec method0 () : unit =                                                  │

00:06:16 #16355 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:06:16 #16356 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:06:16 #16357 [Verbose] > │     System.Console.WriteLine v1                                              │

00:06:16 #16358 [Verbose] > │     let v5 : UH0 = UH0_0                                                     │

00:06:16 #16359 [Verbose] > │     let v6 : UH0 = UH0_0                                                     │

00:06:16 #16360 [Verbose] > │     let v7 : string = $"__expect / actual: %A{v5} / expected: %A{v6}"        │

00:06:16 #16361 [Verbose] > │     let v8 : UH0 = UH0_0                                                     │

00:06:16 #16362 [Verbose] > │     let v9 : string = $"%A{v8}"                                              │

00:06:16 #16363 [Verbose] > │     System.Console.WriteLine v9                                              │

00:06:16 #16364 [Verbose] > │     let v13 : UH0 = UH0_0                                                    │

00:06:16 #16365 [Verbose] > │     let v14 : UH0 = UH0_0                                                    │

00:06:16 #16366 [Verbose] > │     let v15 : string = $"__expect / actual: %A{v13} / expected: %A{v14}"     │

00:06:16 #16367 [Verbose] > │     let v16 : UH0 = UH0_0                                                    │

00:06:16 #16368 [Verbose] > │     let v17 : string = $"%A{v16}"                                            │

00:06:16 #16369 [Verbose] > │     System.Console.WriteLine v17                                             │

00:06:16 #16370 [Verbose] > │     let v21 : UH0 = UH0_0                                                    │

00:06:16 #16371 [Verbose] > │     let v22 : UH0 = UH0_0                                                    │

00:06:16 #16372 [Verbose] > │     let v23 : string = $"__expect / actual: %A{v21} / expected: %A{v22}"     │

00:06:16 #16373 [Verbose] > │     let v24 : UH0 = UH0_0                                                    │

00:06:16 #16374 [Verbose] > │     let v25 : string = $"%A{v24}"                                            │

00:06:16 #16375 [Verbose] > │     System.Console.WriteLine v25                                             │

00:06:16 #16376 [Verbose] > │     let v29 : UH0 = UH0_0                                                    │

00:06:16 #16377 [Verbose] > │     let v30 : UH0 = UH0_0                                                    │

00:06:16 #16378 [Verbose] > │     let v31 : string = $"__expect / actual: %A{v29} / expected: %A{v30}"     │

00:06:16 #16379 [Verbose] > │     let v32 : UH0 = UH0_0                                                    │

00:06:16 #16380 [Verbose] > │     let v33 : string = $"%A{v32}"                                            │

00:06:16 #16381 [Verbose] > │     System.Console.WriteLine v33                                             │

00:06:16 #16382 [Verbose] > │     let v37 : UH0 = UH0_0                                                    │

00:06:16 #16383 [Verbose] > │     let v38 : UH0 = UH0_0                                                    │

00:06:16 #16384 [Verbose] > │     let v39 : string = $"__expect / actual: %A{v37} / expected: %A{v38}"     │

00:06:16 #16385 [Verbose] > │     let v40 : UH0 = UH0_1                                                    │

00:06:16 #16386 [Verbose] > │     let v41 : string = $"%A{v40}"                                            │

00:06:16 #16387 [Verbose] > │     System.Console.WriteLine v41                                             │

00:06:16 #16388 [Verbose] > │     let v45 : UH0 = UH0_1                                                    │

00:06:16 #16389 [Verbose] > │     let v46 : UH0 = UH0_1                                                    │

00:06:16 #16390 [Verbose] > │     let v47 : string = $"__expect / actual: %A{v45} / expected: %A{v46}"     │

00:06:16 #16391 [Verbose] > │     let v48 : UH0 = UH0_1                                                    │

00:06:16 #16392 [Verbose] > │     let v49 : UH0 = UH0_0                                                    │

00:06:16 #16393 [Verbose] > │     let v50 : UH0 = UH0_3(v48, v49)                                          │

00:06:16 #16394 [Verbose] > │     let v51 : string = $"%A{v50}"                                            │

00:06:16 #16395 [Verbose] > │     System.Console.WriteLine v51                                             │

00:06:16 #16396 [Verbose] > │     let v63 : UH0 = UH0_1                                                    │

00:06:16 #16397 [Verbose] > │     let v64 : UH0 = UH0_0                                                    │

00:06:16 #16398 [Verbose] > │     let v65 : UH0 = UH0_3(v63, v64)                                          │

00:06:16 #16399 [Verbose] > │     let v66 : UH0 = UH0_1                                                    │

00:06:16 #16400 [Verbose] > │     let v67 : UH0 = UH0_0                                                    │

00:06:16 #16401 [Verbose] > │     let v68 : UH0 = UH0_3(v66, v67)                                          │

00:06:16 #16402 [Verbose] > │     let v69 : string = $"__expect / actual: %A{v65} / expected: %A{v68}"     │

00:06:16 #16403 [Verbose] > │     let v70 : UH0 = UH0_1                                                    │

00:06:16 #16404 [Verbose] > │     let v71 : UH0 = UH0_1                                                    │

00:06:16 #16405 [Verbose] > │     let v72 : UH0 = UH0_3(v70, v71)                                          │

00:06:16 #16406 [Verbose] > │     let v73 : string = $"%A{v72}"                                            │

00:06:16 #16407 [Verbose] > │     System.Console.WriteLine v73                                             │

00:06:16 #16408 [Verbose] > │     let v85 : UH0 = UH0_1                                                    │

00:06:16 #16409 [Verbose] > │     let v86 : UH0 = UH0_1                                                    │

00:06:16 #16410 [Verbose] > │     let v87 : UH0 = UH0_3(v85, v86)                                          │

00:06:16 #16411 [Verbose] > │     let v88 : UH0 = UH0_1                                                    │

00:06:16 #16412 [Verbose] > │     let v89 : UH0 = UH0_1                                                    │

00:06:16 #16413 [Verbose] > │     let v90 : UH0 = UH0_3(v88, v89)                                          │

00:06:16 #16414 [Verbose] > │     let v91 : string = $"__expect / actual: %A{v87} / expected: %A{v90}"     │

00:06:16 #16415 [Verbose] > │     let v92 : UH0 = UH0_0                                                    │

00:06:16 #16416 [Verbose] > │     let v93 : string = $"%A{v92}"                                            │

00:06:16 #16417 [Verbose] > │     System.Console.WriteLine v93                                             │

00:06:16 #16418 [Verbose] > │     let v97 : UH0 = UH0_0                                                    │

00:06:16 #16419 [Verbose] > │     let v98 : UH0 = UH0_0                                                    │

00:06:16 #16420 [Verbose] > │     let v99 : string = $"__expect / actual: %A{v97} / expected: %A{v98}"     │

00:06:16 #16421 [Verbose] > │     let v100 : UH0 = UH0_1                                                   │

00:06:16 #16422 [Verbose] > │     let v101 : string = $"%A{v100}"                                          │

00:06:16 #16423 [Verbose] > │     System.Console.WriteLine v101                                            │

00:06:16 #16424 [Verbose] > │     let v105 : UH0 = UH0_1                                                   │

00:06:16 #16425 [Verbose] > │     let v106 : UH0 = UH0_1                                                   │

00:06:16 #16426 [Verbose] > │     let v107 : string = $"__expect / actual: %A{v105} / expected: %A{v106}"  │

00:06:16 #16427 [Verbose] > │     let v108 : UH0 = UH0_2                                                   │

00:06:16 #16428 [Verbose] > │     let v109 : string = $"%A{v108}"                                          │

00:06:16 #16429 [Verbose] > │     System.Console.WriteLine v109                                            │

00:06:16 #16430 [Verbose] > │     let v113 : UH0 = UH0_2                                                   │

00:06:16 #16431 [Verbose] > │     let v114 : UH0 = UH0_2                                                   │

00:06:16 #16432 [Verbose] > │     let v115 : string = $"__expect / actual: %A{v113} / expected: %A{v114}"  │

00:06:16 #16433 [Verbose] > │     let v116 : UH0 = UH0_2                                                   │

00:06:16 #16434 [Verbose] > │     let v117 : string = $"%A{v116}"                                          │

00:06:16 #16435 [Verbose] > │     System.Console.WriteLine v117                                            │

00:06:16 #16436 [Verbose] > │     let v121 : UH0 = UH0_2                                                   │

00:06:16 #16437 [Verbose] > │     let v122 : UH0 = UH0_2                                                   │

00:06:16 #16438 [Verbose] > │     let v123 : string = $"__expect / actual: %A{v121} / expected: %A{v122}"  │

00:06:16 #16439 [Verbose] > │     let v124 : UH0 = UH0_0                                                   │

00:06:16 #16440 [Verbose] > │     let v125 : string = $"%A{v124}"                                          │

00:06:16 #16441 [Verbose] > │     System.Console.WriteLine v125                                            │

00:06:16 #16442 [Verbose] > │     let v129 : UH0 = UH0_0                                                   │

00:06:16 #16443 [Verbose] > │     let v130 : UH0 = UH0_0                                                   │

00:06:16 #16444 [Verbose] > │     let v131 : string = $"__expect / actual: %A{v129} / expected: %A{v130}"  │

00:06:16 #16445 [Verbose] > │     let v132 : UH0 = UH0_0                                                   │

00:06:16 #16446 [Verbose] > │     let v133 : string = $"%A{v132}"                                          │

00:06:16 #16447 [Verbose] > │     System.Console.WriteLine v133                                            │

00:06:16 #16448 [Verbose] > │     let v137 : UH0 = UH0_0                                                   │

00:06:16 #16449 [Verbose] > │     let v138 : UH0 = UH0_0                                                   │

00:06:16 #16450 [Verbose] > │     let v139 : string = $"__expect / actual: %A{v137} / expected: %A{v138}"  │

00:06:16 #16451 [Verbose] > │     let v140 : UH0 = UH0_0                                                   │

00:06:16 #16452 [Verbose] > │     let v141 : string = $"%A{v140}"                                          │

00:06:16 #16453 [Verbose] > │     System.Console.WriteLine v141                                            │

00:06:16 #16454 [Verbose] > │     let v145 : UH0 = UH0_0                                                   │

00:06:16 #16455 [Verbose] > │     let v146 : UH0 = UH0_0                                                   │

00:06:16 #16456 [Verbose] > │     let v147 : string = $"__expect / actual: %A{v145} / expected: %A{v146}"  │

00:06:16 #16457 [Verbose] > │     let v148 : UH0 = UH0_2                                                   │

00:06:16 #16458 [Verbose] > │     let v149 : string = $"%A{v148}"                                          │

00:06:16 #16459 [Verbose] > │     System.Console.WriteLine v149                                            │

00:06:16 #16460 [Verbose] > │     let v153 : UH0 = UH0_2                                                   │

00:06:16 #16461 [Verbose] > │     let v154 : UH0 = UH0_2                                                   │

00:06:16 #16462 [Verbose] > │     let v155 : string = $"__expect / actual: %A{v153} / expected: %A{v154}"  │

00:06:16 #16463 [Verbose] > │     let v156 : UH0 = UH0_1                                                   │

00:06:16 #16464 [Verbose] > │     let v157 : string = $"%A{v156}"                                          │

00:06:16 #16465 [Verbose] > │     System.Console.WriteLine v157                                            │

00:06:16 #16466 [Verbose] > │     let v161 : UH0 = UH0_1                                                   │

00:06:16 #16467 [Verbose] > │     let v162 : UH0 = UH0_1                                                   │

00:06:16 #16468 [Verbose] > │     let v163 : string = $"__expect / actual: %A{v161} / expected: %A{v162}"  │

00:06:16 #16469 [Verbose] > │     ()                                                                       │

00:06:16 #16470 [Verbose] > │ method0()                                                                    │

00:06:16 #16471 [Verbose] > │                                                                              │

00:06:16 #16472 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16473 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16474 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16475 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16476 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16477 [Verbose] > │ UH0_1                                                                        │

00:06:16 #16478 [Verbose] > │ UH0_3 (UH0_1, UH0_0)                                                         │

00:06:16 #16479 [Verbose] > │ UH0_3 (UH0_1, UH0_1)                                                         │

00:06:16 #16480 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16481 [Verbose] > │ UH0_1                                                                        │

00:06:16 #16482 [Verbose] > │ UH0_2                                                                        │

00:06:16 #16483 [Verbose] > │ UH0_2                                                                        │

00:06:16 #16484 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16485 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16486 [Verbose] > │ UH0_0                                                                        │

00:06:16 #16487 [Verbose] > │ UH0_2                                                                        │

00:06:16 #16488 [Verbose] > │ UH0_1                                                                        │

00:06:16 #16489 [Verbose] > │                                                                              │

00:06:16 #16490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:18 #16491 [Verbose] > [NbConvertApp] Converting notebook util.dib.ipynb to html

00:06:18 #16492 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:06:18 #16493 [Verbose] >   validate(nb)

00:06:19 #16494 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:06:19 #16495 [Verbose] >   return _pygments_highlight(

00:06:19 #16496 [Verbose] > [NbConvertApp] Writing 288561 bytes to util.dib.html

00:06:20 #16497 [Debug] executeAsync / exitCode: 0 / output.Length: 15199

00:06:20 #16498 [Debug] main / executeCommand / exitCode: 0

00:06:20 #16499 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 file_system.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:06:24 #16500 [Verbose] >

00:06:24 #16501 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:24 #16502 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:24 #16503 [Verbose] > │ # file_system                                                                │

00:06:24 #16504 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:24 #16505 [Verbose] >

00:06:24 #16506 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:24 #16507 [Verbose] > open rust_operators

00:06:24 #16508 [Verbose] > open sm'_operators

00:06:27 #16509 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1255-5917-1718-1c4c678ebc0f\main.spi

00:06:28 #16510 [Verbose] >

00:06:28 #16511 [Verbose] > ╭─[ 4.69s - stdout ]───────────────────────────────────────────────────────────╮

00:06:28 #16512 [Verbose] > │ ()                                                                           │

00:06:28 #16513 [Verbose] > │                                                                              │

00:06:28 #16514 [Verbose] > │                                                                              │

00:06:28 #16515 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:28 #16516 [Verbose] >

00:06:28 #16517 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:28 #16518 [Verbose] > // // test

00:06:28 #16519 [Verbose] >

00:06:28 #16520 [Verbose] > open testing

00:06:28 #16521 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0108-0809-03705b665999\main.spi

00:06:29 #16522 [Verbose] >

00:06:29 #16523 [Verbose] > ╭─[ 358.91ms - stdout ]────────────────────────────────────────────────────────╮

00:06:29 #16524 [Verbose] > │ ()                                                                           │

00:06:29 #16525 [Verbose] > │                                                                              │

00:06:29 #16526 [Verbose] > │                                                                              │

00:06:29 #16527 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16528 [Verbose] >

00:06:29 #16529 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:29 #16530 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:29 #16531 [Verbose] > │ ## types                                                                     │

00:06:29 #16532 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16533 [Verbose] >

00:06:29 #16534 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:29 #16535 [Verbose] > inl types () =

00:06:29 #16536 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::path::Path\")>]] type

00:06:29 #16537 [Verbose] > std_path_Path = class end"

00:06:29 #16538 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::path::PathBuf\")>]] type

00:06:29 #16539 [Verbose] > std_path_PathBuf = class end"

00:06:29 #16540 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0144-4474-418b7af3cb62\main.spi

00:06:29 #16541 [Verbose] >

00:06:29 #16542 [Verbose] > ╭─[ 205.33ms - stdout ]────────────────────────────────────────────────────────╮

00:06:29 #16543 [Verbose] > │ ()                                                                           │

00:06:29 #16544 [Verbose] > │                                                                              │

00:06:29 #16545 [Verbose] > │                                                                              │

00:06:29 #16546 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16547 [Verbose] >

00:06:29 #16548 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:29 #16549 [Verbose] > inl types () =

00:06:29 #16550 [Verbose] >     global "#if FABLE_COMPILER // file_system.types"

00:06:29 #16551 [Verbose] >     sm'.types ()

00:06:29 #16552 [Verbose] >     rust.types ()

00:06:29 #16553 [Verbose] >     types ()

00:06:29 #16554 [Verbose] >     global "#endif // file_system.types"

00:06:29 #16555 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0165-6506-633e4c20e584\main.spi

00:06:29 #16556 [Verbose] >

00:06:29 #16557 [Verbose] > ╭─[ 217.71ms - stdout ]────────────────────────────────────────────────────────╮

00:06:29 #16558 [Verbose] > │ ()                                                                           │

00:06:29 #16559 [Verbose] > │                                                                              │

00:06:29 #16560 [Verbose] > │                                                                              │

00:06:29 #16561 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16562 [Verbose] >

00:06:29 #16563 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:29 #16564 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:29 #16565 [Verbose] > │ ## path                                                                      │

00:06:29 #16566 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16567 [Verbose] >

00:06:29 #16568 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:29 #16569 [Verbose] > nominal path = $'std_path_Path'

00:06:29 #16570 [Verbose] > nominal path_buf = $'std_path_PathBuf'

00:06:29 #16571 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0187-8749-8c11eba48a75\main.spi

00:06:29 #16572 [Verbose] >

00:06:29 #16573 [Verbose] > ╭─[ 215.15ms - stdout ]────────────────────────────────────────────────────────╮

00:06:29 #16574 [Verbose] > │ ()                                                                           │

00:06:29 #16575 [Verbose] > │                                                                              │

00:06:29 #16576 [Verbose] > │                                                                              │

00:06:29 #16577 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16578 [Verbose] >

00:06:29 #16579 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:29 #16580 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:29 #16581 [Verbose] > │ ## new_path_buf                                                              │

00:06:29 #16582 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:29 #16583 [Verbose] >

00:06:29 #16584 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:29 #16585 [Verbose] > inl new_path_buf (path : string) : path_buf =

00:06:29 #16586 [Verbose] >     inl path = path |> sm'.to_std_string

00:06:29 #16587 [Verbose] >     !\\(path, $'"std::path::PathBuf::from($0)"')

00:06:29 #16588 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0210-1021-126ea27c24ea\main.spi

00:06:30 #16589 [Verbose] >

00:06:30 #16590 [Verbose] > ╭─[ 201.60ms - stdout ]────────────────────────────────────────────────────────╮

00:06:30 #16591 [Verbose] > │ ()                                                                           │

00:06:30 #16592 [Verbose] > │                                                                              │

00:06:30 #16593 [Verbose] > │                                                                              │

00:06:30 #16594 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16595 [Verbose] >

00:06:30 #16596 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:30 #16597 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:30 #16598 [Verbose] > │ ## path_buf_from                                                             │

00:06:30 #16599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16600 [Verbose] >

00:06:30 #16601 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:30 #16602 [Verbose] > inl path_buf_from (path : rust.box path) : path_buf =

00:06:30 #16603 [Verbose] >     !\\(path, $'"std::path::PathBuf::from($0)"')

00:06:30 #16604 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0230-3091-3f17f61efcbf\main.spi

00:06:30 #16605 [Verbose] >

00:06:30 #16606 [Verbose] > ╭─[ 212.45ms - stdout ]────────────────────────────────────────────────────────╮

00:06:30 #16607 [Verbose] > │ ()                                                                           │

00:06:30 #16608 [Verbose] > │                                                                              │

00:06:30 #16609 [Verbose] > │                                                                              │

00:06:30 #16610 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16611 [Verbose] >

00:06:30 #16612 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:30 #16613 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:30 #16614 [Verbose] > │ ## path_join                                                                 │

00:06:30 #16615 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16616 [Verbose] >

00:06:30 #16617 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:30 #16618 [Verbose] > inl path_join (s : string) (path_buf : path_buf) : path_buf =

00:06:30 #16619 [Verbose] >     !\\((path_buf, s |> sm'.to_std_string), $'"$0.join($1)"')

00:06:30 #16620 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0252-5264-569160c1a408\main.spi

00:06:30 #16621 [Verbose] >

00:06:30 #16622 [Verbose] > ╭─[ 213.60ms - stdout ]────────────────────────────────────────────────────────╮

00:06:30 #16623 [Verbose] > │ ()                                                                           │

00:06:30 #16624 [Verbose] > │                                                                              │

00:06:30 #16625 [Verbose] > │                                                                              │

00:06:30 #16626 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16627 [Verbose] >

00:06:30 #16628 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:30 #16629 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:30 #16630 [Verbose] > │ ## path_display                                                              │

00:06:30 #16631 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16632 [Verbose] >

00:06:30 #16633 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:30 #16634 [Verbose] > inl path_display (path : rust.ref' path) : sm'.std_string =

00:06:30 #16635 [Verbose] >     !\\(path, $'"$0.display().to_string()"')

00:06:30 #16636 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0274-7448-76548faef4d5\main.spi

00:06:30 #16637 [Verbose] >

00:06:30 #16638 [Verbose] > ╭─[ 215.17ms - stdout ]────────────────────────────────────────────────────────╮

00:06:30 #16639 [Verbose] > │ ()                                                                           │

00:06:30 #16640 [Verbose] > │                                                                              │

00:06:30 #16641 [Verbose] > │                                                                              │

00:06:30 #16642 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16643 [Verbose] >

00:06:30 #16644 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:30 #16645 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:30 #16646 [Verbose] > │ ## path_buf_file_name                                                        │

00:06:30 #16647 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16648 [Verbose] >

00:06:30 #16649 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:30 #16650 [Verbose] > inl path_buf_file_name (path : path_buf) : optionm'.option' (rust.ref'

00:06:30 #16651 [Verbose] > sm'.os_str) =

00:06:30 #16652 [Verbose] >     !\($'"!path.file_name()"')

00:06:30 #16653 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0297-9714-9aa0b282c318\main.spi

00:06:30 #16654 [Verbose] >

00:06:30 #16655 [Verbose] > ╭─[ 213.27ms - stdout ]────────────────────────────────────────────────────────╮

00:06:30 #16656 [Verbose] > │ ()                                                                           │

00:06:30 #16657 [Verbose] > │                                                                              │

00:06:30 #16658 [Verbose] > │                                                                              │

00:06:30 #16659 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16660 [Verbose] >

00:06:30 #16661 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:30 #16662 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:30 #16663 [Verbose] > │ ## path_buf_display                                                          │

00:06:30 #16664 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:30 #16665 [Verbose] >

00:06:30 #16666 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:30 #16667 [Verbose] > inl path_buf_display (path : path_buf) : sm'.std_string =

00:06:30 #16668 [Verbose] >     !\\(path, $'"$0.display().to_string()"')

00:06:31 #16669 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0318-1884-155718f102b1\main.spi

00:06:31 #16670 [Verbose] >

00:06:31 #16671 [Verbose] > ╭─[ 240.64ms - stdout ]────────────────────────────────────────────────────────╮

00:06:31 #16672 [Verbose] > │ ()                                                                           │

00:06:31 #16673 [Verbose] > │                                                                              │

00:06:31 #16674 [Verbose] > │                                                                              │

00:06:31 #16675 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16676 [Verbose] >

00:06:31 #16677 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:31 #16678 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:31 #16679 [Verbose] > │ ## path_exists                                                               │

00:06:31 #16680 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16681 [Verbose] >

00:06:31 #16682 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:31 #16683 [Verbose] > inl path_buf_exists (path_buf : path_buf) : bool =

00:06:31 #16684 [Verbose] >     !\($'"!path_buf.exists()"')

00:06:31 #16685 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0343-4346-4ffa9c5c6ea7\main.spi

00:06:31 #16686 [Verbose] >

00:06:31 #16687 [Verbose] > ╭─[ 223.13ms - stdout ]────────────────────────────────────────────────────────╮

00:06:31 #16688 [Verbose] > │ ()                                                                           │

00:06:31 #16689 [Verbose] > │                                                                              │

00:06:31 #16690 [Verbose] > │                                                                              │

00:06:31 #16691 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16692 [Verbose] >

00:06:31 #16693 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:31 #16694 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:31 #16695 [Verbose] > │ ## path_is_dir                                                               │

00:06:31 #16696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16697 [Verbose] >

00:06:31 #16698 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:31 #16699 [Verbose] > inl path_buf_is_dir (path_buf : path_buf) : bool =

00:06:31 #16700 [Verbose] >     !\($'"!path_buf.is_dir()"')

00:06:31 #16701 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0366-6631-6a0fc79e4d37\main.spi

00:06:31 #16702 [Verbose] >

00:06:31 #16703 [Verbose] > ╭─[ 361.34ms - stdout ]────────────────────────────────────────────────────────╮

00:06:31 #16704 [Verbose] > │ ()                                                                           │

00:06:31 #16705 [Verbose] > │                                                                              │

00:06:31 #16706 [Verbose] > │                                                                              │

00:06:31 #16707 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16708 [Verbose] >

00:06:31 #16709 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:31 #16710 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:31 #16711 [Verbose] > │ ## path_is_file                                                              │

00:06:31 #16712 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16713 [Verbose] >

00:06:31 #16714 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:31 #16715 [Verbose] > inl path_buf_is_file (path_buf : path_buf) : bool =

00:06:31 #16716 [Verbose] >     !\($'"!path_buf.is_file()"')

00:06:31 #16717 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0402-0295-0ae233e28430\main.spi

00:06:31 #16718 [Verbose] >

00:06:31 #16719 [Verbose] > ╭─[ 211.25ms - stdout ]────────────────────────────────────────────────────────╮

00:06:31 #16720 [Verbose] > │ ()                                                                           │

00:06:31 #16721 [Verbose] > │                                                                              │

00:06:31 #16722 [Verbose] > │                                                                              │

00:06:31 #16723 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16724 [Verbose] >

00:06:31 #16725 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:31 #16726 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:31 #16727 [Verbose] > │ ## path_parent                                                               │

00:06:31 #16728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:31 #16729 [Verbose] >

00:06:31 #16730 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:31 #16731 [Verbose] > inl path_buf_parent (path_buf : path_buf) : optionm'.option' path_buf =

00:06:31 #16732 [Verbose] >     !\\(path_buf, $'"$0.parent().map(std::path::PathBuf::from)"')

00:06:32 #16733 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0424-2462-27c2e9cc280a\main.spi

00:06:32 #16734 [Verbose] >

00:06:32 #16735 [Verbose] > ╭─[ 221.75ms - stdout ]────────────────────────────────────────────────────────╮

00:06:32 #16736 [Verbose] > │ ()                                                                           │

00:06:32 #16737 [Verbose] > │                                                                              │

00:06:32 #16738 [Verbose] > │                                                                              │

00:06:32 #16739 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16740 [Verbose] >

00:06:32 #16741 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:32 #16742 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:32 #16743 [Verbose] > │ ## (< />)                                                                    │

00:06:32 #16744 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16745 [Verbose] >

00:06:32 #16746 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:32 #16747 [Verbose] > inl (</>) (a : string) (b : string) : string =

00:06:32 #16748 [Verbose] >     run_target function

00:06:32 #16749 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:32 #16750 [Verbose] >             $'System.IO.Path.Combine (!a, !b)'

00:06:32 #16751 [Verbose] >         | Rust (Native) => fun () =>

00:06:32 #16752 [Verbose] >             a |> new_path_buf |> path_join b |> path_buf_display |>

00:06:32 #16753 [Verbose] > sm'.from_std_string

00:06:32 #16754 [Verbose] >         | target => fun () => null ()

00:06:32 #16755 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0447-4760-4d7eb2168204\main.spi

00:06:32 #16756 [Verbose] >

00:06:32 #16757 [Verbose] > ╭─[ 205.09ms - stdout ]────────────────────────────────────────────────────────╮

00:06:32 #16758 [Verbose] > │ ()                                                                           │

00:06:32 #16759 [Verbose] > │                                                                              │

00:06:32 #16760 [Verbose] > │                                                                              │

00:06:32 #16761 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16762 [Verbose] >

00:06:32 #16763 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:32 #16764 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:32 #16765 [Verbose] > │ ## get_temp_path                                                             │

00:06:32 #16766 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16767 [Verbose] >

00:06:32 #16768 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:32 #16769 [Verbose] > inl get_temp_path () : string =

00:06:32 #16770 [Verbose] >     $'System.IO.Path.GetTempPath' ()

00:06:32 #16771 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0468-6849-6d18ef19df57\main.spi

00:06:32 #16772 [Verbose] >

00:06:32 #16773 [Verbose] > ╭─[ 195.14ms - stdout ]────────────────────────────────────────────────────────╮

00:06:32 #16774 [Verbose] > │ ()                                                                           │

00:06:32 #16775 [Verbose] > │                                                                              │

00:06:32 #16776 [Verbose] > │                                                                              │

00:06:32 #16777 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16778 [Verbose] >

00:06:32 #16779 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:32 #16780 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:32 #16781 [Verbose] > │ ## create_temp_directory_name                                                │

00:06:32 #16782 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16783 [Verbose] >

00:06:32 #16784 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:32 #16785 [Verbose] > inl create_temp_directory_name () =

00:06:32 #16786 [Verbose] >     run_target function

00:06:32 #16787 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:32 #16788 [Verbose] >             inl root =

00:06:32 #16789 [Verbose] > $'System.Reflection.Assembly.GetEntryAssembly().GetName().Name' : string

00:06:32 #16790 [Verbose] >

00:06:32 #16791 [Verbose] >             get_temp_path ()

00:06:32 #16792 [Verbose] >             </> ($'$"\!{!root}"' : string)

00:06:32 #16793 [Verbose] >             </> (date_time.new_guid_from_date_time $'System.DateTime.Now' |>

00:06:32 #16794 [Verbose] > sm'.obj_to_string)

00:06:32 #16795 [Verbose] >         | target => fun () => null ()

00:06:32 #16796 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0488-8845-82df3a7dc6ee\main.spi

00:06:32 #16797 [Verbose] >

00:06:32 #16798 [Verbose] > ╭─[ 224.74ms - stdout ]────────────────────────────────────────────────────────╮

00:06:32 #16799 [Verbose] > │ ()                                                                           │

00:06:32 #16800 [Verbose] > │                                                                              │

00:06:32 #16801 [Verbose] > │                                                                              │

00:06:32 #16802 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:32 #16803 [Verbose] >

00:06:32 #16804 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:32 #16805 [Verbose] > // // test

00:06:32 #16806 [Verbose] >

00:06:32 #16807 [Verbose] > create_temp_directory_name ()

00:06:32 #16808 [Verbose] > |> _contains ($'System.IO.Path.DirectorySeparatorChar' : char)

00:06:32 #16809 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0511-1158-17a2a678b5db\main.spi

00:06:34 #16810 [Verbose] >

00:06:34 #16811 [Verbose] > ╭─[ 1.96s - stdout ]───────────────────────────────────────────────────────────╮

00:06:34 #16812 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:06:34 #16813 [Verbose] > │     | US0_0 of f0_0 : char                                                   │

00:06:34 #16814 [Verbose] > │     | US0_1                                                                  │

00:06:34 #16815 [Verbose] > │ let rec method1 (v0 : string) : string =                                     │

00:06:34 #16816 [Verbose] > │     v0                                                                       │

00:06:34 #16817 [Verbose] > │ and closure0 (v0 : char) (v1 : char) : bool =                                │

00:06:34 #16818 [Verbose] > │     let v2 : bool = v0 = v1                                                  │

00:06:34 #16819 [Verbose] > │     v2                                                                       │

00:06:34 #16820 [Verbose] > │ and closure1 () (v0 : char) : US0 =                                          │

00:06:34 #16821 [Verbose] > │     US0_0(v0)                                                                │

00:06:34 #16822 [Verbose] > │ and method2 () : (char -> US0) =                                             │

00:06:34 #16823 [Verbose] > │     closure1()                                                               │

00:06:34 #16824 [Verbose] > │ and method3 (v0 : bool) : bool =                                             │

00:06:34 #16825 [Verbose] > │     v0                                                                       │

00:06:34 #16826 [Verbose] > │ and method0 () : unit =                                                      │

00:06:34 #16827 [Verbose] > │     let v0 : string option = None                                            │

00:06:34 #16828 [Verbose] > │     let mutable _v0 = v0                                                     │

00:06:34 #16829 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:34 #16830 [Verbose] > │     let v1 : string = null |> unbox<string>                                  │

00:06:34 #16831 [Verbose] > │     v1                                                                       │

00:06:34 #16832 [Verbose] > │     #endif                                                                   │

00:06:34 #16833 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:34 #16834 [Verbose] > │     let v2 : string = null |> unbox<string>                                  │

00:06:34 #16835 [Verbose] > │     v2                                                                       │

00:06:34 #16836 [Verbose] > │     #endif                                                                   │

00:06:34 #16837 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:34 #16838 [Verbose] > │     let v3 : string = null |> unbox<string>                                  │

00:06:34 #16839 [Verbose] > │     v3                                                                       │

00:06:34 #16840 [Verbose] > │     #endif                                                                   │

00:06:34 #16841 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:34 #16842 [Verbose] > │     let v4 : string =                                                        │

00:06:34 #16843 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name                 │

00:06:34 #16844 [Verbose] > │     let v5 : (unit -> string) = System.IO.Path.GetTempPath                   │

00:06:34 #16845 [Verbose] > │     let v6 : string = v5 ()                                                  │

00:06:34 #16846 [Verbose] > │     let v7 : string = $"!{v4}"                                               │

00:06:34 #16847 [Verbose] > │     let v8 : string option = None                                            │

00:06:34 #16848 [Verbose] > │     let mutable _v8 = v8                                                     │

00:06:34 #16849 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:34 #16850 [Verbose] > │     let v9 : string = method1(v6)                                            │

00:06:34 #16851 [Verbose] > │     let v10 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:34 #16852 [Verbose] > │     let v11 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v9 v10          │

00:06:34 #16853 [Verbose] > │     let v12 : string = "String::from($0)"                                    │

00:06:34 #16854 [Verbose] > │     let v13 : std_string_String = Fable.Core.RustInterop.emitRustExpr v11    │

00:06:34 #16855 [Verbose] > │ v12                                                                          │

00:06:34 #16856 [Verbose] > │     let v14 : string = "std::path::PathBuf::from($0)"                        │

00:06:34 #16857 [Verbose] > │     let v15 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v13 v14 │

00:06:34 #16858 [Verbose] > │     let v16 : string = method1(v7)                                           │

00:06:34 #16859 [Verbose] > │     let v17 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:34 #16860 [Verbose] > │     let v18 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v16 v17         │

00:06:34 #16861 [Verbose] > │     let v19 : string = "String::from($0)"                                    │

00:06:34 #16862 [Verbose] > │     let v20 : std_string_String = Fable.Core.RustInterop.emitRustExpr v18    │

00:06:34 #16863 [Verbose] > │ v19                                                                          │

00:06:34 #16864 [Verbose] > │     let v21 : string = "$0.join($1)"                                         │

00:06:34 #16865 [Verbose] > │     let v22 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:34 #16866 [Verbose] > │ (v15, v20) v21                                                               │

00:06:34 #16867 [Verbose] > │     let v23 : string = "$0.display().to_string()"                            │

00:06:34 #16868 [Verbose] > │     let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22    │

00:06:34 #16869 [Verbose] > │ v23                                                                          │

00:06:34 #16870 [Verbose] > │     let v25 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:34 #16871 [Verbose] > │     let v26 : string = Fable.Core.RustInterop.emitRustExpr v24 v25           │

00:06:34 #16872 [Verbose] > │     v26                                                                      │

00:06:34 #16873 [Verbose] > │     #endif                                                                   │

00:06:34 #16874 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:34 #16875 [Verbose] > │     let v27 : string = null |> unbox<string>                                 │

00:06:34 #16876 [Verbose] > │     v27                                                                      │

00:06:34 #16877 [Verbose] > │     #endif                                                                   │

00:06:34 #16878 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:34 #16879 [Verbose] > │     let v28 : string = null |> unbox<string>                                 │

00:06:34 #16880 [Verbose] > │     v28                                                                      │

00:06:34 #16881 [Verbose] > │     #endif                                                                   │

00:06:34 #16882 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:34 #16883 [Verbose] > │     let v29 : string = System.IO.Path.Combine (v6, v7)                       │

00:06:34 #16884 [Verbose] > │     v29                                                                      │

00:06:34 #16885 [Verbose] > │     #endif                                                                   │

00:06:34 #16886 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:34 #16887 [Verbose] > │     let v30 : string = null |> unbox<string>                                 │

00:06:34 #16888 [Verbose] > │     v30                                                                      │

00:06:34 #16889 [Verbose] > │     #endif                                                                   │

00:06:34 #16890 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:34 #16891 [Verbose] > │     let v31 : string = null |> unbox<string>                                 │

00:06:34 #16892 [Verbose] > │     v31                                                                      │

00:06:34 #16893 [Verbose] > │     #endif                                                                   │

00:06:34 #16894 [Verbose] > │     |> fun x -> _v8 <- Some x                                                │

00:06:34 #16895 [Verbose] > │     let v32 : string = _v8 |> Option.get                                     │

00:06:34 #16896 [Verbose] > │     let v33 : System.DateTime = System.DateTime.Now                          │

00:06:34 #16897 [Verbose] > │     let v34 : System.Guid = System.Guid.NewGuid ()                           │

00:06:34 #16898 [Verbose] > │     let v35 : (System.Guid -> string) = _.ToString()                         │

00:06:34 #16899 [Verbose] > │     let v36 : string = v35 v34                                               │

00:06:34 #16900 [Verbose] > │     let v37 : string = v33.ToString "yyyyMMdd-HHmm-ssff-ffff-f"              │

00:06:34 #16901 [Verbose] > │     let v38 : System.Guid = System.Guid $"{v37}{v36.[v37.Length..]}"         │

00:06:34 #16902 [Verbose] > │     let v39 : (System.Guid -> string) = _.ToString()                         │

00:06:34 #16903 [Verbose] > │     let v40 : string = v39 v38                                               │

00:06:34 #16904 [Verbose] > │     let v41 : string option = None                                           │

00:06:34 #16905 [Verbose] > │     let mutable _v41 = v41                                                   │

00:06:34 #16906 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:34 #16907 [Verbose] > │     let v42 : string = method1(v32)                                          │

00:06:34 #16908 [Verbose] > │     let v43 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:34 #16909 [Verbose] > │     let v44 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v42 v43         │

00:06:34 #16910 [Verbose] > │     let v45 : string = "String::from($0)"                                    │

00:06:34 #16911 [Verbose] > │     let v46 : std_string_String = Fable.Core.RustInterop.emitRustExpr v44    │

00:06:34 #16912 [Verbose] > │ v45                                                                          │

00:06:34 #16913 [Verbose] > │     let v47 : string = "std::path::PathBuf::from($0)"                        │

00:06:34 #16914 [Verbose] > │     let v48 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v46 v47 │

00:06:34 #16915 [Verbose] > │     let v49 : string = method1(v40)                                          │

00:06:34 #16916 [Verbose] > │     let v50 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:34 #16917 [Verbose] > │     let v51 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v49 v50         │

00:06:34 #16918 [Verbose] > │     let v52 : string = "String::from($0)"                                    │

00:06:34 #16919 [Verbose] > │     let v53 : std_string_String = Fable.Core.RustInterop.emitRustExpr v51    │

00:06:34 #16920 [Verbose] > │ v52                                                                          │

00:06:34 #16921 [Verbose] > │     let v54 : string = "$0.join($1)"                                         │

00:06:34 #16922 [Verbose] > │     let v55 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:34 #16923 [Verbose] > │ (v48, v53) v54                                                               │

00:06:34 #16924 [Verbose] > │     let v56 : string = "$0.display().to_string()"                            │

00:06:34 #16925 [Verbose] > │     let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55    │

00:06:34 #16926 [Verbose] > │ v56                                                                          │

00:06:34 #16927 [Verbose] > │     let v58 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:34 #16928 [Verbose] > │     let v59 : string = Fable.Core.RustInterop.emitRustExpr v57 v58           │

00:06:34 #16929 [Verbose] > │     v59                                                                      │

00:06:34 #16930 [Verbose] > │     #endif                                                                   │

00:06:34 #16931 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:34 #16932 [Verbose] > │     let v60 : string = null |> unbox<string>                                 │

00:06:34 #16933 [Verbose] > │     v60                                                                      │

00:06:34 #16934 [Verbose] > │     #endif                                                                   │

00:06:34 #16935 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:34 #16936 [Verbose] > │     let v61 : string = null |> unbox<string>                                 │

00:06:34 #16937 [Verbose] > │     v61                                                                      │

00:06:34 #16938 [Verbose] > │     #endif                                                                   │

00:06:34 #16939 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:34 #16940 [Verbose] > │     let v62 : string = System.IO.Path.Combine (v32, v40)                     │

00:06:34 #16941 [Verbose] > │     v62                                                                      │

00:06:34 #16942 [Verbose] > │     #endif                                                                   │

00:06:34 #16943 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:34 #16944 [Verbose] > │     let v63 : string = null |> unbox<string>                                 │

00:06:34 #16945 [Verbose] > │     v63                                                                      │

00:06:34 #16946 [Verbose] > │     #endif                                                                   │

00:06:34 #16947 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:34 #16948 [Verbose] > │     let v64 : string = null |> unbox<string>                                 │

00:06:34 #16949 [Verbose] > │     v64                                                                      │

00:06:34 #16950 [Verbose] > │     #endif                                                                   │

00:06:34 #16951 [Verbose] > │     |> fun x -> _v41 <- Some x                                               │

00:06:34 #16952 [Verbose] > │     let v65 : string = _v41 |> Option.get                                    │

00:06:34 #16953 [Verbose] > │     v65                                                                      │

00:06:34 #16954 [Verbose] > │     #endif                                                                   │

00:06:34 #16955 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:34 #16956 [Verbose] > │     let v66 : string = null |> unbox<string>                                 │

00:06:34 #16957 [Verbose] > │     v66                                                                      │

00:06:34 #16958 [Verbose] > │     #endif                                                                   │

00:06:34 #16959 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:34 #16960 [Verbose] > │     let v67 : string = null |> unbox<string>                                 │

00:06:34 #16961 [Verbose] > │     v67                                                                      │

00:06:34 #16962 [Verbose] > │     #endif                                                                   │

00:06:34 #16963 [Verbose] > │     |> fun x -> _v0 <- Some x                                                │

00:06:34 #16964 [Verbose] > │     let v68 : string = _v0 |> Option.get                                     │

00:06:34 #16965 [Verbose] > │     let v69 : char = System.IO.Path.DirectorySeparatorChar                   │

00:06:34 #16966 [Verbose] > │     let v70 : string = $"%A{v68}"                                            │

00:06:34 #16967 [Verbose] > │     System.Console.WriteLine v70                                             │

00:06:34 #16968 [Verbose] > │     let v71 : ((char -> bool) -> (string -> char option)) = Seq.tryFind      │

00:06:34 #16969 [Verbose] > │     let v72 : (char -> bool) = closure0(v69)                                 │

00:06:34 #16970 [Verbose] > │     let v73 : (string -> char option) = v71 v72                              │

00:06:34 #16971 [Verbose] > │     let v74 : char option = v73 v68                                          │

00:06:34 #16972 [Verbose] > │     let v75 : (char -> US0) = method2()                                      │

00:06:34 #16973 [Verbose] > │     let v76 : US0 = US0_1                                                    │

00:06:34 #16974 [Verbose] > │     let v77 : US0 = v74 |> Option.map v75 |> Option.defaultValue v76         │

00:06:34 #16975 [Verbose] > │     let v79 : bool =                                                         │

00:06:34 #16976 [Verbose] > │         match v77 with                                                       │

00:06:34 #16977 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:06:34 #16978 [Verbose] > │             true                                                             │

00:06:34 #16979 [Verbose] > │         | _ ->                                                               │

00:06:34 #16980 [Verbose] > │             false                                                            │

00:06:34 #16981 [Verbose] > │     let v80 : bool = v79 <> true                                             │

00:06:34 #16982 [Verbose] > │     let v82 : bool =                                                         │

00:06:34 #16983 [Verbose] > │         if v80 then                                                          │

00:06:34 #16984 [Verbose] > │             true                                                             │

00:06:34 #16985 [Verbose] > │         else                                                                 │

00:06:34 #16986 [Verbose] > │             method3(v80)                                                     │

00:06:34 #16987 [Verbose] > │     let v83 : string = $"__expect / actual: %A{v68} / expected: %A{v69}"     │

00:06:34 #16988 [Verbose] > │     let v84 : bool = v82 = false                                             │

00:06:34 #16989 [Verbose] > │     if v84 then                                                              │

00:06:34 #16990 [Verbose] > │         failwith<unit> v83                                                   │

00:06:34 #16991 [Verbose] > │ method0()                                                                    │

00:06:34 #16992 [Verbose] > │                                                                              │

00:06:34 #16993 [Verbose] > │ "C:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0706-0642-0266 │

00:06:34 #16994 [Verbose] > │ c270c12e"                                                                    │

00:06:34 #16995 [Verbose] > │                                                                              │

00:06:34 #16996 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:34 #16997 [Verbose] >

00:06:34 #16998 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:34 #16999 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:34 #17000 [Verbose] > │ ## directory_info                                                            │

00:06:34 #17001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:34 #17002 [Verbose] >

00:06:34 #17003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:34 #17004 [Verbose] > nominal directory_info = $'System.IO.DirectoryInfo'

00:06:34 #17005 [Verbose] >

00:06:34 #17006 [Verbose] > inl directory_info (path : string) : directory_info =

00:06:34 #17007 [Verbose] >     path |> $'`directory_info '

00:06:35 #17008 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0716-1664-17b39bfa7259\main.spi

00:06:35 #17009 [Verbose] >

00:06:35 #17010 [Verbose] > ╭─[ 245.99ms - stdout ]────────────────────────────────────────────────────────╮

00:06:35 #17011 [Verbose] > │ ()                                                                           │

00:06:35 #17012 [Verbose] > │                                                                              │

00:06:35 #17013 [Verbose] > │                                                                              │

00:06:35 #17014 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17015 [Verbose] >

00:06:35 #17016 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:35 #17017 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:35 #17018 [Verbose] > │ ## directory_info_exists                                                     │

00:06:35 #17019 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17020 [Verbose] >

00:06:35 #17021 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:35 #17022 [Verbose] > inl directory_info_exists (info : directory_info) : bool =

00:06:35 #17023 [Verbose] >     run_target function

00:06:35 #17024 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:35 #17025 [Verbose] >             $'!info.Exists'

00:06:35 #17026 [Verbose] >         | target => fun () => null ()

00:06:35 #17027 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0742-4242-4b920c9586a8\main.spi

00:06:35 #17028 [Verbose] >

00:06:35 #17029 [Verbose] > ╭─[ 274.01ms - stdout ]────────────────────────────────────────────────────────╮

00:06:35 #17030 [Verbose] > │ ()                                                                           │

00:06:35 #17031 [Verbose] > │                                                                              │

00:06:35 #17032 [Verbose] > │                                                                              │

00:06:35 #17033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17034 [Verbose] >

00:06:35 #17035 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:35 #17036 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:35 #17037 [Verbose] > │ ## directory_info_creation_time                                              │

00:06:35 #17038 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17039 [Verbose] >

00:06:35 #17040 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:35 #17041 [Verbose] > inl directory_info_creation_time (info : directory_info) : date_time.date_time =

00:06:35 #17042 [Verbose] >     run_target function

00:06:35 #17043 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:35 #17044 [Verbose] >             $'!info.CreationTime'

00:06:35 #17045 [Verbose] >         | target => fun () => null ()

00:06:35 #17046 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0770-7035-7ef6a5408fa7\main.spi

00:06:35 #17047 [Verbose] >

00:06:35 #17048 [Verbose] > ╭─[ 210.00ms - stdout ]────────────────────────────────────────────────────────╮

00:06:35 #17049 [Verbose] > │ ()                                                                           │

00:06:35 #17050 [Verbose] > │                                                                              │

00:06:35 #17051 [Verbose] > │                                                                              │

00:06:35 #17052 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17053 [Verbose] >

00:06:35 #17054 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:35 #17055 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:35 #17056 [Verbose] > │ ## directory_info_name                                                       │

00:06:35 #17057 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17058 [Verbose] >

00:06:35 #17059 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:35 #17060 [Verbose] > inl directory_info_name (info : directory_info) : string =

00:06:35 #17061 [Verbose] >     run_target function

00:06:35 #17062 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:35 #17063 [Verbose] >             $'!info.Name'

00:06:35 #17064 [Verbose] >         | target => fun () => null ()

00:06:35 #17065 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0791-9173-9498bf7f8ca9\main.spi

00:06:35 #17066 [Verbose] >

00:06:35 #17067 [Verbose] > ╭─[ 233.24ms - stdout ]────────────────────────────────────────────────────────╮

00:06:35 #17068 [Verbose] > │ ()                                                                           │

00:06:35 #17069 [Verbose] > │                                                                              │

00:06:35 #17070 [Verbose] > │                                                                              │

00:06:35 #17071 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17072 [Verbose] >

00:06:35 #17073 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:35 #17074 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:35 #17075 [Verbose] > │ ## directory_info_full_name                                                  │

00:06:35 #17076 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:35 #17077 [Verbose] >

00:06:35 #17078 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:35 #17079 [Verbose] > inl directory_info_full_name (info : directory_info) : string =

00:06:35 #17080 [Verbose] >     run_target function

00:06:35 #17081 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:35 #17082 [Verbose] >             $'!info.FullName'

00:06:35 #17083 [Verbose] >         | target => fun () => null ()

00:06:36 #17084 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0815-1587-143b751f552a\main.spi

00:06:36 #17085 [Verbose] >

00:06:36 #17086 [Verbose] > ╭─[ 226.00ms - stdout ]────────────────────────────────────────────────────────╮

00:06:36 #17087 [Verbose] > │ ()                                                                           │

00:06:36 #17088 [Verbose] > │                                                                              │

00:06:36 #17089 [Verbose] > │                                                                              │

00:06:36 #17090 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17091 [Verbose] >

00:06:36 #17092 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:36 #17093 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:36 #17094 [Verbose] > │ ## create_directory                                                          │

00:06:36 #17095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17096 [Verbose] >

00:06:36 #17097 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:36 #17098 [Verbose] > inl create_directory (path : string) : directory_info =

00:06:36 #17099 [Verbose] >     run_target function

00:06:36 #17100 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:36 #17101 [Verbose] >             path |> $'System.IO.Directory.CreateDirectory'

00:06:36 #17102 [Verbose] >         | target => fun () => null ()

00:06:36 #17103 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0838-3894-3ded02d45a7c\main.spi

00:06:36 #17104 [Verbose] >

00:06:36 #17105 [Verbose] > ╭─[ 195.94ms - stdout ]────────────────────────────────────────────────────────╮

00:06:36 #17106 [Verbose] > │ ()                                                                           │

00:06:36 #17107 [Verbose] > │                                                                              │

00:06:36 #17108 [Verbose] > │                                                                              │

00:06:36 #17109 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17110 [Verbose] >

00:06:36 #17111 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:36 #17112 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:36 #17113 [Verbose] > │ ## directory_exists                                                          │

00:06:36 #17114 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17115 [Verbose] >

00:06:36 #17116 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:36 #17117 [Verbose] > inl directory_exists (path : string) : bool =

00:06:36 #17118 [Verbose] >     run_target function

00:06:36 #17119 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:36 #17120 [Verbose] >             path |> $'System.IO.Directory.Exists'

00:06:36 #17121 [Verbose] >         | Rust (Native) => fun () =>

00:06:36 #17122 [Verbose] >             inl path = path |> new_path_buf

00:06:36 #17123 [Verbose] >             (path |> path_buf_exists) && (path |> path_buf_is_dir)

00:06:36 #17124 [Verbose] >         | target => fun () => null ()

00:06:36 #17125 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0859-5923-5511f50e48da\main.spi

00:06:36 #17126 [Verbose] >

00:06:36 #17127 [Verbose] > ╭─[ 306.29ms - stdout ]────────────────────────────────────────────────────────╮

00:06:36 #17128 [Verbose] > │ ()                                                                           │

00:06:36 #17129 [Verbose] > │                                                                              │

00:06:36 #17130 [Verbose] > │                                                                              │

00:06:36 #17131 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17132 [Verbose] >

00:06:36 #17133 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:36 #17134 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:36 #17135 [Verbose] > │ ## directory_get_parent                                                      │

00:06:36 #17136 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17137 [Verbose] >

00:06:36 #17138 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:36 #17139 [Verbose] > inl directory_get_parent (path : string) : optionm'.option' string =

00:06:36 #17140 [Verbose] >     run_target function

00:06:36 #17141 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:36 #17142 [Verbose] >             inl parent : directory_info = path |>

00:06:36 #17143 [Verbose] > $'System.IO.Directory.GetParent'

00:06:36 #17144 [Verbose] >             if parent =. null ()

00:06:36 #17145 [Verbose] >             then None

00:06:36 #17146 [Verbose] >             else parent |> directory_info_full_name |> Some

00:06:36 #17147 [Verbose] >         | Rust (Native) => fun () =>

00:06:36 #17148 [Verbose] >             path

00:06:36 #17149 [Verbose] >             |> new_path_buf

00:06:36 #17150 [Verbose] >             |> path_buf_parent

00:06:36 #17151 [Verbose] >             |> optionm'.try'

00:06:36 #17152 [Verbose] >             |> path_buf_display

00:06:36 #17153 [Verbose] >             |> sm'.from_std_string

00:06:36 #17154 [Verbose] >             |> Some

00:06:36 #17155 [Verbose] >         | target => fun () => null ()

00:06:36 #17156 [Verbose] >     |> optionm'.box

00:06:36 #17157 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0890-9047-9f352b66c6aa\main.spi

00:06:36 #17158 [Verbose] >

00:06:36 #17159 [Verbose] > ╭─[ 229.73ms - stdout ]────────────────────────────────────────────────────────╮

00:06:36 #17160 [Verbose] > │ ()                                                                           │

00:06:36 #17161 [Verbose] > │                                                                              │

00:06:36 #17162 [Verbose] > │                                                                              │

00:06:36 #17163 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17164 [Verbose] >

00:06:36 #17165 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:36 #17166 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:36 #17167 [Verbose] > │ ## file_exists                                                               │

00:06:36 #17168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:36 #17169 [Verbose] >

00:06:36 #17170 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:36 #17171 [Verbose] > inl file_exists (path : string) : bool =

00:06:36 #17172 [Verbose] >     run_target function

00:06:36 #17173 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:36 #17174 [Verbose] >             path |> $'System.IO.File.Exists'

00:06:36 #17175 [Verbose] >         | Rust (Native) => fun () =>

00:06:36 #17176 [Verbose] >             inl path_buf = path |> new_path_buf

00:06:36 #17177 [Verbose] >             (path_buf |> path_buf_exists) && (path_buf |> path_buf_is_file)

00:06:36 #17178 [Verbose] >         | target => fun () => null ()

00:06:36 #17179 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0913-1394-1fbd924b1b66\main.spi

00:06:37 #17180 [Verbose] >

00:06:37 #17181 [Verbose] > ╭─[ 226.87ms - stdout ]────────────────────────────────────────────────────────╮

00:06:37 #17182 [Verbose] > │ ()                                                                           │

00:06:37 #17183 [Verbose] > │                                                                              │

00:06:37 #17184 [Verbose] > │                                                                              │

00:06:37 #17185 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:37 #17186 [Verbose] >

00:06:37 #17187 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:37 #17188 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:37 #17189 [Verbose] > │ ## create_temp_directory                                                     │

00:06:37 #17190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:37 #17191 [Verbose] >

00:06:37 #17192 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:37 #17193 [Verbose] > inl create_temp_directory () =

00:06:37 #17194 [Verbose] >     run_target function

00:06:37 #17195 [Verbose] >         | Fsharp (Native) => fun () =>

00:06:37 #17196 [Verbose] >             inl temp_folder = create_temp_directory_name ()

00:06:37 #17197 [Verbose] >             inl result = temp_folder |> create_directory

00:06:37 #17198 [Verbose] >

00:06:37 #17199 [Verbose] >             inl exists' = result |> directory_info_exists

00:06:37 #17200 [Verbose] >             if not exists' then

00:06:37 #17201 [Verbose] >                 inl creation_time = result |> directory_info_creation_time

00:06:37 #17202 [Verbose] >                 inl result = ($'{| Exists = !exists'; CreationTime =

00:06:37 #17203 [Verbose] > !creation_time |}' : any) |> sm'.format_debug

00:06:37 #17204 [Verbose] >                 inl get_locals () : string =

00:06:37 #17205 [Verbose] >                     $'$"temp_folder: {!temp_folder} / result: {!result}

00:06:37 #17206 [Verbose] > {!get_locals ()}"'

00:06:37 #17207 [Verbose] >                 // trace Debug (fun () => "createTempDirectory") get_locals

00:06:37 #17208 [Verbose] >                 console.write_line ($'$"create_temp_directory / {!get_locals

00:06:37 #17209 [Verbose] > ()}"' : string)

00:06:37 #17210 [Verbose] >

00:06:37 #17211 [Verbose] >             temp_folder

00:06:37 #17212 [Verbose] >         | target => fun () => null ()

00:06:37 #17213 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0937-3712-362cdfe91af6\main.spi

00:06:37 #17214 [Verbose] >

00:06:37 #17215 [Verbose] > ╭─[ 212.45ms - stdout ]────────────────────────────────────────────────────────╮

00:06:37 #17216 [Verbose] > │ ()                                                                           │

00:06:37 #17217 [Verbose] > │                                                                              │

00:06:37 #17218 [Verbose] > │                                                                              │

00:06:37 #17219 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:37 #17220 [Verbose] >

00:06:37 #17221 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:37 #17222 [Verbose] > // // test

00:06:37 #17223 [Verbose] >

00:06:37 #17224 [Verbose] > create_temp_directory ()

00:06:37 #17225 [Verbose] > |> directory_exists

00:06:37 #17226 [Verbose] > |> _assert_eq true

00:06:37 #17227 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-0958-5856-53cba593d9c4\main.spi

00:06:37 #17228 [Verbose] >

00:06:37 #17229 [Verbose] > ╭─[ 473.82ms - stdout ]────────────────────────────────────────────────────────╮

00:06:37 #17230 [Verbose] > │ let rec method1 (v0 : string) : string =                                     │

00:06:37 #17231 [Verbose] > │     v0                                                                       │

00:06:37 #17232 [Verbose] > │ and closure1 () () : string =                                                │

00:06:37 #17233 [Verbose] > │     let v0 : string = ""                                                     │

00:06:37 #17234 [Verbose] > │     v0                                                                       │

00:06:37 #17235 [Verbose] > │ and closure0 (v0 : string, v1 : string) () : string =                        │

00:06:37 #17236 [Verbose] > │     let v2 : (unit -> string) = closure1()                                   │

00:06:37 #17237 [Verbose] > │     let v3 : string = $"temp_folder: {v0} / result: {v1} {v2 ()}"            │

00:06:37 #17238 [Verbose] > │     v3                                                                       │

00:06:37 #17239 [Verbose] > │ and method2 (v0 : bool) : bool =                                             │

00:06:37 #17240 [Verbose] > │     v0                                                                       │

00:06:37 #17241 [Verbose] > │ and method0 () : unit =                                                      │

00:06:37 #17242 [Verbose] > │     let v0 : string option = None                                            │

00:06:37 #17243 [Verbose] > │     let mutable _v0 = v0                                                     │

00:06:37 #17244 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17245 [Verbose] > │     let v1 : string = null |> unbox<string>                                  │

00:06:37 #17246 [Verbose] > │     v1                                                                       │

00:06:37 #17247 [Verbose] > │     #endif                                                                   │

00:06:37 #17248 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17249 [Verbose] > │     let v2 : string = null |> unbox<string>                                  │

00:06:37 #17250 [Verbose] > │     v2                                                                       │

00:06:37 #17251 [Verbose] > │     #endif                                                                   │

00:06:37 #17252 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17253 [Verbose] > │     let v3 : string = null |> unbox<string>                                  │

00:06:37 #17254 [Verbose] > │     v3                                                                       │

00:06:37 #17255 [Verbose] > │     #endif                                                                   │

00:06:37 #17256 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17257 [Verbose] > │     let v4 : string option = None                                            │

00:06:37 #17258 [Verbose] > │     let mutable _v4 = v4                                                     │

00:06:37 #17259 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17260 [Verbose] > │     let v5 : string = null |> unbox<string>                                  │

00:06:37 #17261 [Verbose] > │     v5                                                                       │

00:06:37 #17262 [Verbose] > │     #endif                                                                   │

00:06:37 #17263 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17264 [Verbose] > │     let v6 : string = null |> unbox<string>                                  │

00:06:37 #17265 [Verbose] > │     v6                                                                       │

00:06:37 #17266 [Verbose] > │     #endif                                                                   │

00:06:37 #17267 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17268 [Verbose] > │     let v7 : string = null |> unbox<string>                                  │

00:06:37 #17269 [Verbose] > │     v7                                                                       │

00:06:37 #17270 [Verbose] > │     #endif                                                                   │

00:06:37 #17271 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17272 [Verbose] > │     let v8 : string =                                                        │

00:06:37 #17273 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name                 │

00:06:37 #17274 [Verbose] > │     let v9 : (unit -> string) = System.IO.Path.GetTempPath                   │

00:06:37 #17275 [Verbose] > │     let v10 : string = v9 ()                                                 │

00:06:37 #17276 [Verbose] > │     let v11 : string = $"!{v8}"                                              │

00:06:37 #17277 [Verbose] > │     let v12 : string option = None                                           │

00:06:37 #17278 [Verbose] > │     let mutable _v12 = v12                                                   │

00:06:37 #17279 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17280 [Verbose] > │     let v13 : string = method1(v10)                                          │

00:06:37 #17281 [Verbose] > │     let v14 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:37 #17282 [Verbose] > │     let v15 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v13 v14         │

00:06:37 #17283 [Verbose] > │     let v16 : string = "String::from($0)"                                    │

00:06:37 #17284 [Verbose] > │     let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15    │

00:06:37 #17285 [Verbose] > │ v16                                                                          │

00:06:37 #17286 [Verbose] > │     let v18 : string = "std::path::PathBuf::from($0)"                        │

00:06:37 #17287 [Verbose] > │     let v19 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v17 v18 │

00:06:37 #17288 [Verbose] > │     let v20 : string = method1(v11)                                          │

00:06:37 #17289 [Verbose] > │     let v21 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:37 #17290 [Verbose] > │     let v22 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v20 v21         │

00:06:37 #17291 [Verbose] > │     let v23 : string = "String::from($0)"                                    │

00:06:37 #17292 [Verbose] > │     let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22    │

00:06:37 #17293 [Verbose] > │ v23                                                                          │

00:06:37 #17294 [Verbose] > │     let v25 : string = "$0.join($1)"                                         │

00:06:37 #17295 [Verbose] > │     let v26 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:37 #17296 [Verbose] > │ (v19, v24) v25                                                               │

00:06:37 #17297 [Verbose] > │     let v27 : string = "$0.display().to_string()"                            │

00:06:37 #17298 [Verbose] > │     let v28 : std_string_String = Fable.Core.RustInterop.emitRustExpr v26    │

00:06:37 #17299 [Verbose] > │ v27                                                                          │

00:06:37 #17300 [Verbose] > │     let v29 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:37 #17301 [Verbose] > │     let v30 : string = Fable.Core.RustInterop.emitRustExpr v28 v29           │

00:06:37 #17302 [Verbose] > │     v30                                                                      │

00:06:37 #17303 [Verbose] > │     #endif                                                                   │

00:06:37 #17304 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17305 [Verbose] > │     let v31 : string = null |> unbox<string>                                 │

00:06:37 #17306 [Verbose] > │     v31                                                                      │

00:06:37 #17307 [Verbose] > │     #endif                                                                   │

00:06:37 #17308 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17309 [Verbose] > │     let v32 : string = null |> unbox<string>                                 │

00:06:37 #17310 [Verbose] > │     v32                                                                      │

00:06:37 #17311 [Verbose] > │     #endif                                                                   │

00:06:37 #17312 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17313 [Verbose] > │     let v33 : string = System.IO.Path.Combine (v10, v11)                     │

00:06:37 #17314 [Verbose] > │     v33                                                                      │

00:06:37 #17315 [Verbose] > │     #endif                                                                   │

00:06:37 #17316 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17317 [Verbose] > │     let v34 : string = null |> unbox<string>                                 │

00:06:37 #17318 [Verbose] > │     v34                                                                      │

00:06:37 #17319 [Verbose] > │     #endif                                                                   │

00:06:37 #17320 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17321 [Verbose] > │     let v35 : string = null |> unbox<string>                                 │

00:06:37 #17322 [Verbose] > │     v35                                                                      │

00:06:37 #17323 [Verbose] > │     #endif                                                                   │

00:06:37 #17324 [Verbose] > │     |> fun x -> _v12 <- Some x                                               │

00:06:37 #17325 [Verbose] > │     let v36 : string = _v12 |> Option.get                                    │

00:06:37 #17326 [Verbose] > │     let v37 : System.DateTime = System.DateTime.Now                          │

00:06:37 #17327 [Verbose] > │     let v38 : System.Guid = System.Guid.NewGuid ()                           │

00:06:37 #17328 [Verbose] > │     let v39 : (System.Guid -> string) = _.ToString()                         │

00:06:37 #17329 [Verbose] > │     let v40 : string = v39 v38                                               │

00:06:37 #17330 [Verbose] > │     let v41 : string = v37.ToString "yyyyMMdd-HHmm-ssff-ffff-f"              │

00:06:37 #17331 [Verbose] > │     let v42 : System.Guid = System.Guid $"{v41}{v40.[v41.Length..]}"         │

00:06:37 #17332 [Verbose] > │     let v43 : (System.Guid -> string) = _.ToString()                         │

00:06:37 #17333 [Verbose] > │     let v44 : string = v43 v42                                               │

00:06:37 #17334 [Verbose] > │     let v45 : string option = None                                           │

00:06:37 #17335 [Verbose] > │     let mutable _v45 = v45                                                   │

00:06:37 #17336 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17337 [Verbose] > │     let v46 : string = method1(v36)                                          │

00:06:37 #17338 [Verbose] > │     let v47 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:37 #17339 [Verbose] > │     let v48 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v46 v47         │

00:06:37 #17340 [Verbose] > │     let v49 : string = "String::from($0)"                                    │

00:06:37 #17341 [Verbose] > │     let v50 : std_string_String = Fable.Core.RustInterop.emitRustExpr v48    │

00:06:37 #17342 [Verbose] > │ v49                                                                          │

00:06:37 #17343 [Verbose] > │     let v51 : string = "std::path::PathBuf::from($0)"                        │

00:06:37 #17344 [Verbose] > │     let v52 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v50 v51 │

00:06:37 #17345 [Verbose] > │     let v53 : string = method1(v44)                                          │

00:06:37 #17346 [Verbose] > │     let v54 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:37 #17347 [Verbose] > │     let v55 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v54         │

00:06:37 #17348 [Verbose] > │     let v56 : string = "String::from($0)"                                    │

00:06:37 #17349 [Verbose] > │     let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55    │

00:06:37 #17350 [Verbose] > │ v56                                                                          │

00:06:37 #17351 [Verbose] > │     let v58 : string = "$0.join($1)"                                         │

00:06:37 #17352 [Verbose] > │     let v59 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:37 #17353 [Verbose] > │ (v52, v57) v58                                                               │

00:06:37 #17354 [Verbose] > │     let v60 : string = "$0.display().to_string()"                            │

00:06:37 #17355 [Verbose] > │     let v61 : std_string_String = Fable.Core.RustInterop.emitRustExpr v59    │

00:06:37 #17356 [Verbose] > │ v60                                                                          │

00:06:37 #17357 [Verbose] > │     let v62 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:37 #17358 [Verbose] > │     let v63 : string = Fable.Core.RustInterop.emitRustExpr v61 v62           │

00:06:37 #17359 [Verbose] > │     v63                                                                      │

00:06:37 #17360 [Verbose] > │     #endif                                                                   │

00:06:37 #17361 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17362 [Verbose] > │     let v64 : string = null |> unbox<string>                                 │

00:06:37 #17363 [Verbose] > │     v64                                                                      │

00:06:37 #17364 [Verbose] > │     #endif                                                                   │

00:06:37 #17365 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17366 [Verbose] > │     let v65 : string = null |> unbox<string>                                 │

00:06:37 #17367 [Verbose] > │     v65                                                                      │

00:06:37 #17368 [Verbose] > │     #endif                                                                   │

00:06:37 #17369 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17370 [Verbose] > │     let v66 : string = System.IO.Path.Combine (v36, v44)                     │

00:06:37 #17371 [Verbose] > │     v66                                                                      │

00:06:37 #17372 [Verbose] > │     #endif                                                                   │

00:06:37 #17373 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17374 [Verbose] > │     let v67 : string = null |> unbox<string>                                 │

00:06:37 #17375 [Verbose] > │     v67                                                                      │

00:06:37 #17376 [Verbose] > │     #endif                                                                   │

00:06:37 #17377 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17378 [Verbose] > │     let v68 : string = null |> unbox<string>                                 │

00:06:37 #17379 [Verbose] > │     v68                                                                      │

00:06:37 #17380 [Verbose] > │     #endif                                                                   │

00:06:37 #17381 [Verbose] > │     |> fun x -> _v45 <- Some x                                               │

00:06:37 #17382 [Verbose] > │     let v69 : string = _v45 |> Option.get                                    │

00:06:37 #17383 [Verbose] > │     v69                                                                      │

00:06:37 #17384 [Verbose] > │     #endif                                                                   │

00:06:37 #17385 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17386 [Verbose] > │     let v70 : string = null |> unbox<string>                                 │

00:06:37 #17387 [Verbose] > │     v70                                                                      │

00:06:37 #17388 [Verbose] > │     #endif                                                                   │

00:06:37 #17389 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17390 [Verbose] > │     let v71 : string = null |> unbox<string>                                 │

00:06:37 #17391 [Verbose] > │     v71                                                                      │

00:06:37 #17392 [Verbose] > │     #endif                                                                   │

00:06:37 #17393 [Verbose] > │     |> fun x -> _v4 <- Some x                                                │

00:06:37 #17394 [Verbose] > │     let v72 : string = _v4 |> Option.get                                     │

00:06:37 #17395 [Verbose] > │     let v73 : System.IO.DirectoryInfo option = None                          │

00:06:37 #17396 [Verbose] > │     let mutable _v73 = v73                                                   │

00:06:37 #17397 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17398 [Verbose] > │     let v74 : System.IO.DirectoryInfo = null |>                              │

00:06:37 #17399 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:37 #17400 [Verbose] > │     v74                                                                      │

00:06:37 #17401 [Verbose] > │     #endif                                                                   │

00:06:37 #17402 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17403 [Verbose] > │     let v75 : System.IO.DirectoryInfo = null |>                              │

00:06:37 #17404 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:37 #17405 [Verbose] > │     v75                                                                      │

00:06:37 #17406 [Verbose] > │     #endif                                                                   │

00:06:37 #17407 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17408 [Verbose] > │     let v76 : System.IO.DirectoryInfo = null |>                              │

00:06:37 #17409 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:37 #17410 [Verbose] > │     v76                                                                      │

00:06:37 #17411 [Verbose] > │     #endif                                                                   │

00:06:37 #17412 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17413 [Verbose] > │     let v77 : (string -> System.IO.DirectoryInfo) =                          │

00:06:37 #17414 [Verbose] > │ System.IO.Directory.CreateDirectory                                          │

00:06:37 #17415 [Verbose] > │     let v78 : System.IO.DirectoryInfo = v77 v72                              │

00:06:37 #17416 [Verbose] > │     v78                                                                      │

00:06:37 #17417 [Verbose] > │     #endif                                                                   │

00:06:37 #17418 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17419 [Verbose] > │     let v79 : System.IO.DirectoryInfo = null |>                              │

00:06:37 #17420 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:37 #17421 [Verbose] > │     v79                                                                      │

00:06:37 #17422 [Verbose] > │     #endif                                                                   │

00:06:37 #17423 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17424 [Verbose] > │     let v80 : System.IO.DirectoryInfo = null |>                              │

00:06:37 #17425 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:37 #17426 [Verbose] > │     v80                                                                      │

00:06:37 #17427 [Verbose] > │     #endif                                                                   │

00:06:37 #17428 [Verbose] > │     |> fun x -> _v73 <- Some x                                               │

00:06:37 #17429 [Verbose] > │     let v81 : System.IO.DirectoryInfo = _v73 |> Option.get                   │

00:06:37 #17430 [Verbose] > │     let v82 : bool option = None                                             │

00:06:37 #17431 [Verbose] > │     let mutable _v82 = v82                                                   │

00:06:37 #17432 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17433 [Verbose] > │     let v83 : bool = null |> unbox<bool>                                     │

00:06:37 #17434 [Verbose] > │     v83                                                                      │

00:06:37 #17435 [Verbose] > │     #endif                                                                   │

00:06:37 #17436 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17437 [Verbose] > │     let v84 : bool = null |> unbox<bool>                                     │

00:06:37 #17438 [Verbose] > │     v84                                                                      │

00:06:37 #17439 [Verbose] > │     #endif                                                                   │

00:06:37 #17440 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17441 [Verbose] > │     let v85 : bool = null |> unbox<bool>                                     │

00:06:37 #17442 [Verbose] > │     v85                                                                      │

00:06:37 #17443 [Verbose] > │     #endif                                                                   │

00:06:37 #17444 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17445 [Verbose] > │     let v86 : bool = v81.Exists                                              │

00:06:37 #17446 [Verbose] > │     v86                                                                      │

00:06:37 #17447 [Verbose] > │     #endif                                                                   │

00:06:37 #17448 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17449 [Verbose] > │     let v87 : bool = null |> unbox<bool>                                     │

00:06:37 #17450 [Verbose] > │     v87                                                                      │

00:06:37 #17451 [Verbose] > │     #endif                                                                   │

00:06:37 #17452 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17453 [Verbose] > │     let v88 : bool = null |> unbox<bool>                                     │

00:06:37 #17454 [Verbose] > │     v88                                                                      │

00:06:37 #17455 [Verbose] > │     #endif                                                                   │

00:06:37 #17456 [Verbose] > │     |> fun x -> _v82 <- Some x                                               │

00:06:37 #17457 [Verbose] > │     let v89 : bool = _v82 |> Option.get                                      │

00:06:37 #17458 [Verbose] > │     let v90 : bool = v89 = false                                             │

00:06:37 #17459 [Verbose] > │     if v90 then                                                              │

00:06:37 #17460 [Verbose] > │         let v91 : System.DateTime option = None                              │

00:06:37 #17461 [Verbose] > │         let mutable _v91 = v91                                               │

00:06:37 #17462 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:06:37 #17463 [Verbose] > │         let v92 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:37 #17464 [Verbose] > │         v92                                                                  │

00:06:37 #17465 [Verbose] > │         #endif                                                               │

00:06:37 #17466 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:06:37 #17467 [Verbose] > │         let v93 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:37 #17468 [Verbose] > │         v93                                                                  │

00:06:37 #17469 [Verbose] > │         #endif                                                               │

00:06:37 #17470 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:06:37 #17471 [Verbose] > │         let v94 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:37 #17472 [Verbose] > │         v94                                                                  │

00:06:37 #17473 [Verbose] > │         #endif                                                               │

00:06:37 #17474 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:06:37 #17475 [Verbose] > │         let v95 : System.DateTime = v81.CreationTime                         │

00:06:37 #17476 [Verbose] > │         v95                                                                  │

00:06:37 #17477 [Verbose] > │         #endif                                                               │

00:06:37 #17478 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:06:37 #17479 [Verbose] > │         let v96 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:37 #17480 [Verbose] > │         v96                                                                  │

00:06:37 #17481 [Verbose] > │         #endif                                                               │

00:06:37 #17482 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:06:37 #17483 [Verbose] > │         let v97 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:37 #17484 [Verbose] > │         v97                                                                  │

00:06:37 #17485 [Verbose] > │         #endif                                                               │

00:06:37 #17486 [Verbose] > │         |> fun x -> _v91 <- Some x                                           │

00:06:37 #17487 [Verbose] > │         let v98 : System.DateTime = _v91 |> Option.get                       │

00:06:37 #17488 [Verbose] > │         let v99 : obj = {| Exists = v89; CreationTime = v98 |}               │

00:06:37 #17489 [Verbose] > │         let v100 : string = $"%A{v99}"                                       │

00:06:37 #17490 [Verbose] > │         let v101 : (unit -> string) = closure0(v72, v100)                    │

00:06:37 #17491 [Verbose] > │         let v102 : string = $"create_temp_directory / {v101 ()}"             │

00:06:37 #17492 [Verbose] > │         System.Console.WriteLine v102                                        │

00:06:37 #17493 [Verbose] > │         ()                                                                   │

00:06:37 #17494 [Verbose] > │     v72                                                                      │

00:06:37 #17495 [Verbose] > │     #endif                                                                   │

00:06:37 #17496 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17497 [Verbose] > │     let v103 : string = null |> unbox<string>                                │

00:06:37 #17498 [Verbose] > │     v103                                                                     │

00:06:37 #17499 [Verbose] > │     #endif                                                                   │

00:06:37 #17500 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17501 [Verbose] > │     let v104 : string = null |> unbox<string>                                │

00:06:37 #17502 [Verbose] > │     v104                                                                     │

00:06:37 #17503 [Verbose] > │     #endif                                                                   │

00:06:37 #17504 [Verbose] > │     |> fun x -> _v0 <- Some x                                                │

00:06:37 #17505 [Verbose] > │     let v105 : string = _v0 |> Option.get                                    │

00:06:37 #17506 [Verbose] > │     let v106 : bool option = None                                            │

00:06:37 #17507 [Verbose] > │     let mutable _v106 = v106                                                 │

00:06:37 #17508 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:37 #17509 [Verbose] > │     let v107 : string = method1(v105)                                        │

00:06:37 #17510 [Verbose] > │     let v108 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"   │

00:06:37 #17511 [Verbose] > │     let v109 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v107 v108      │

00:06:37 #17512 [Verbose] > │     let v110 : string = "String::from($0)"                                   │

00:06:37 #17513 [Verbose] > │     let v111 : std_string_String = Fable.Core.RustInterop.emitRustExpr v109  │

00:06:37 #17514 [Verbose] > │ v110                                                                         │

00:06:37 #17515 [Verbose] > │     let v112 : string = "std::path::PathBuf::from($0)"                       │

00:06:37 #17516 [Verbose] > │     let v113 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v111   │

00:06:37 #17517 [Verbose] > │ v112                                                                         │

00:06:37 #17518 [Verbose] > │     let v114 : string = "v113.exists()"                                      │

00:06:37 #17519 [Verbose] > │     let v115 : bool = Fable.Core.RustInterop.emitRustExpr () v114            │

00:06:37 #17520 [Verbose] > │     let v118 : bool =                                                        │

00:06:37 #17521 [Verbose] > │         if v115 then                                                         │

00:06:37 #17522 [Verbose] > │             let v116 : string = "v113.is_dir()"                              │

00:06:37 #17523 [Verbose] > │             let v117 : bool = Fable.Core.RustInterop.emitRustExpr () v116    │

00:06:37 #17524 [Verbose] > │             v117                                                             │

00:06:37 #17525 [Verbose] > │         else                                                                 │

00:06:37 #17526 [Verbose] > │             false                                                            │

00:06:37 #17527 [Verbose] > │     v118                                                                     │

00:06:37 #17528 [Verbose] > │     #endif                                                                   │

00:06:37 #17529 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:37 #17530 [Verbose] > │     let v119 : bool = null |> unbox<bool>                                    │

00:06:37 #17531 [Verbose] > │     v119                                                                     │

00:06:37 #17532 [Verbose] > │     #endif                                                                   │

00:06:37 #17533 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:37 #17534 [Verbose] > │     let v120 : bool = null |> unbox<bool>                                    │

00:06:37 #17535 [Verbose] > │     v120                                                                     │

00:06:37 #17536 [Verbose] > │     #endif                                                                   │

00:06:37 #17537 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:37 #17538 [Verbose] > │     let v121 : (string -> bool) = System.IO.Directory.Exists                 │

00:06:37 #17539 [Verbose] > │     let v122 : bool = v121 v105                                              │

00:06:37 #17540 [Verbose] > │     v122                                                                     │

00:06:37 #17541 [Verbose] > │     #endif                                                                   │

00:06:37 #17542 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:37 #17543 [Verbose] > │     let v123 : bool = null |> unbox<bool>                                    │

00:06:37 #17544 [Verbose] > │     v123                                                                     │

00:06:37 #17545 [Verbose] > │     #endif                                                                   │

00:06:37 #17546 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:37 #17547 [Verbose] > │     let v124 : bool = null |> unbox<bool>                                    │

00:06:37 #17548 [Verbose] > │     v124                                                                     │

00:06:37 #17549 [Verbose] > │     #endif                                                                   │

00:06:37 #17550 [Verbose] > │     |> fun x -> _v106 <- Some x                                              │

00:06:37 #17551 [Verbose] > │     let v125 : bool = _v106 |> Option.get                                    │

00:06:37 #17552 [Verbose] > │     let v126 : string = $"%A{v125}"                                          │

00:06:37 #17553 [Verbose] > │     System.Console.WriteLine v126                                            │

00:06:37 #17554 [Verbose] > │     let v128 : bool =                                                        │

00:06:37 #17555 [Verbose] > │         if v125 then                                                         │

00:06:37 #17556 [Verbose] > │             true                                                             │

00:06:37 #17557 [Verbose] > │         else                                                                 │

00:06:37 #17558 [Verbose] > │             method2(v125)                                                    │

00:06:37 #17559 [Verbose] > │     let v129 : string = $"__expect / actual: %A{v125} / expected: %A{true}"  │

00:06:37 #17560 [Verbose] > │     let v130 : bool = v128 = false                                           │

00:06:37 #17561 [Verbose] > │     if v130 then                                                             │

00:06:37 #17562 [Verbose] > │         failwith<unit> v129                                                  │

00:06:37 #17563 [Verbose] > │ method0()                                                                    │

00:06:37 #17564 [Verbose] > │                                                                              │

00:06:37 #17565 [Verbose] > │ true                                                                         │

00:06:37 #17566 [Verbose] > │                                                                              │

00:06:37 #17567 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:37 #17568 [Verbose] >

00:06:37 #17569 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:37 #17570 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:37 #17571 [Verbose] > │ ## get_source_directory                                                      │

00:06:37 #17572 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:37 #17573 [Verbose] >

00:06:37 #17574 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:37 #17575 [Verbose] > inl get_source_directory () =

00:06:37 #17576 [Verbose] >     $'__SOURCE_DIRECTORY__' : string

00:06:38 #17577 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1026-2666-2b41289faffb\main.spi

00:06:38 #17578 [Verbose] >

00:06:38 #17579 [Verbose] > ╭─[ 213.93ms - stdout ]────────────────────────────────────────────────────────╮

00:06:38 #17580 [Verbose] > │ ()                                                                           │

00:06:38 #17581 [Verbose] > │                                                                              │

00:06:38 #17582 [Verbose] > │                                                                              │

00:06:38 #17583 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:38 #17584 [Verbose] >

00:06:38 #17585 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:38 #17586 [Verbose] > // // test

00:06:38 #17587 [Verbose] >

00:06:38 #17588 [Verbose] > get_source_directory ()

00:06:38 #17589 [Verbose] > |> directory_info

00:06:38 #17590 [Verbose] > |> directory_info_name

00:06:38 #17591 [Verbose] > |> _assert_eq "spiral"

00:06:38 #17592 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1048-4810-460813c681eb\main.spi

00:06:38 #17593 [Verbose] >

00:06:38 #17594 [Verbose] > ╭─[ 366.05ms - stdout ]────────────────────────────────────────────────────────╮

00:06:38 #17595 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:06:38 #17596 [Verbose] > │     v0                                                                       │

00:06:38 #17597 [Verbose] > │ and method0 () : unit =                                                      │

00:06:38 #17598 [Verbose] > │     let v0 : string = __SOURCE_DIRECTORY__                                   │

00:06:38 #17599 [Verbose] > │     let v1 : (string -> System.IO.DirectoryInfo) = System.IO.DirectoryInfo   │

00:06:38 #17600 [Verbose] > │     let v2 : System.IO.DirectoryInfo = v1 v0                                 │

00:06:38 #17601 [Verbose] > │     let v3 : string option = None                                            │

00:06:38 #17602 [Verbose] > │     let mutable _v3 = v3                                                     │

00:06:38 #17603 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:38 #17604 [Verbose] > │     let v4 : string = null |> unbox<string>                                  │

00:06:38 #17605 [Verbose] > │     v4                                                                       │

00:06:38 #17606 [Verbose] > │     #endif                                                                   │

00:06:38 #17607 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:38 #17608 [Verbose] > │     let v5 : string = null |> unbox<string>                                  │

00:06:38 #17609 [Verbose] > │     v5                                                                       │

00:06:38 #17610 [Verbose] > │     #endif                                                                   │

00:06:38 #17611 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:38 #17612 [Verbose] > │     let v6 : string = null |> unbox<string>                                  │

00:06:38 #17613 [Verbose] > │     v6                                                                       │

00:06:38 #17614 [Verbose] > │     #endif                                                                   │

00:06:38 #17615 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:38 #17616 [Verbose] > │     let v7 : string = v2.Name                                                │

00:06:38 #17617 [Verbose] > │     v7                                                                       │

00:06:38 #17618 [Verbose] > │     #endif                                                                   │

00:06:38 #17619 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:38 #17620 [Verbose] > │     let v8 : string = null |> unbox<string>                                  │

00:06:38 #17621 [Verbose] > │     v8                                                                       │

00:06:38 #17622 [Verbose] > │     #endif                                                                   │

00:06:38 #17623 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:38 #17624 [Verbose] > │     let v9 : string = null |> unbox<string>                                  │

00:06:38 #17625 [Verbose] > │     v9                                                                       │

00:06:38 #17626 [Verbose] > │     #endif                                                                   │

00:06:38 #17627 [Verbose] > │     |> fun x -> _v3 <- Some x                                                │

00:06:38 #17628 [Verbose] > │     let v10 : string = _v3 |> Option.get                                     │

00:06:38 #17629 [Verbose] > │     let v11 : string = $"%A{v10}"                                            │

00:06:38 #17630 [Verbose] > │     System.Console.WriteLine v11                                             │

00:06:38 #17631 [Verbose] > │     let v13 : bool = v10 = "spiral"                                          │

00:06:38 #17632 [Verbose] > │     let v15 : bool =                                                         │

00:06:38 #17633 [Verbose] > │         if v13 then                                                          │

00:06:38 #17634 [Verbose] > │             true                                                             │

00:06:38 #17635 [Verbose] > │         else                                                                 │

00:06:38 #17636 [Verbose] > │             method1(v13)                                                     │

00:06:38 #17637 [Verbose] > │     let v16 : string = "spiral"                                              │

00:06:38 #17638 [Verbose] > │     let v17 : string = $"__expect / actual: %A{v10} / expected: %A{v16}"     │

00:06:38 #17639 [Verbose] > │     let v18 : bool = v15 = false                                             │

00:06:38 #17640 [Verbose] > │     if v18 then                                                              │

00:06:38 #17641 [Verbose] > │         failwith<unit> v17                                                   │

00:06:38 #17642 [Verbose] > │ method0()                                                                    │

00:06:38 #17643 [Verbose] > │                                                                              │

00:06:38 #17644 [Verbose] > │ "spiral"                                                                     │

00:06:38 #17645 [Verbose] > │                                                                              │

00:06:38 #17646 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:38 #17647 [Verbose] >

00:06:38 #17648 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:38 #17649 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:38 #17650 [Verbose] > │ ## find_parent                                                               │

00:06:38 #17651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:38 #17652 [Verbose] >

00:06:38 #17653 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:38 #17654 [Verbose] > inl find_parent name is_file root_dir =

00:06:38 #17655 [Verbose] >     let rec loop dir =

00:06:38 #17656 [Verbose] >         if dir </> name |> (if is_file then file_exists else directory_exists)

00:06:38 #17657 [Verbose] >         then dir

00:06:38 #17658 [Verbose] >         else

00:06:38 #17659 [Verbose] >             match dir |> (join directory_get_parent) |> optionm'.unbox with

00:06:38 #17660 [Verbose] >             | Some parent => parent |> loop

00:06:38 #17661 [Verbose] >             | None => failwith $'$"""No parent for {if !is_file then "file" else

00:06:38 #17662 [Verbose] > "dir"} \'{!name}\' at \'{!root_dir}\'"""'

00:06:38 #17663 [Verbose] >     loop root_dir

00:06:38 #17664 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1088-8837-8de08f7aca47\main.spi

00:06:38 #17665 [Verbose] >

00:06:38 #17666 [Verbose] > ╭─[ 223.25ms - stdout ]────────────────────────────────────────────────────────╮

00:06:38 #17667 [Verbose] > │ ()                                                                           │

00:06:38 #17668 [Verbose] > │                                                                              │

00:06:38 #17669 [Verbose] > │                                                                              │

00:06:38 #17670 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:38 #17671 [Verbose] >

00:06:38 #17672 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:38 #17673 [Verbose] > // // test

00:06:38 #17674 [Verbose] > // // print_code=false

00:06:38 #17675 [Verbose] >

00:06:38 #17676 [Verbose] > a ;[[ ".paket", false; "paket.dependencies", true ]]

00:06:38 #17677 [Verbose] > |> am.map fun (file, is_file) =>

00:06:38 #17678 [Verbose] >     get_source_directory ()

00:06:38 #17679 [Verbose] >     |> find_parent file is_file

00:06:38 #17680 [Verbose] >     |> directory_info

00:06:38 #17681 [Verbose] >     |> directory_info_name

00:06:38 #17682 [Verbose] > |> am'.distinct

00:06:38 #17683 [Verbose] > |> _assert_eq (a ;[[ "polyglot" ]] : _ i32 _)

00:06:38 #17684 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1111-1127-15bd6ca024e4\main.spi

00:06:39 #17685 [Verbose] >

00:06:39 #17686 [Verbose] > ╭─[ 676.95ms - stdout ]────────────────────────────────────────────────────────╮

00:06:39 #17687 [Verbose] > │ [|"polyglot"|]                                                               │

00:06:39 #17688 [Verbose] > │                                                                              │

00:06:39 #17689 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:39 #17690 [Verbose] >

00:06:39 #17691 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:39 #17692 [Verbose] > // // test

00:06:39 #17693 [Verbose] > // // rust=

00:06:39 #17694 [Verbose] > // // print_code=false

00:06:39 #17695 [Verbose] >

00:06:39 #17696 [Verbose] > types ()

00:06:39 #17697 [Verbose] > a ;[[ ".paket", false; "paket.dependencies", true ]]

00:06:39 #17698 [Verbose] > |> am.map fun (file, is_file) =>

00:06:39 #17699 [Verbose] >     fun () => join

00:06:39 #17700 [Verbose] >         get_source_directory ()

00:06:39 #17701 [Verbose] >         |> find_parent file is_file

00:06:39 #17702 [Verbose] >         |> new_path_buf

00:06:39 #17703 [Verbose] >         |> path_buf_file_name

00:06:39 #17704 [Verbose] >         |> optionm'.try'

00:06:39 #17705 [Verbose] >         |> sm'.to_os_string

00:06:39 #17706 [Verbose] >         |> sm'.os_to_str

00:06:39 #17707 [Verbose] >         |> optionm'.try'

00:06:39 #17708 [Verbose] >         |> sm'.ref_to_std_string

00:06:39 #17709 [Verbose] >         |> sm'.from_std_string

00:06:39 #17710 [Verbose] >         |> Some

00:06:39 #17711 [Verbose] >         |> optionm'.box

00:06:39 #17712 [Verbose] >     |> fun x => x () |> optionm'.unbox

00:06:39 #17713 [Verbose] >     |> optionm'.default_value ""

00:06:39 #17714 [Verbose] > |> am'.distinct

00:06:39 #17715 [Verbose] > |> fun result =>

00:06:39 #17716 [Verbose] >     result |> am'.length |> _assert_eq 1i32

00:06:39 #17717 [Verbose] >     index result 0i32 |> _assert_eq "polyglot"

00:06:39 #17718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-1179-7915-78c1a2c01914\main.spi

00:06:48 #17719 [Verbose] >

00:06:48 #17720 [Verbose] > ╭─[ 9.35s - return value ]─────────────────────────────────────────────────────╮

00:06:48 #17721 [Verbose] > │ 1                                                                            │

00:06:48 #17722 [Verbose] > │ "polyglot"                                                                   │

00:06:48 #17723 [Verbose] > │                                                                              │

00:06:48 #17724 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:48 #17725 [Verbose] >

00:06:48 #17726 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:48 #17727 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:48 #17728 [Verbose] > │ ## main                                                                      │

00:06:48 #17729 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:48 #17730 [Verbose] >

00:06:48 #17731 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:48 #17732 [Verbose] > inl main () =

00:06:48 #17733 [Verbose] >     types ()

00:06:48 #17734 [Verbose] >     $"let create_temp_directory_name () = !create_temp_directory_name ()" : ()

00:06:48 #17735 [Verbose] >     $"let create_temp_directory () = !create_temp_directory ()" : ()

00:06:48 #17736 [Verbose] >     $"let get_source_directory () = !get_source_directory ()" : ()

00:06:48 #17737 [Verbose] >     $"let find_parent x = !find_parent x" : ()

00:06:48 #17738 [Verbose] >     inl combine x = (</>) x

00:06:48 #17739 [Verbose] >     $"let (</>) x = !combine x" : ()

00:06:49 #17740 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-2116-1619-10d71519fca2\main.spi

00:06:49 #17741 [Verbose] >

00:06:49 #17742 [Verbose] > ╭─[ 537.26ms - stdout ]────────────────────────────────────────────────────────╮

00:06:49 #17743 [Verbose] > │ #if FABLE_COMPILER // file_system.types                                      │

00:06:49 #17744 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │

00:06:49 #17745 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │

00:06:49 #17746 [Verbose] > │ base64_DecodeError = class end                                               │

00:06:49 #17747 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │

00:06:49 #17748 [Verbose] > │ borsh_io_Error = class end                                                   │

00:06:49 #17749 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │

00:06:49 #17750 [Verbose] > │ js_sys_JsString = class end                                                  │

00:06:49 #17751 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │

00:06:49 #17752 [Verbose] > │ serde_json_Error = class end                                                 │

00:06:49 #17753 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │

00:06:49 #17754 [Verbose] > │ serde_json_Value = class end                                                 │

00:06:49 #17755 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │

00:06:49 #17756 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │

00:06:49 #17757 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr  │

00:06:49 #17758 [Verbose] > │ = class end                                                                  │

00:06:49 #17759 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type             │

00:06:49 #17760 [Verbose] > │ std_ffi_OsString = class end                                                 │

00:06:49 #17761 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │

00:06:49 #17762 [Verbose] > │ std_str_Utf8Error = class end                                                │

00:06:49 #17763 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │

00:06:49 #17764 [Verbose] > │ std_string_String = class end                                                │

00:06:49 #17765 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │

00:06:49 #17766 [Verbose] > │ end                                                                          │

00:06:49 #17767 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │

00:06:49 #17768 [Verbose] > │ class end                                                                    │

00:06:49 #17769 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │

00:06:49 #17770 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │

00:06:49 #17771 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │

00:06:49 #17772 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │

00:06:49 #17773 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │

00:06:49 #17774 [Verbose] > │ class end                                                                    │

00:06:49 #17775 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │

00:06:49 #17776 [Verbose] > │ class end                                                                    │

00:06:49 #17777 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │

00:06:49 #17778 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │

00:06:49 #17779 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │

00:06:49 #17780 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │

00:06:49 #17781 [Verbose] > │ class end                                                                    │

00:06:49 #17782 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │

00:06:49 #17783 [Verbose] > │ class end                                                                    │

00:06:49 #17784 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │

00:06:49 #17785 [Verbose] > │ class end                                                                    │

00:06:49 #17786 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │

00:06:49 #17787 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │

00:06:49 #17788 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │

00:06:49 #17789 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │

00:06:49 #17790 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │

00:06:49 #17791 [Verbose] > │ = class end                                                                  │

00:06:49 #17792 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │

00:06:49 #17793 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │

00:06:49 #17794 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │

00:06:49 #17795 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │

00:06:49 #17796 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::path::Path")>] type std_path_Path  │

00:06:49 #17797 [Verbose] > │ = class end                                                                  │

00:06:49 #17798 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::path::PathBuf")>] type             │

00:06:49 #17799 [Verbose] > │ std_path_PathBuf = class end                                                 │

00:06:49 #17800 [Verbose] > │ #endif // file_system.types                                                  │

00:06:49 #17801 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:06:49 #17802 [Verbose] > │     | US0_0 of f0_0 : string                                                 │

00:06:49 #17803 [Verbose] > │     | US0_1                                                                  │

00:06:49 #17804 [Verbose] > │ let rec method0 (v0 : string) : string =                                     │

00:06:49 #17805 [Verbose] > │     v0                                                                       │

00:06:49 #17806 [Verbose] > │ and closure0 () () : string =                                                │

00:06:49 #17807 [Verbose] > │     let v0 : string option = None                                            │

00:06:49 #17808 [Verbose] > │     let mutable _v0 = v0                                                     │

00:06:49 #17809 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #17810 [Verbose] > │     let v1 : string = null |> unbox<string>                                  │

00:06:49 #17811 [Verbose] > │     v1                                                                       │

00:06:49 #17812 [Verbose] > │     #endif                                                                   │

00:06:49 #17813 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #17814 [Verbose] > │     let v2 : string = null |> unbox<string>                                  │

00:06:49 #17815 [Verbose] > │     v2                                                                       │

00:06:49 #17816 [Verbose] > │     #endif                                                                   │

00:06:49 #17817 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #17818 [Verbose] > │     let v3 : string = null |> unbox<string>                                  │

00:06:49 #17819 [Verbose] > │     v3                                                                       │

00:06:49 #17820 [Verbose] > │     #endif                                                                   │

00:06:49 #17821 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #17822 [Verbose] > │     let v4 : string =                                                        │

00:06:49 #17823 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name                 │

00:06:49 #17824 [Verbose] > │     let v5 : (unit -> string) = System.IO.Path.GetTempPath                   │

00:06:49 #17825 [Verbose] > │     let v6 : string = v5 ()                                                  │

00:06:49 #17826 [Verbose] > │     let v7 : string = $"!{v4}"                                               │

00:06:49 #17827 [Verbose] > │     let v8 : string option = None                                            │

00:06:49 #17828 [Verbose] > │     let mutable _v8 = v8                                                     │

00:06:49 #17829 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #17830 [Verbose] > │     let v9 : string = method0(v6)                                            │

00:06:49 #17831 [Verbose] > │     let v10 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #17832 [Verbose] > │     let v11 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v9 v10          │

00:06:49 #17833 [Verbose] > │     let v12 : string = "String::from($0)"                                    │

00:06:49 #17834 [Verbose] > │     let v13 : std_string_String = Fable.Core.RustInterop.emitRustExpr v11    │

00:06:49 #17835 [Verbose] > │ v12                                                                          │

00:06:49 #17836 [Verbose] > │     let v14 : string = "std::path::PathBuf::from($0)"                        │

00:06:49 #17837 [Verbose] > │     let v15 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v13 v14 │

00:06:49 #17838 [Verbose] > │     let v16 : string = method0(v7)                                           │

00:06:49 #17839 [Verbose] > │     let v17 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #17840 [Verbose] > │     let v18 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v16 v17         │

00:06:49 #17841 [Verbose] > │     let v19 : string = "String::from($0)"                                    │

00:06:49 #17842 [Verbose] > │     let v20 : std_string_String = Fable.Core.RustInterop.emitRustExpr v18    │

00:06:49 #17843 [Verbose] > │ v19                                                                          │

00:06:49 #17844 [Verbose] > │     let v21 : string = "$0.join($1)"                                         │

00:06:49 #17845 [Verbose] > │     let v22 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #17846 [Verbose] > │ (v15, v20) v21                                                               │

00:06:49 #17847 [Verbose] > │     let v23 : string = "$0.display().to_string()"                            │

00:06:49 #17848 [Verbose] > │     let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22    │

00:06:49 #17849 [Verbose] > │ v23                                                                          │

00:06:49 #17850 [Verbose] > │     let v25 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #17851 [Verbose] > │     let v26 : string = Fable.Core.RustInterop.emitRustExpr v24 v25           │

00:06:49 #17852 [Verbose] > │     v26                                                                      │

00:06:49 #17853 [Verbose] > │     #endif                                                                   │

00:06:49 #17854 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #17855 [Verbose] > │     let v27 : string = null |> unbox<string>                                 │

00:06:49 #17856 [Verbose] > │     v27                                                                      │

00:06:49 #17857 [Verbose] > │     #endif                                                                   │

00:06:49 #17858 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #17859 [Verbose] > │     let v28 : string = null |> unbox<string>                                 │

00:06:49 #17860 [Verbose] > │     v28                                                                      │

00:06:49 #17861 [Verbose] > │     #endif                                                                   │

00:06:49 #17862 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #17863 [Verbose] > │     let v29 : string = System.IO.Path.Combine (v6, v7)                       │

00:06:49 #17864 [Verbose] > │     v29                                                                      │

00:06:49 #17865 [Verbose] > │     #endif                                                                   │

00:06:49 #17866 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #17867 [Verbose] > │     let v30 : string = null |> unbox<string>                                 │

00:06:49 #17868 [Verbose] > │     v30                                                                      │

00:06:49 #17869 [Verbose] > │     #endif                                                                   │

00:06:49 #17870 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #17871 [Verbose] > │     let v31 : string = null |> unbox<string>                                 │

00:06:49 #17872 [Verbose] > │     v31                                                                      │

00:06:49 #17873 [Verbose] > │     #endif                                                                   │

00:06:49 #17874 [Verbose] > │     |> fun x -> _v8 <- Some x                                                │

00:06:49 #17875 [Verbose] > │     let v32 : string = _v8 |> Option.get                                     │

00:06:49 #17876 [Verbose] > │     let v33 : System.DateTime = System.DateTime.Now                          │

00:06:49 #17877 [Verbose] > │     let v34 : System.Guid = System.Guid.NewGuid ()                           │

00:06:49 #17878 [Verbose] > │     let v35 : (System.Guid -> string) = _.ToString()                         │

00:06:49 #17879 [Verbose] > │     let v36 : string = v35 v34                                               │

00:06:49 #17880 [Verbose] > │     let v37 : string = v33.ToString "yyyyMMdd-HHmm-ssff-ffff-f"              │

00:06:49 #17881 [Verbose] > │     let v38 : System.Guid = System.Guid $"{v37}{v36.[v37.Length..]}"         │

00:06:49 #17882 [Verbose] > │     let v39 : (System.Guid -> string) = _.ToString()                         │

00:06:49 #17883 [Verbose] > │     let v40 : string = v39 v38                                               │

00:06:49 #17884 [Verbose] > │     let v41 : string option = None                                           │

00:06:49 #17885 [Verbose] > │     let mutable _v41 = v41                                                   │

00:06:49 #17886 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #17887 [Verbose] > │     let v42 : string = method0(v32)                                          │

00:06:49 #17888 [Verbose] > │     let v43 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #17889 [Verbose] > │     let v44 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v42 v43         │

00:06:49 #17890 [Verbose] > │     let v45 : string = "String::from($0)"                                    │

00:06:49 #17891 [Verbose] > │     let v46 : std_string_String = Fable.Core.RustInterop.emitRustExpr v44    │

00:06:49 #17892 [Verbose] > │ v45                                                                          │

00:06:49 #17893 [Verbose] > │     let v47 : string = "std::path::PathBuf::from($0)"                        │

00:06:49 #17894 [Verbose] > │     let v48 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v46 v47 │

00:06:49 #17895 [Verbose] > │     let v49 : string = method0(v40)                                          │

00:06:49 #17896 [Verbose] > │     let v50 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #17897 [Verbose] > │     let v51 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v49 v50         │

00:06:49 #17898 [Verbose] > │     let v52 : string = "String::from($0)"                                    │

00:06:49 #17899 [Verbose] > │     let v53 : std_string_String = Fable.Core.RustInterop.emitRustExpr v51    │

00:06:49 #17900 [Verbose] > │ v52                                                                          │

00:06:49 #17901 [Verbose] > │     let v54 : string = "$0.join($1)"                                         │

00:06:49 #17902 [Verbose] > │     let v55 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #17903 [Verbose] > │ (v48, v53) v54                                                               │

00:06:49 #17904 [Verbose] > │     let v56 : string = "$0.display().to_string()"                            │

00:06:49 #17905 [Verbose] > │     let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55    │

00:06:49 #17906 [Verbose] > │ v56                                                                          │

00:06:49 #17907 [Verbose] > │     let v58 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #17908 [Verbose] > │     let v59 : string = Fable.Core.RustInterop.emitRustExpr v57 v58           │

00:06:49 #17909 [Verbose] > │     v59                                                                      │

00:06:49 #17910 [Verbose] > │     #endif                                                                   │

00:06:49 #17911 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #17912 [Verbose] > │     let v60 : string = null |> unbox<string>                                 │

00:06:49 #17913 [Verbose] > │     v60                                                                      │

00:06:49 #17914 [Verbose] > │     #endif                                                                   │

00:06:49 #17915 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #17916 [Verbose] > │     let v61 : string = null |> unbox<string>                                 │

00:06:49 #17917 [Verbose] > │     v61                                                                      │

00:06:49 #17918 [Verbose] > │     #endif                                                                   │

00:06:49 #17919 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #17920 [Verbose] > │     let v62 : string = System.IO.Path.Combine (v32, v40)                     │

00:06:49 #17921 [Verbose] > │     v62                                                                      │

00:06:49 #17922 [Verbose] > │     #endif                                                                   │

00:06:49 #17923 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #17924 [Verbose] > │     let v63 : string = null |> unbox<string>                                 │

00:06:49 #17925 [Verbose] > │     v63                                                                      │

00:06:49 #17926 [Verbose] > │     #endif                                                                   │

00:06:49 #17927 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #17928 [Verbose] > │     let v64 : string = null |> unbox<string>                                 │

00:06:49 #17929 [Verbose] > │     v64                                                                      │

00:06:49 #17930 [Verbose] > │     #endif                                                                   │

00:06:49 #17931 [Verbose] > │     |> fun x -> _v41 <- Some x                                               │

00:06:49 #17932 [Verbose] > │     let v65 : string = _v41 |> Option.get                                    │

00:06:49 #17933 [Verbose] > │     v65                                                                      │

00:06:49 #17934 [Verbose] > │     #endif                                                                   │

00:06:49 #17935 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #17936 [Verbose] > │     let v66 : string = null |> unbox<string>                                 │

00:06:49 #17937 [Verbose] > │     v66                                                                      │

00:06:49 #17938 [Verbose] > │     #endif                                                                   │

00:06:49 #17939 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #17940 [Verbose] > │     let v67 : string = null |> unbox<string>                                 │

00:06:49 #17941 [Verbose] > │     v67                                                                      │

00:06:49 #17942 [Verbose] > │     #endif                                                                   │

00:06:49 #17943 [Verbose] > │     |> fun x -> _v0 <- Some x                                                │

00:06:49 #17944 [Verbose] > │     let v68 : string = _v0 |> Option.get                                     │

00:06:49 #17945 [Verbose] > │     v68                                                                      │

00:06:49 #17946 [Verbose] > │ and closure3 () () : string =                                                │

00:06:49 #17947 [Verbose] > │     let v0 : string = ""                                                     │

00:06:49 #17948 [Verbose] > │     v0                                                                       │

00:06:49 #17949 [Verbose] > │ and closure2 (v0 : string, v1 : string) () : string =                        │

00:06:49 #17950 [Verbose] > │     let v2 : (unit -> string) = closure3()                                   │

00:06:49 #17951 [Verbose] > │     let v3 : string = $"temp_folder: {v0} / result: {v1} {v2 ()}"            │

00:06:49 #17952 [Verbose] > │     v3                                                                       │

00:06:49 #17953 [Verbose] > │ and closure1 () () : string =                                                │

00:06:49 #17954 [Verbose] > │     let v0 : string option = None                                            │

00:06:49 #17955 [Verbose] > │     let mutable _v0 = v0                                                     │

00:06:49 #17956 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #17957 [Verbose] > │     let v1 : string = null |> unbox<string>                                  │

00:06:49 #17958 [Verbose] > │     v1                                                                       │

00:06:49 #17959 [Verbose] > │     #endif                                                                   │

00:06:49 #17960 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #17961 [Verbose] > │     let v2 : string = null |> unbox<string>                                  │

00:06:49 #17962 [Verbose] > │     v2                                                                       │

00:06:49 #17963 [Verbose] > │     #endif                                                                   │

00:06:49 #17964 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #17965 [Verbose] > │     let v3 : string = null |> unbox<string>                                  │

00:06:49 #17966 [Verbose] > │     v3                                                                       │

00:06:49 #17967 [Verbose] > │     #endif                                                                   │

00:06:49 #17968 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #17969 [Verbose] > │     let v4 : string option = None                                            │

00:06:49 #17970 [Verbose] > │     let mutable _v4 = v4                                                     │

00:06:49 #17971 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #17972 [Verbose] > │     let v5 : string = null |> unbox<string>                                  │

00:06:49 #17973 [Verbose] > │     v5                                                                       │

00:06:49 #17974 [Verbose] > │     #endif                                                                   │

00:06:49 #17975 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #17976 [Verbose] > │     let v6 : string = null |> unbox<string>                                  │

00:06:49 #17977 [Verbose] > │     v6                                                                       │

00:06:49 #17978 [Verbose] > │     #endif                                                                   │

00:06:49 #17979 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #17980 [Verbose] > │     let v7 : string = null |> unbox<string>                                  │

00:06:49 #17981 [Verbose] > │     v7                                                                       │

00:06:49 #17982 [Verbose] > │     #endif                                                                   │

00:06:49 #17983 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #17984 [Verbose] > │     let v8 : string =                                                        │

00:06:49 #17985 [Verbose] > │ System.Reflection.Assembly.GetEntryAssembly().GetName().Name                 │

00:06:49 #17986 [Verbose] > │     let v9 : (unit -> string) = System.IO.Path.GetTempPath                   │

00:06:49 #17987 [Verbose] > │     let v10 : string = v9 ()                                                 │

00:06:49 #17988 [Verbose] > │     let v11 : string = $"!{v8}"                                              │

00:06:49 #17989 [Verbose] > │     let v12 : string option = None                                           │

00:06:49 #17990 [Verbose] > │     let mutable _v12 = v12                                                   │

00:06:49 #17991 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #17992 [Verbose] > │     let v13 : string = method0(v10)                                          │

00:06:49 #17993 [Verbose] > │     let v14 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #17994 [Verbose] > │     let v15 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v13 v14         │

00:06:49 #17995 [Verbose] > │     let v16 : string = "String::from($0)"                                    │

00:06:49 #17996 [Verbose] > │     let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15    │

00:06:49 #17997 [Verbose] > │ v16                                                                          │

00:06:49 #17998 [Verbose] > │     let v18 : string = "std::path::PathBuf::from($0)"                        │

00:06:49 #17999 [Verbose] > │     let v19 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v17 v18 │

00:06:49 #18000 [Verbose] > │     let v20 : string = method0(v11)                                          │

00:06:49 #18001 [Verbose] > │     let v21 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #18002 [Verbose] > │     let v22 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v20 v21         │

00:06:49 #18003 [Verbose] > │     let v23 : string = "String::from($0)"                                    │

00:06:49 #18004 [Verbose] > │     let v24 : std_string_String = Fable.Core.RustInterop.emitRustExpr v22    │

00:06:49 #18005 [Verbose] > │ v23                                                                          │

00:06:49 #18006 [Verbose] > │     let v25 : string = "$0.join($1)"                                         │

00:06:49 #18007 [Verbose] > │     let v26 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #18008 [Verbose] > │ (v19, v24) v25                                                               │

00:06:49 #18009 [Verbose] > │     let v27 : string = "$0.display().to_string()"                            │

00:06:49 #18010 [Verbose] > │     let v28 : std_string_String = Fable.Core.RustInterop.emitRustExpr v26    │

00:06:49 #18011 [Verbose] > │ v27                                                                          │

00:06:49 #18012 [Verbose] > │     let v29 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #18013 [Verbose] > │     let v30 : string = Fable.Core.RustInterop.emitRustExpr v28 v29           │

00:06:49 #18014 [Verbose] > │     v30                                                                      │

00:06:49 #18015 [Verbose] > │     #endif                                                                   │

00:06:49 #18016 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18017 [Verbose] > │     let v31 : string = null |> unbox<string>                                 │

00:06:49 #18018 [Verbose] > │     v31                                                                      │

00:06:49 #18019 [Verbose] > │     #endif                                                                   │

00:06:49 #18020 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18021 [Verbose] > │     let v32 : string = null |> unbox<string>                                 │

00:06:49 #18022 [Verbose] > │     v32                                                                      │

00:06:49 #18023 [Verbose] > │     #endif                                                                   │

00:06:49 #18024 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18025 [Verbose] > │     let v33 : string = System.IO.Path.Combine (v10, v11)                     │

00:06:49 #18026 [Verbose] > │     v33                                                                      │

00:06:49 #18027 [Verbose] > │     #endif                                                                   │

00:06:49 #18028 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18029 [Verbose] > │     let v34 : string = null |> unbox<string>                                 │

00:06:49 #18030 [Verbose] > │     v34                                                                      │

00:06:49 #18031 [Verbose] > │     #endif                                                                   │

00:06:49 #18032 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18033 [Verbose] > │     let v35 : string = null |> unbox<string>                                 │

00:06:49 #18034 [Verbose] > │     v35                                                                      │

00:06:49 #18035 [Verbose] > │     #endif                                                                   │

00:06:49 #18036 [Verbose] > │     |> fun x -> _v12 <- Some x                                               │

00:06:49 #18037 [Verbose] > │     let v36 : string = _v12 |> Option.get                                    │

00:06:49 #18038 [Verbose] > │     let v37 : System.DateTime = System.DateTime.Now                          │

00:06:49 #18039 [Verbose] > │     let v38 : System.Guid = System.Guid.NewGuid ()                           │

00:06:49 #18040 [Verbose] > │     let v39 : (System.Guid -> string) = _.ToString()                         │

00:06:49 #18041 [Verbose] > │     let v40 : string = v39 v38                                               │

00:06:49 #18042 [Verbose] > │     let v41 : string = v37.ToString "yyyyMMdd-HHmm-ssff-ffff-f"              │

00:06:49 #18043 [Verbose] > │     let v42 : System.Guid = System.Guid $"{v41}{v40.[v41.Length..]}"         │

00:06:49 #18044 [Verbose] > │     let v43 : (System.Guid -> string) = _.ToString()                         │

00:06:49 #18045 [Verbose] > │     let v44 : string = v43 v42                                               │

00:06:49 #18046 [Verbose] > │     let v45 : string option = None                                           │

00:06:49 #18047 [Verbose] > │     let mutable _v45 = v45                                                   │

00:06:49 #18048 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18049 [Verbose] > │     let v46 : string = method0(v36)                                          │

00:06:49 #18050 [Verbose] > │     let v47 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #18051 [Verbose] > │     let v48 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v46 v47         │

00:06:49 #18052 [Verbose] > │     let v49 : string = "String::from($0)"                                    │

00:06:49 #18053 [Verbose] > │     let v50 : std_string_String = Fable.Core.RustInterop.emitRustExpr v48    │

00:06:49 #18054 [Verbose] > │ v49                                                                          │

00:06:49 #18055 [Verbose] > │     let v51 : string = "std::path::PathBuf::from($0)"                        │

00:06:49 #18056 [Verbose] > │     let v52 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v50 v51 │

00:06:49 #18057 [Verbose] > │     let v53 : string = method0(v44)                                          │

00:06:49 #18058 [Verbose] > │     let v54 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #18059 [Verbose] > │     let v55 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v54         │

00:06:49 #18060 [Verbose] > │     let v56 : string = "String::from($0)"                                    │

00:06:49 #18061 [Verbose] > │     let v57 : std_string_String = Fable.Core.RustInterop.emitRustExpr v55    │

00:06:49 #18062 [Verbose] > │ v56                                                                          │

00:06:49 #18063 [Verbose] > │     let v58 : string = "$0.join($1)"                                         │

00:06:49 #18064 [Verbose] > │     let v59 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #18065 [Verbose] > │ (v52, v57) v58                                                               │

00:06:49 #18066 [Verbose] > │     let v60 : string = "$0.display().to_string()"                            │

00:06:49 #18067 [Verbose] > │     let v61 : std_string_String = Fable.Core.RustInterop.emitRustExpr v59    │

00:06:49 #18068 [Verbose] > │ v60                                                                          │

00:06:49 #18069 [Verbose] > │     let v62 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #18070 [Verbose] > │     let v63 : string = Fable.Core.RustInterop.emitRustExpr v61 v62           │

00:06:49 #18071 [Verbose] > │     v63                                                                      │

00:06:49 #18072 [Verbose] > │     #endif                                                                   │

00:06:49 #18073 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18074 [Verbose] > │     let v64 : string = null |> unbox<string>                                 │

00:06:49 #18075 [Verbose] > │     v64                                                                      │

00:06:49 #18076 [Verbose] > │     #endif                                                                   │

00:06:49 #18077 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18078 [Verbose] > │     let v65 : string = null |> unbox<string>                                 │

00:06:49 #18079 [Verbose] > │     v65                                                                      │

00:06:49 #18080 [Verbose] > │     #endif                                                                   │

00:06:49 #18081 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18082 [Verbose] > │     let v66 : string = System.IO.Path.Combine (v36, v44)                     │

00:06:49 #18083 [Verbose] > │     v66                                                                      │

00:06:49 #18084 [Verbose] > │     #endif                                                                   │

00:06:49 #18085 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18086 [Verbose] > │     let v67 : string = null |> unbox<string>                                 │

00:06:49 #18087 [Verbose] > │     v67                                                                      │

00:06:49 #18088 [Verbose] > │     #endif                                                                   │

00:06:49 #18089 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18090 [Verbose] > │     let v68 : string = null |> unbox<string>                                 │

00:06:49 #18091 [Verbose] > │     v68                                                                      │

00:06:49 #18092 [Verbose] > │     #endif                                                                   │

00:06:49 #18093 [Verbose] > │     |> fun x -> _v45 <- Some x                                               │

00:06:49 #18094 [Verbose] > │     let v69 : string = _v45 |> Option.get                                    │

00:06:49 #18095 [Verbose] > │     v69                                                                      │

00:06:49 #18096 [Verbose] > │     #endif                                                                   │

00:06:49 #18097 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18098 [Verbose] > │     let v70 : string = null |> unbox<string>                                 │

00:06:49 #18099 [Verbose] > │     v70                                                                      │

00:06:49 #18100 [Verbose] > │     #endif                                                                   │

00:06:49 #18101 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18102 [Verbose] > │     let v71 : string = null |> unbox<string>                                 │

00:06:49 #18103 [Verbose] > │     v71                                                                      │

00:06:49 #18104 [Verbose] > │     #endif                                                                   │

00:06:49 #18105 [Verbose] > │     |> fun x -> _v4 <- Some x                                                │

00:06:49 #18106 [Verbose] > │     let v72 : string = _v4 |> Option.get                                     │

00:06:49 #18107 [Verbose] > │     let v73 : System.IO.DirectoryInfo option = None                          │

00:06:49 #18108 [Verbose] > │     let mutable _v73 = v73                                                   │

00:06:49 #18109 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18110 [Verbose] > │     let v74 : System.IO.DirectoryInfo = null |>                              │

00:06:49 #18111 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:49 #18112 [Verbose] > │     v74                                                                      │

00:06:49 #18113 [Verbose] > │     #endif                                                                   │

00:06:49 #18114 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18115 [Verbose] > │     let v75 : System.IO.DirectoryInfo = null |>                              │

00:06:49 #18116 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:49 #18117 [Verbose] > │     v75                                                                      │

00:06:49 #18118 [Verbose] > │     #endif                                                                   │

00:06:49 #18119 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18120 [Verbose] > │     let v76 : System.IO.DirectoryInfo = null |>                              │

00:06:49 #18121 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:49 #18122 [Verbose] > │     v76                                                                      │

00:06:49 #18123 [Verbose] > │     #endif                                                                   │

00:06:49 #18124 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18125 [Verbose] > │     let v77 : (string -> System.IO.DirectoryInfo) =                          │

00:06:49 #18126 [Verbose] > │ System.IO.Directory.CreateDirectory                                          │

00:06:49 #18127 [Verbose] > │     let v78 : System.IO.DirectoryInfo = v77 v72                              │

00:06:49 #18128 [Verbose] > │     v78                                                                      │

00:06:49 #18129 [Verbose] > │     #endif                                                                   │

00:06:49 #18130 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18131 [Verbose] > │     let v79 : System.IO.DirectoryInfo = null |>                              │

00:06:49 #18132 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:49 #18133 [Verbose] > │     v79                                                                      │

00:06:49 #18134 [Verbose] > │     #endif                                                                   │

00:06:49 #18135 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18136 [Verbose] > │     let v80 : System.IO.DirectoryInfo = null |>                              │

00:06:49 #18137 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:49 #18138 [Verbose] > │     v80                                                                      │

00:06:49 #18139 [Verbose] > │     #endif                                                                   │

00:06:49 #18140 [Verbose] > │     |> fun x -> _v73 <- Some x                                               │

00:06:49 #18141 [Verbose] > │     let v81 : System.IO.DirectoryInfo = _v73 |> Option.get                   │

00:06:49 #18142 [Verbose] > │     let v82 : bool option = None                                             │

00:06:49 #18143 [Verbose] > │     let mutable _v82 = v82                                                   │

00:06:49 #18144 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18145 [Verbose] > │     let v83 : bool = null |> unbox<bool>                                     │

00:06:49 #18146 [Verbose] > │     v83                                                                      │

00:06:49 #18147 [Verbose] > │     #endif                                                                   │

00:06:49 #18148 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18149 [Verbose] > │     let v84 : bool = null |> unbox<bool>                                     │

00:06:49 #18150 [Verbose] > │     v84                                                                      │

00:06:49 #18151 [Verbose] > │     #endif                                                                   │

00:06:49 #18152 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18153 [Verbose] > │     let v85 : bool = null |> unbox<bool>                                     │

00:06:49 #18154 [Verbose] > │     v85                                                                      │

00:06:49 #18155 [Verbose] > │     #endif                                                                   │

00:06:49 #18156 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18157 [Verbose] > │     let v86 : bool = v81.Exists                                              │

00:06:49 #18158 [Verbose] > │     v86                                                                      │

00:06:49 #18159 [Verbose] > │     #endif                                                                   │

00:06:49 #18160 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18161 [Verbose] > │     let v87 : bool = null |> unbox<bool>                                     │

00:06:49 #18162 [Verbose] > │     v87                                                                      │

00:06:49 #18163 [Verbose] > │     #endif                                                                   │

00:06:49 #18164 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18165 [Verbose] > │     let v88 : bool = null |> unbox<bool>                                     │

00:06:49 #18166 [Verbose] > │     v88                                                                      │

00:06:49 #18167 [Verbose] > │     #endif                                                                   │

00:06:49 #18168 [Verbose] > │     |> fun x -> _v82 <- Some x                                               │

00:06:49 #18169 [Verbose] > │     let v89 : bool = _v82 |> Option.get                                      │

00:06:49 #18170 [Verbose] > │     let v90 : bool = v89 = false                                             │

00:06:49 #18171 [Verbose] > │     if v90 then                                                              │

00:06:49 #18172 [Verbose] > │         let v91 : System.DateTime option = None                              │

00:06:49 #18173 [Verbose] > │         let mutable _v91 = v91                                               │

00:06:49 #18174 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:06:49 #18175 [Verbose] > │         let v92 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:49 #18176 [Verbose] > │         v92                                                                  │

00:06:49 #18177 [Verbose] > │         #endif                                                               │

00:06:49 #18178 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:06:49 #18179 [Verbose] > │         let v93 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:49 #18180 [Verbose] > │         v93                                                                  │

00:06:49 #18181 [Verbose] > │         #endif                                                               │

00:06:49 #18182 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:06:49 #18183 [Verbose] > │         let v94 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:49 #18184 [Verbose] > │         v94                                                                  │

00:06:49 #18185 [Verbose] > │         #endif                                                               │

00:06:49 #18186 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:06:49 #18187 [Verbose] > │         let v95 : System.DateTime = v81.CreationTime                         │

00:06:49 #18188 [Verbose] > │         v95                                                                  │

00:06:49 #18189 [Verbose] > │         #endif                                                               │

00:06:49 #18190 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:06:49 #18191 [Verbose] > │         let v96 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:49 #18192 [Verbose] > │         v96                                                                  │

00:06:49 #18193 [Verbose] > │         #endif                                                               │

00:06:49 #18194 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:06:49 #18195 [Verbose] > │         let v97 : System.DateTime = null |> unbox<System.DateTime>           │

00:06:49 #18196 [Verbose] > │         v97                                                                  │

00:06:49 #18197 [Verbose] > │         #endif                                                               │

00:06:49 #18198 [Verbose] > │         |> fun x -> _v91 <- Some x                                           │

00:06:49 #18199 [Verbose] > │         let v98 : System.DateTime = _v91 |> Option.get                       │

00:06:49 #18200 [Verbose] > │         let v99 : obj = {| Exists = v89; CreationTime = v98 |}               │

00:06:49 #18201 [Verbose] > │         let v100 : string = $"%A{v99}"                                       │

00:06:49 #18202 [Verbose] > │         let v101 : (unit -> string) = closure2(v72, v100)                    │

00:06:49 #18203 [Verbose] > │         let v102 : string = $"create_temp_directory / {v101 ()}"             │

00:06:49 #18204 [Verbose] > │         System.Console.WriteLine v102                                        │

00:06:49 #18205 [Verbose] > │         ()                                                                   │

00:06:49 #18206 [Verbose] > │     v72                                                                      │

00:06:49 #18207 [Verbose] > │     #endif                                                                   │

00:06:49 #18208 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18209 [Verbose] > │     let v103 : string = null |> unbox<string>                                │

00:06:49 #18210 [Verbose] > │     v103                                                                     │

00:06:49 #18211 [Verbose] > │     #endif                                                                   │

00:06:49 #18212 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18213 [Verbose] > │     let v104 : string = null |> unbox<string>                                │

00:06:49 #18214 [Verbose] > │     v104                                                                     │

00:06:49 #18215 [Verbose] > │     #endif                                                                   │

00:06:49 #18216 [Verbose] > │     |> fun x -> _v0 <- Some x                                                │

00:06:49 #18217 [Verbose] > │     let v105 : string = _v0 |> Option.get                                    │

00:06:49 #18218 [Verbose] > │     v105                                                                     │

00:06:49 #18219 [Verbose] > │ and closure4 () () : string =                                                │

00:06:49 #18220 [Verbose] > │     let v0 : string = __SOURCE_DIRECTORY__                                   │

00:06:49 #18221 [Verbose] > │     v0                                                                       │

00:06:49 #18222 [Verbose] > │ and closure8 () (v0 : string) : bool =                                       │

00:06:49 #18223 [Verbose] > │     let v1 : bool option = None                                              │

00:06:49 #18224 [Verbose] > │     let mutable _v1 = v1                                                     │

00:06:49 #18225 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18226 [Verbose] > │     let v2 : string = method0(v0)                                            │

00:06:49 #18227 [Verbose] > │     let v3 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:06:49 #18228 [Verbose] > │     let v4 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v2 v3            │

00:06:49 #18229 [Verbose] > │     let v5 : string = "String::from($0)"                                     │

00:06:49 #18230 [Verbose] > │     let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5   │

00:06:49 #18231 [Verbose] > │     let v7 : string = "std::path::PathBuf::from($0)"                         │

00:06:49 #18232 [Verbose] > │     let v8 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v6 v7    │

00:06:49 #18233 [Verbose] > │     let v9 : string = "v8.exists()"                                          │

00:06:49 #18234 [Verbose] > │     let v10 : bool = Fable.Core.RustInterop.emitRustExpr () v9               │

00:06:49 #18235 [Verbose] > │     let v13 : bool =                                                         │

00:06:49 #18236 [Verbose] > │         if v10 then                                                          │

00:06:49 #18237 [Verbose] > │             let v11 : string = "v8.is_file()"                                │

00:06:49 #18238 [Verbose] > │             let v12 : bool = Fable.Core.RustInterop.emitRustExpr () v11      │

00:06:49 #18239 [Verbose] > │             v12                                                              │

00:06:49 #18240 [Verbose] > │         else                                                                 │

00:06:49 #18241 [Verbose] > │             false                                                            │

00:06:49 #18242 [Verbose] > │     v13                                                                      │

00:06:49 #18243 [Verbose] > │     #endif                                                                   │

00:06:49 #18244 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18245 [Verbose] > │     let v14 : bool = null |> unbox<bool>                                     │

00:06:49 #18246 [Verbose] > │     v14                                                                      │

00:06:49 #18247 [Verbose] > │     #endif                                                                   │

00:06:49 #18248 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18249 [Verbose] > │     let v15 : bool = null |> unbox<bool>                                     │

00:06:49 #18250 [Verbose] > │     v15                                                                      │

00:06:49 #18251 [Verbose] > │     #endif                                                                   │

00:06:49 #18252 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18253 [Verbose] > │     let v16 : (string -> bool) = System.IO.File.Exists                       │

00:06:49 #18254 [Verbose] > │     let v17 : bool = v16 v0                                                  │

00:06:49 #18255 [Verbose] > │     v17                                                                      │

00:06:49 #18256 [Verbose] > │     #endif                                                                   │

00:06:49 #18257 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18258 [Verbose] > │     let v18 : bool = null |> unbox<bool>                                     │

00:06:49 #18259 [Verbose] > │     v18                                                                      │

00:06:49 #18260 [Verbose] > │     #endif                                                                   │

00:06:49 #18261 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18262 [Verbose] > │     let v19 : bool = null |> unbox<bool>                                     │

00:06:49 #18263 [Verbose] > │     v19                                                                      │

00:06:49 #18264 [Verbose] > │     #endif                                                                   │

00:06:49 #18265 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:06:49 #18266 [Verbose] > │     let v20 : bool = _v1 |> Option.get                                       │

00:06:49 #18267 [Verbose] > │     v20                                                                      │

00:06:49 #18268 [Verbose] > │ and closure9 () (v0 : string) : bool =                                       │

00:06:49 #18269 [Verbose] > │     let v1 : bool option = None                                              │

00:06:49 #18270 [Verbose] > │     let mutable _v1 = v1                                                     │

00:06:49 #18271 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18272 [Verbose] > │     let v2 : string = method0(v0)                                            │

00:06:49 #18273 [Verbose] > │     let v3 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:06:49 #18274 [Verbose] > │     let v4 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v2 v3            │

00:06:49 #18275 [Verbose] > │     let v5 : string = "String::from($0)"                                     │

00:06:49 #18276 [Verbose] > │     let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5   │

00:06:49 #18277 [Verbose] > │     let v7 : string = "std::path::PathBuf::from($0)"                         │

00:06:49 #18278 [Verbose] > │     let v8 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v6 v7    │

00:06:49 #18279 [Verbose] > │     let v9 : string = "v8.exists()"                                          │

00:06:49 #18280 [Verbose] > │     let v10 : bool = Fable.Core.RustInterop.emitRustExpr () v9               │

00:06:49 #18281 [Verbose] > │     let v13 : bool =                                                         │

00:06:49 #18282 [Verbose] > │         if v10 then                                                          │

00:06:49 #18283 [Verbose] > │             let v11 : string = "v8.is_dir()"                                 │

00:06:49 #18284 [Verbose] > │             let v12 : bool = Fable.Core.RustInterop.emitRustExpr () v11      │

00:06:49 #18285 [Verbose] > │             v12                                                              │

00:06:49 #18286 [Verbose] > │         else                                                                 │

00:06:49 #18287 [Verbose] > │             false                                                            │

00:06:49 #18288 [Verbose] > │     v13                                                                      │

00:06:49 #18289 [Verbose] > │     #endif                                                                   │

00:06:49 #18290 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18291 [Verbose] > │     let v14 : bool = null |> unbox<bool>                                     │

00:06:49 #18292 [Verbose] > │     v14                                                                      │

00:06:49 #18293 [Verbose] > │     #endif                                                                   │

00:06:49 #18294 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18295 [Verbose] > │     let v15 : bool = null |> unbox<bool>                                     │

00:06:49 #18296 [Verbose] > │     v15                                                                      │

00:06:49 #18297 [Verbose] > │     #endif                                                                   │

00:06:49 #18298 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18299 [Verbose] > │     let v16 : (string -> bool) = System.IO.Directory.Exists                  │

00:06:49 #18300 [Verbose] > │     let v17 : bool = v16 v0                                                  │

00:06:49 #18301 [Verbose] > │     v17                                                                      │

00:06:49 #18302 [Verbose] > │     #endif                                                                   │

00:06:49 #18303 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18304 [Verbose] > │     let v18 : bool = null |> unbox<bool>                                     │

00:06:49 #18305 [Verbose] > │     v18                                                                      │

00:06:49 #18306 [Verbose] > │     #endif                                                                   │

00:06:49 #18307 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18308 [Verbose] > │     let v19 : bool = null |> unbox<bool>                                     │

00:06:49 #18309 [Verbose] > │     v19                                                                      │

00:06:49 #18310 [Verbose] > │     #endif                                                                   │

00:06:49 #18311 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:06:49 #18312 [Verbose] > │     let v20 : bool = _v1 |> Option.get                                       │

00:06:49 #18313 [Verbose] > │     v20                                                                      │

00:06:49 #18314 [Verbose] > │ and closure10 () (v0 : string) : string option =                             │

00:06:49 #18315 [Verbose] > │     let v1 : US0 option = None                                               │

00:06:49 #18316 [Verbose] > │     let mutable _v1 = v1                                                     │

00:06:49 #18317 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18318 [Verbose] > │     let v2 : string = method0(v0)                                            │

00:06:49 #18319 [Verbose] > │     let v3 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:06:49 #18320 [Verbose] > │     let v4 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v2 v3            │

00:06:49 #18321 [Verbose] > │     let v5 : string = "String::from($0)"                                     │

00:06:49 #18322 [Verbose] > │     let v6 : std_string_String = Fable.Core.RustInterop.emitRustExpr v4 v5   │

00:06:49 #18323 [Verbose] > │     let v7 : string = "std::path::PathBuf::from($0)"                         │

00:06:49 #18324 [Verbose] > │     let v8 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v6 v7    │

00:06:49 #18325 [Verbose] > │     let v9 : string = "$0.parent().map(std::path::PathBuf::from)"            │

00:06:49 #18326 [Verbose] > │     let v10 : std_path_PathBuf option = Fable.Core.RustInterop.emitRustExpr  │

00:06:49 #18327 [Verbose] > │ v8 v9                                                                        │

00:06:49 #18328 [Verbose] > │     let v11 : string = "v10?"                                                │

00:06:49 #18329 [Verbose] > │     let v12 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr () v11  │

00:06:49 #18330 [Verbose] > │     let v13 : string = "$0.display().to_string()"                            │

00:06:49 #18331 [Verbose] > │     let v14 : std_string_String = Fable.Core.RustInterop.emitRustExpr v12    │

00:06:49 #18332 [Verbose] > │ v13                                                                          │

00:06:49 #18333 [Verbose] > │     let v15 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #18334 [Verbose] > │     let v16 : string = Fable.Core.RustInterop.emitRustExpr v14 v15           │

00:06:49 #18335 [Verbose] > │     let v17 : US0 = US0_0(v16)                                               │

00:06:49 #18336 [Verbose] > │     v17                                                                      │

00:06:49 #18337 [Verbose] > │     #endif                                                                   │

00:06:49 #18338 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18339 [Verbose] > │     let v18 : US0 = null |> unbox<US0>                                       │

00:06:49 #18340 [Verbose] > │     v18                                                                      │

00:06:49 #18341 [Verbose] > │     #endif                                                                   │

00:06:49 #18342 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18343 [Verbose] > │     let v19 : US0 = null |> unbox<US0>                                       │

00:06:49 #18344 [Verbose] > │     v19                                                                      │

00:06:49 #18345 [Verbose] > │     #endif                                                                   │

00:06:49 #18346 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18347 [Verbose] > │     let v20 : (string -> System.IO.DirectoryInfo) =                          │

00:06:49 #18348 [Verbose] > │ System.IO.Directory.GetParent                                                │

00:06:49 #18349 [Verbose] > │     let v21 : System.IO.DirectoryInfo = v20 v0                               │

00:06:49 #18350 [Verbose] > │     let v22 : System.IO.DirectoryInfo = null |>                              │

00:06:49 #18351 [Verbose] > │ unbox<System.IO.DirectoryInfo>                                               │

00:06:49 #18352 [Verbose] > │     let v23 : bool = v21 = v22                                               │

00:06:49 #18353 [Verbose] > │     let v34 : US0 =                                                          │

00:06:49 #18354 [Verbose] > │         if v23 then                                                          │

00:06:49 #18355 [Verbose] > │             US0_1                                                            │

00:06:49 #18356 [Verbose] > │         else                                                                 │

00:06:49 #18357 [Verbose] > │             let v25 : string option = None                                   │

00:06:49 #18358 [Verbose] > │             let mutable _v25 = v25                                           │

00:06:49 #18359 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:06:49 #18360 [Verbose] > │             let v26 : string = null |> unbox<string>                         │

00:06:49 #18361 [Verbose] > │             v26                                                              │

00:06:49 #18362 [Verbose] > │             #endif                                                           │

00:06:49 #18363 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:06:49 #18364 [Verbose] > │             let v27 : string = null |> unbox<string>                         │

00:06:49 #18365 [Verbose] > │             v27                                                              │

00:06:49 #18366 [Verbose] > │             #endif                                                           │

00:06:49 #18367 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:06:49 #18368 [Verbose] > │             let v28 : string = null |> unbox<string>                         │

00:06:49 #18369 [Verbose] > │             v28                                                              │

00:06:49 #18370 [Verbose] > │             #endif                                                           │

00:06:49 #18371 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:06:49 #18372 [Verbose] > │             let v29 : string = v21.FullName                                  │

00:06:49 #18373 [Verbose] > │             v29                                                              │

00:06:49 #18374 [Verbose] > │             #endif                                                           │

00:06:49 #18375 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:06:49 #18376 [Verbose] > │             let v30 : string = null |> unbox<string>                         │

00:06:49 #18377 [Verbose] > │             v30                                                              │

00:06:49 #18378 [Verbose] > │             #endif                                                           │

00:06:49 #18379 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:06:49 #18380 [Verbose] > │             let v31 : string = null |> unbox<string>                         │

00:06:49 #18381 [Verbose] > │             v31                                                              │

00:06:49 #18382 [Verbose] > │             #endif                                                           │

00:06:49 #18383 [Verbose] > │             |> fun x -> _v25 <- Some x                                       │

00:06:49 #18384 [Verbose] > │             let v32 : string = _v25 |> Option.get                            │

00:06:49 #18385 [Verbose] > │             US0_0(v32)                                                       │

00:06:49 #18386 [Verbose] > │     v34                                                                      │

00:06:49 #18387 [Verbose] > │     #endif                                                                   │

00:06:49 #18388 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18389 [Verbose] > │     let v35 : US0 = null |> unbox<US0>                                       │

00:06:49 #18390 [Verbose] > │     v35                                                                      │

00:06:49 #18391 [Verbose] > │     #endif                                                                   │

00:06:49 #18392 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18393 [Verbose] > │     let v36 : US0 = null |> unbox<US0>                                       │

00:06:49 #18394 [Verbose] > │     v36                                                                      │

00:06:49 #18395 [Verbose] > │     #endif                                                                   │

00:06:49 #18396 [Verbose] > │     |> fun x -> _v1 <- Some x                                                │

00:06:49 #18397 [Verbose] > │     let v37 : US0 = _v1 |> Option.get                                        │

00:06:49 #18398 [Verbose] > │     match v37 with                                                           │

00:06:49 #18399 [Verbose] > │     | US0_1 -> (* None *)                                                    │

00:06:49 #18400 [Verbose] > │         let v40 : string option = None                                       │

00:06:49 #18401 [Verbose] > │         v40                                                                  │

00:06:49 #18402 [Verbose] > │     | US0_0(v38) -> (* Some *)                                               │

00:06:49 #18403 [Verbose] > │         let v39 : string option = Some v38                                   │

00:06:49 #18404 [Verbose] > │         v39                                                                  │

00:06:49 #18405 [Verbose] > │ and method2 () : (string -> string option) =                                 │

00:06:49 #18406 [Verbose] > │     closure10()                                                              │

00:06:49 #18407 [Verbose] > │ and closure11 () (v0 : string) : US0 =                                       │

00:06:49 #18408 [Verbose] > │     US0_0(v0)                                                                │

00:06:49 #18409 [Verbose] > │ and method3 () : (string -> US0) =                                           │

00:06:49 #18410 [Verbose] > │     closure11()                                                              │

00:06:49 #18411 [Verbose] > │ and method4 (v0 : string, v1 : bool, v2 : string, v3 : string) : string =    │

00:06:49 #18412 [Verbose] > │     let v4 : string option = None                                            │

00:06:49 #18413 [Verbose] > │     let mutable _v4 = v4                                                     │

00:06:49 #18414 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18415 [Verbose] > │     let v5 : string = method0(v3)                                            │

00:06:49 #18416 [Verbose] > │     let v6 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:06:49 #18417 [Verbose] > │     let v7 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v5 v6            │

00:06:49 #18418 [Verbose] > │     let v8 : string = "String::from($0)"                                     │

00:06:49 #18419 [Verbose] > │     let v9 : std_string_String = Fable.Core.RustInterop.emitRustExpr v7 v8   │

00:06:49 #18420 [Verbose] > │     let v10 : string = "std::path::PathBuf::from($0)"                        │

00:06:49 #18421 [Verbose] > │     let v11 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v9 v10  │

00:06:49 #18422 [Verbose] > │     let v12 : string = method0(v0)                                           │

00:06:49 #18423 [Verbose] > │     let v13 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #18424 [Verbose] > │     let v14 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v12 v13         │

00:06:49 #18425 [Verbose] > │     let v15 : string = "String::from($0)"                                    │

00:06:49 #18426 [Verbose] > │     let v16 : std_string_String = Fable.Core.RustInterop.emitRustExpr v14    │

00:06:49 #18427 [Verbose] > │ v15                                                                          │

00:06:49 #18428 [Verbose] > │     let v17 : string = "$0.join($1)"                                         │

00:06:49 #18429 [Verbose] > │     let v18 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #18430 [Verbose] > │ (v11, v16) v17                                                               │

00:06:49 #18431 [Verbose] > │     let v19 : string = "$0.display().to_string()"                            │

00:06:49 #18432 [Verbose] > │     let v20 : std_string_String = Fable.Core.RustInterop.emitRustExpr v18    │

00:06:49 #18433 [Verbose] > │ v19                                                                          │

00:06:49 #18434 [Verbose] > │     let v21 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #18435 [Verbose] > │     let v22 : string = Fable.Core.RustInterop.emitRustExpr v20 v21           │

00:06:49 #18436 [Verbose] > │     v22                                                                      │

00:06:49 #18437 [Verbose] > │     #endif                                                                   │

00:06:49 #18438 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18439 [Verbose] > │     let v23 : string = null |> unbox<string>                                 │

00:06:49 #18440 [Verbose] > │     v23                                                                      │

00:06:49 #18441 [Verbose] > │     #endif                                                                   │

00:06:49 #18442 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18443 [Verbose] > │     let v24 : string = null |> unbox<string>                                 │

00:06:49 #18444 [Verbose] > │     v24                                                                      │

00:06:49 #18445 [Verbose] > │     #endif                                                                   │

00:06:49 #18446 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18447 [Verbose] > │     let v25 : string = System.IO.Path.Combine (v3, v0)                       │

00:06:49 #18448 [Verbose] > │     v25                                                                      │

00:06:49 #18449 [Verbose] > │     #endif                                                                   │

00:06:49 #18450 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18451 [Verbose] > │     let v26 : string = null |> unbox<string>                                 │

00:06:49 #18452 [Verbose] > │     v26                                                                      │

00:06:49 #18453 [Verbose] > │     #endif                                                                   │

00:06:49 #18454 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18455 [Verbose] > │     let v27 : string = null |> unbox<string>                                 │

00:06:49 #18456 [Verbose] > │     v27                                                                      │

00:06:49 #18457 [Verbose] > │     #endif                                                                   │

00:06:49 #18458 [Verbose] > │     |> fun x -> _v4 <- Some x                                                │

00:06:49 #18459 [Verbose] > │     let v28 : string = _v4 |> Option.get                                     │

00:06:49 #18460 [Verbose] > │     let v31 : (string -> bool) =                                             │

00:06:49 #18461 [Verbose] > │         if v1 then                                                           │

00:06:49 #18462 [Verbose] > │             closure8()                                                       │

00:06:49 #18463 [Verbose] > │         else                                                                 │

00:06:49 #18464 [Verbose] > │             closure9()                                                       │

00:06:49 #18465 [Verbose] > │     let v32 : bool = v31 v28                                                 │

00:06:49 #18466 [Verbose] > │     if v32 then                                                              │

00:06:49 #18467 [Verbose] > │         v3                                                                   │

00:06:49 #18468 [Verbose] > │     else                                                                     │

00:06:49 #18469 [Verbose] > │         let v33 : (string -> string option) = method2()                      │

00:06:49 #18470 [Verbose] > │         let v34 : string option = v33 v3                                     │

00:06:49 #18471 [Verbose] > │         let v35 : (string -> US0) = method3()                                │

00:06:49 #18472 [Verbose] > │         let v36 : US0 = US0_1                                                │

00:06:49 #18473 [Verbose] > │         let v37 : US0 = v34 |> Option.map v35 |> Option.defaultValue v36     │

00:06:49 #18474 [Verbose] > │         match v37 with                                                       │

00:06:49 #18475 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:06:49 #18476 [Verbose] > │             let v40 : string = $"""No parent for {if v1 then "file" else     │

00:06:49 #18477 [Verbose] > │ "dir"} '{v0}' at '{v2}'"""                                                   │

00:06:49 #18478 [Verbose] > │             failwith<string> v40                                             │

00:06:49 #18479 [Verbose] > │         | US0_0(v38) -> (* Some *)                                           │

00:06:49 #18480 [Verbose] > │             method4(v0, v1, v2, v38)                                         │

00:06:49 #18481 [Verbose] > │ and method1 (v0 : string, v1 : bool, v2 : string) : string =                 │

00:06:49 #18482 [Verbose] > │     let v3 : string option = None                                            │

00:06:49 #18483 [Verbose] > │     let mutable _v3 = v3                                                     │

00:06:49 #18484 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18485 [Verbose] > │     let v4 : string = method0(v2)                                            │

00:06:49 #18486 [Verbose] > │     let v5 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:06:49 #18487 [Verbose] > │     let v6 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v4 v5            │

00:06:49 #18488 [Verbose] > │     let v7 : string = "String::from($0)"                                     │

00:06:49 #18489 [Verbose] > │     let v8 : std_string_String = Fable.Core.RustInterop.emitRustExpr v6 v7   │

00:06:49 #18490 [Verbose] > │     let v9 : string = "std::path::PathBuf::from($0)"                         │

00:06:49 #18491 [Verbose] > │     let v10 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v8 v9   │

00:06:49 #18492 [Verbose] > │     let v11 : string = method0(v0)                                           │

00:06:49 #18493 [Verbose] > │     let v12 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #18494 [Verbose] > │     let v13 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v11 v12         │

00:06:49 #18495 [Verbose] > │     let v14 : string = "String::from($0)"                                    │

00:06:49 #18496 [Verbose] > │     let v15 : std_string_String = Fable.Core.RustInterop.emitRustExpr v13    │

00:06:49 #18497 [Verbose] > │ v14                                                                          │

00:06:49 #18498 [Verbose] > │     let v16 : string = "$0.join($1)"                                         │

00:06:49 #18499 [Verbose] > │     let v17 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #18500 [Verbose] > │ (v10, v15) v16                                                               │

00:06:49 #18501 [Verbose] > │     let v18 : string = "$0.display().to_string()"                            │

00:06:49 #18502 [Verbose] > │     let v19 : std_string_String = Fable.Core.RustInterop.emitRustExpr v17    │

00:06:49 #18503 [Verbose] > │ v18                                                                          │

00:06:49 #18504 [Verbose] > │     let v20 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #18505 [Verbose] > │     let v21 : string = Fable.Core.RustInterop.emitRustExpr v19 v20           │

00:06:49 #18506 [Verbose] > │     v21                                                                      │

00:06:49 #18507 [Verbose] > │     #endif                                                                   │

00:06:49 #18508 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18509 [Verbose] > │     let v22 : string = null |> unbox<string>                                 │

00:06:49 #18510 [Verbose] > │     v22                                                                      │

00:06:49 #18511 [Verbose] > │     #endif                                                                   │

00:06:49 #18512 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18513 [Verbose] > │     let v23 : string = null |> unbox<string>                                 │

00:06:49 #18514 [Verbose] > │     v23                                                                      │

00:06:49 #18515 [Verbose] > │     #endif                                                                   │

00:06:49 #18516 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18517 [Verbose] > │     let v24 : string = System.IO.Path.Combine (v2, v0)                       │

00:06:49 #18518 [Verbose] > │     v24                                                                      │

00:06:49 #18519 [Verbose] > │     #endif                                                                   │

00:06:49 #18520 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18521 [Verbose] > │     let v25 : string = null |> unbox<string>                                 │

00:06:49 #18522 [Verbose] > │     v25                                                                      │

00:06:49 #18523 [Verbose] > │     #endif                                                                   │

00:06:49 #18524 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18525 [Verbose] > │     let v26 : string = null |> unbox<string>                                 │

00:06:49 #18526 [Verbose] > │     v26                                                                      │

00:06:49 #18527 [Verbose] > │     #endif                                                                   │

00:06:49 #18528 [Verbose] > │     |> fun x -> _v3 <- Some x                                                │

00:06:49 #18529 [Verbose] > │     let v27 : string = _v3 |> Option.get                                     │

00:06:49 #18530 [Verbose] > │     let v30 : (string -> bool) =                                             │

00:06:49 #18531 [Verbose] > │         if v1 then                                                           │

00:06:49 #18532 [Verbose] > │             closure8()                                                       │

00:06:49 #18533 [Verbose] > │         else                                                                 │

00:06:49 #18534 [Verbose] > │             closure9()                                                       │

00:06:49 #18535 [Verbose] > │     let v31 : bool = v30 v27                                                 │

00:06:49 #18536 [Verbose] > │     if v31 then                                                              │

00:06:49 #18537 [Verbose] > │         v2                                                                   │

00:06:49 #18538 [Verbose] > │     else                                                                     │

00:06:49 #18539 [Verbose] > │         let v32 : (string -> string option) = method2()                      │

00:06:49 #18540 [Verbose] > │         let v33 : string option = v32 v2                                     │

00:06:49 #18541 [Verbose] > │         let v34 : (string -> US0) = method3()                                │

00:06:49 #18542 [Verbose] > │         let v35 : US0 = US0_1                                                │

00:06:49 #18543 [Verbose] > │         let v36 : US0 = v33 |> Option.map v34 |> Option.defaultValue v35     │

00:06:49 #18544 [Verbose] > │         match v36 with                                                       │

00:06:49 #18545 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:06:49 #18546 [Verbose] > │             let v39 : string = $"""No parent for {if v1 then "file" else     │

00:06:49 #18547 [Verbose] > │ "dir"} '{v0}' at '{v2}'"""                                                   │

00:06:49 #18548 [Verbose] > │             failwith<string> v39                                             │

00:06:49 #18549 [Verbose] > │         | US0_0(v37) -> (* Some *)                                           │

00:06:49 #18550 [Verbose] > │             method4(v0, v1, v2, v37)                                         │

00:06:49 #18551 [Verbose] > │ and closure7 (v0 : string, v1 : bool) (v2 : string) : string =               │

00:06:49 #18552 [Verbose] > │     method1(v0, v1, v2)                                                      │

00:06:49 #18553 [Verbose] > │ and closure6 (v0 : string) (v1 : bool) : (string -> string) =                │

00:06:49 #18554 [Verbose] > │     closure7(v0, v1)                                                         │

00:06:49 #18555 [Verbose] > │ and closure5 () (v0 : string) : (bool -> (string -> string)) =               │

00:06:49 #18556 [Verbose] > │     closure6(v0)                                                             │

00:06:49 #18557 [Verbose] > │ and closure13 (v0 : string) (v1 : string) : string =                         │

00:06:49 #18558 [Verbose] > │     let v2 : string option = None                                            │

00:06:49 #18559 [Verbose] > │     let mutable _v2 = v2                                                     │

00:06:49 #18560 [Verbose] > │     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                            │

00:06:49 #18561 [Verbose] > │     let v3 : string = method0(v0)                                            │

00:06:49 #18562 [Verbose] > │     let v4 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"     │

00:06:49 #18563 [Verbose] > │     let v5 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v3 v4            │

00:06:49 #18564 [Verbose] > │     let v6 : string = "String::from($0)"                                     │

00:06:49 #18565 [Verbose] > │     let v7 : std_string_String = Fable.Core.RustInterop.emitRustExpr v5 v6   │

00:06:49 #18566 [Verbose] > │     let v8 : string = "std::path::PathBuf::from($0)"                         │

00:06:49 #18567 [Verbose] > │     let v9 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr v7 v8    │

00:06:49 #18568 [Verbose] > │     let v10 : string = method0(v1)                                           │

00:06:49 #18569 [Verbose] > │     let v11 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:06:49 #18570 [Verbose] > │     let v12 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v10 v11         │

00:06:49 #18571 [Verbose] > │     let v13 : string = "String::from($0)"                                    │

00:06:49 #18572 [Verbose] > │     let v14 : std_string_String = Fable.Core.RustInterop.emitRustExpr v12    │

00:06:49 #18573 [Verbose] > │ v13                                                                          │

00:06:49 #18574 [Verbose] > │     let v15 : string = "$0.join($1)"                                         │

00:06:49 #18575 [Verbose] > │     let v16 : std_path_PathBuf = Fable.Core.RustInterop.emitRustExpr struct  │

00:06:49 #18576 [Verbose] > │ (v9, v14) v15                                                                │

00:06:49 #18577 [Verbose] > │     let v17 : string = "$0.display().to_string()"                            │

00:06:49 #18578 [Verbose] > │     let v18 : std_string_String = Fable.Core.RustInterop.emitRustExpr v16    │

00:06:49 #18579 [Verbose] > │ v17                                                                          │

00:06:49 #18580 [Verbose] > │     let v19 : string = "fable_library_rust::String_::fromString($0)"         │

00:06:49 #18581 [Verbose] > │     let v20 : string = Fable.Core.RustInterop.emitRustExpr v18 v19           │

00:06:49 #18582 [Verbose] > │     v20                                                                      │

00:06:49 #18583 [Verbose] > │     #endif                                                                   │

00:06:49 #18584 [Verbose] > │     #if FABLE_COMPILER_RUST && WASM                                          │

00:06:49 #18585 [Verbose] > │     let v21 : string = null |> unbox<string>                                 │

00:06:49 #18586 [Verbose] > │     v21                                                                      │

00:06:49 #18587 [Verbose] > │     #endif                                                                   │

00:06:49 #18588 [Verbose] > │     #if FABLE_COMPILER_RUST && CONTRACT                                      │

00:06:49 #18589 [Verbose] > │     let v22 : string = null |> unbox<string>                                 │

00:06:49 #18590 [Verbose] > │     v22                                                                      │

00:06:49 #18591 [Verbose] > │     #endif                                                                   │

00:06:49 #18592 [Verbose] > │     #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                     │

00:06:49 #18593 [Verbose] > │     let v23 : string = System.IO.Path.Combine (v0, v1)                       │

00:06:49 #18594 [Verbose] > │     v23                                                                      │

00:06:49 #18595 [Verbose] > │     #endif                                                                   │

00:06:49 #18596 [Verbose] > │     #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                      │

00:06:49 #18597 [Verbose] > │     let v24 : string = null |> unbox<string>                                 │

00:06:49 #18598 [Verbose] > │     v24                                                                      │

00:06:49 #18599 [Verbose] > │     #endif                                                                   │

00:06:49 #18600 [Verbose] > │     #if !FABLE_COMPILER_RUST && WASM                                         │

00:06:49 #18601 [Verbose] > │     let v25 : string = null |> unbox<string>                                 │

00:06:49 #18602 [Verbose] > │     v25                                                                      │

00:06:49 #18603 [Verbose] > │     #endif                                                                   │

00:06:49 #18604 [Verbose] > │     |> fun x -> _v2 <- Some x                                                │

00:06:49 #18605 [Verbose] > │     let v26 : string = _v2 |> Option.get                                     │

00:06:49 #18606 [Verbose] > │     v26                                                                      │

00:06:49 #18607 [Verbose] > │ and closure12 () (v0 : string) : (string -> string) =                        │

00:06:49 #18608 [Verbose] > │     closure13(v0)                                                            │

00:06:49 #18609 [Verbose] > │ let v0 : (unit -> string) = closure0()                                       │

00:06:49 #18610 [Verbose] > │ let create_temp_directory_name () = v0 ()                                    │

00:06:49 #18611 [Verbose] > │ let v1 : (unit -> string) = closure1()                                       │

00:06:49 #18612 [Verbose] > │ let create_temp_directory () = v1 ()                                         │

00:06:49 #18613 [Verbose] > │ let v2 : (unit -> string) = closure4()                                       │

00:06:49 #18614 [Verbose] > │ let get_source_directory () = v2 ()                                          │

00:06:49 #18615 [Verbose] > │ let v3 : (string -> (bool -> (string -> string))) = closure5()               │

00:06:49 #18616 [Verbose] > │ let find_parent x = v3 x                                                     │

00:06:49 #18617 [Verbose] > │ let v4 : (string -> (string -> string)) = closure12()                        │

00:06:49 #18618 [Verbose] > │ let (</>) x = v4 x                                                           │

00:06:49 #18619 [Verbose] > │ ()                                                                           │

00:06:49 #18620 [Verbose] > │                                                                              │

00:06:49 #18621 [Verbose] > │                                                                              │

00:06:49 #18622 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:52 #18623 [Verbose] > [NbConvertApp] Converting notebook file_system.dib.ipynb to html

00:06:52 #18624 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:06:52 #18625 [Verbose] >   validate(nb)

00:06:53 #18626 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:06:53 #18627 [Verbose] >   return _pygments_highlight(

00:06:53 #18628 [Verbose] > [NbConvertApp] Writing 407654 bytes to file_system.dib.html

00:06:54 #18629 [Debug] executeAsync / exitCode: 0 / output.Length: 152044

00:06:54 #18630 [Debug] main / executeCommand / exitCode: 0

00:06:54 #18631 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 rust.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:06:57 #18632 [Verbose] >

00:06:58 #18633 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:06:58 #18634 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:06:58 #18635 [Verbose] > │ # rust                                                                       │

00:06:58 #18636 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:06:58 #18637 [Verbose] >

00:06:58 #18638 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:06:58 #18639 [Verbose] > // // test

00:06:58 #18640 [Verbose] >

00:06:58 #18641 [Verbose] > open testing

00:07:01 #18642 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3310-1089-1ecc18ab2e2d\main.spi

00:07:02 #18643 [Verbose] >

00:07:02 #18644 [Verbose] > ╭─[ 4.92s - stdout ]───────────────────────────────────────────────────────────╮

00:07:02 #18645 [Verbose] > │ ()                                                                           │

00:07:02 #18646 [Verbose] > │                                                                              │

00:07:02 #18647 [Verbose] > │                                                                              │

00:07:02 #18648 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:02 #18649 [Verbose] >

00:07:02 #18650 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:02 #18651 [Verbose] > inl types () =

00:07:02 #18652 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func0<$0>\")>]] type

00:07:02 #18653 [Verbose] > Func0<'T> = class end"

00:07:02 #18654 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Func1<$0, $1>\")>]] type

00:07:02 #18655 [Verbose] > Func0<'T, 'U> = class end"

00:07:02 #18656 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Box<$0>\")>]] type Box<'T> =

00:07:02 #18657 [Verbose] > class end"

00:07:02 #18658 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"dyn $0\")>]] type Dyn<'T> =

00:07:02 #18659 [Verbose] > class end"

00:07:02 #18660 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn() -> $0\")>]] type Fn<'T>

00:07:02 #18661 [Verbose] > = class end"

00:07:02 #18662 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn()\")>]] type FnUnit =

00:07:02 #18663 [Verbose] > class end"

00:07:02 #18664 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"FnOnce() -> $0\")>]] type

00:07:02 #18665 [Verbose] > FnOnce<'T> = class end"

00:07:02 #18666 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn($0, $1)\")>]] type

00:07:02 #18667 [Verbose] > ActionFn2<'T, 'U> = class end"

00:07:02 #18668 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"impl $0\")>]] type Impl<'T> =

00:07:02 #18669 [Verbose] > class end"

00:07:02 #18670 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"mut $0\")>]] type Mut<'T> =

00:07:02 #18671 [Verbose] > class end"

00:07:02 #18672 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =

00:07:02 #18673 [Verbose] > class end"

00:07:02 #18674 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&'static $0\")>]] type

00:07:02 #18675 [Verbose] > StaticRef<'T> = class end"

00:07:02 #18676 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"MutCell<$0>\")>]] type

00:07:02 #18677 [Verbose] > MutCell<'T> = class end"

00:07:02 #18678 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::any::Any\")>]] type

00:07:02 #18679 [Verbose] > std_any_Any = class end"

00:07:02 #18680 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::cell::RefCell<$0>\")>]]

00:07:02 #18681 [Verbose] > type std_cell_RefCell<'T> = class end"

00:07:02 #18682 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::pin::Pin<$0>\")>]] type

00:07:02 #18683 [Verbose] > std_pin_Pin<'T> = class end"

00:07:02 #18684 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Rc<$0>\")>]] type

00:07:02 #18685 [Verbose] > std_rc_Rc<'T> = class end"

00:07:02 #18686 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::rc::Weak<$0>\")>]] type

00:07:02 #18687 [Verbose] > std_rc_Weak<'T> = class end"

00:07:02 #18688 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::sync::Arc<$0>\")>]] type

00:07:02 #18689 [Verbose] > std_sync_Arc<'T> = class end"

00:07:03 #18690 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3526-2657-2d9d683b0b0b\main.spi

00:07:03 #18691 [Verbose] >

00:07:03 #18692 [Verbose] > ╭─[ 232.85ms - stdout ]────────────────────────────────────────────────────────╮

00:07:03 #18693 [Verbose] > │ ()                                                                           │

00:07:03 #18694 [Verbose] > │                                                                              │

00:07:03 #18695 [Verbose] > │                                                                              │

00:07:03 #18696 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:03 #18697 [Verbose] >

00:07:03 #18698 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:03 #18699 [Verbose] > nominal ref_cell t = $"std_cell_RefCell<`t>"

00:07:03 #18700 [Verbose] > nominal rc t = $"std_rc_Rc<`t>"

00:07:03 #18701 [Verbose] > nominal weak_rc t = $"std_rc_Weak<`t>"

00:07:03 #18702 [Verbose] > nominal box t = $"Box<`t>"

00:07:03 #18703 [Verbose] > nominal mut_cell t = $"MutCell<`t>"

00:07:03 #18704 [Verbose] > nominal pin t = $"std_pin_Pin<`t>"

00:07:03 #18705 [Verbose] > nominal arc t = $"std_sync_Arc<`t>"

00:07:03 #18706 [Verbose] > nominal dyn' t = $"Dyn<`t>"

00:07:03 #18707 [Verbose] > nominal fn' t = $"Fn<`t>"

00:07:03 #18708 [Verbose] > nominal action_fn2 t u = $"ActionFn2<`t, `u>"

00:07:03 #18709 [Verbose] > nominal fn_once t = $"FnOnce<`t>"

00:07:03 #18710 [Verbose] > nominal fn_unit = $"FnUnit"

00:07:03 #18711 [Verbose] > nominal func0 t = $"Func0<`t>"

00:07:03 #18712 [Verbose] > nominal func1 t u = $"Func0<`t, `u>"

00:07:03 #18713 [Verbose] > nominal impl t = $"Impl<`t>"

00:07:03 #18714 [Verbose] > nominal mut' t = $"Mut<`t>"

00:07:03 #18715 [Verbose] > nominal ref' t = $"Ref<`t>"

00:07:03 #18716 [Verbose] > nominal static_ref' t = $"StaticRef<`t>"

00:07:03 #18717 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3549-4950-4d6cf5c8b536\main.spi

00:07:03 #18718 [Verbose] >

00:07:03 #18719 [Verbose] > ╭─[ 235.18ms - stdout ]────────────────────────────────────────────────────────╮

00:07:03 #18720 [Verbose] > │ ()                                                                           │

00:07:03 #18721 [Verbose] > │                                                                              │

00:07:03 #18722 [Verbose] > │                                                                              │

00:07:03 #18723 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:03 #18724 [Verbose] >

00:07:03 #18725 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:03 #18726 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:03 #18727 [Verbose] > │ ## emit_expr                                                                 │

00:07:03 #18728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:03 #18729 [Verbose] >

00:07:03 #18730 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:03 #18731 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =

00:07:03 #18732 [Verbose] >     real

00:07:03 #18733 [Verbose] >         $"Fable.Core.RustInterop.emitRustExpr !args !code" : t

00:07:03 #18734 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3573-7346-72ba37567196\main.spi

00:07:03 #18735 [Verbose] >

00:07:03 #18736 [Verbose] > ╭─[ 194.40ms - stdout ]────────────────────────────────────────────────────────╮

00:07:03 #18737 [Verbose] > │ ()                                                                           │

00:07:03 #18738 [Verbose] > │                                                                              │

00:07:03 #18739 [Verbose] > │                                                                              │

00:07:03 #18740 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:03 #18741 [Verbose] >

00:07:03 #18742 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:03 #18743 [Verbose] > inl (~!\) forall t. (code : string) : t =

00:07:03 #18744 [Verbose] >     emit_expr () code

00:07:03 #18745 [Verbose] >

00:07:03 #18746 [Verbose] > inl (~!\\) forall t u. ((args : t), (code : string)) : u =

00:07:03 #18747 [Verbose] >     emit_expr args code

00:07:03 #18748 [Verbose] >

00:07:03 #18749 [Verbose] > inl emit forall t. (x : t) : t =

00:07:03 #18750 [Verbose] >     !\\(x, $'"$0"')

00:07:03 #18751 [Verbose] >

00:07:03 #18752 [Verbose] > inl emit' forall t. (x : t) : t =

00:07:03 #18753 [Verbose] >     !\\(x, $'"let !x = $0"')

00:07:03 #18754 [Verbose] >     x

00:07:03 #18755 [Verbose] >

00:07:03 #18756 [Verbose] > inl new_box forall t. (x : t) : box t =

00:07:03 #18757 [Verbose] >     inl x = join x

00:07:03 #18758 [Verbose] >     !\($'"Box::new(!x)"')

00:07:03 #18759 [Verbose] >

00:07:03 #18760 [Verbose] > inl new_rc forall t. (x : t) : rc t =

00:07:03 #18761 [Verbose] >     inl x = join x

00:07:03 #18762 [Verbose] >     !\($'"std::rc::Rc::new(!x)"')

00:07:03 #18763 [Verbose] >

00:07:03 #18764 [Verbose] > inl rc_clone forall t. (x : rc t) : rc t =

00:07:03 #18765 [Verbose] >     inl x = join x

00:07:03 #18766 [Verbose] >     !\($'"std::rc::Rc::clone(&!x)"')

00:07:03 #18767 [Verbose] >

00:07:03 #18768 [Verbose] > inl rc_downgrade forall t. (x : rc t) : weak_rc t =

00:07:03 #18769 [Verbose] >     inl x = join x

00:07:03 #18770 [Verbose] >     !\($'"std::rc::Rc::downgrade(&!x)"')

00:07:03 #18771 [Verbose] >

00:07:03 #18772 [Verbose] > inl new_ref_cell forall t. (x : t) : ref_cell t =

00:07:03 #18773 [Verbose] >     inl x = join x

00:07:03 #18774 [Verbose] >     !\($'"std::cell::RefCell::new(!x)"')

00:07:03 #18775 [Verbose] >

00:07:03 #18776 [Verbose] > inl ref_cell_borrow forall t. (x : rc (ref_cell t)) : t =

00:07:03 #18777 [Verbose] >     inl x = join x

00:07:03 #18778 [Verbose] >     !\($'"*std::cell::RefCell::borrow(&std::rc::Rc::clone(&!x))"')

00:07:03 #18779 [Verbose] >

00:07:03 #18780 [Verbose] > inl ref_cell_borrow_mut forall t. (x : rc (ref_cell t)) : mut' t =

00:07:03 #18781 [Verbose] >     inl x = join x

00:07:03 #18782 [Verbose] >     !\($'"*std::cell::RefCell::borrow_mut(&std::rc::Rc::clone(&!x))"')

00:07:03 #18783 [Verbose] >

00:07:03 #18784 [Verbose] > inl to_mut forall t. (x : t) : mut' t =

00:07:03 #18785 [Verbose] >     // !\($'"let mut !x = !x"')

00:07:03 #18786 [Verbose] >     // !\($'"!x"')

00:07:03 #18787 [Verbose] >     emit_expr () $"\"let mut !x = !x\""

00:07:03 #18788 [Verbose] >     emit_expr () $"\"!x\""

00:07:03 #18789 [Verbose] >

00:07:03 #18790 [Verbose] > inl ref_map forall t u. (fn : t -> u) (x : ref' t) : ref' u =

00:07:03 #18791 [Verbose] >     !\($'"!fn(!x)"')

00:07:03 #18792 [Verbose] >

00:07:03 #18793 [Verbose] > inl from_mut forall t. (x : mut' t) : t =

00:07:03 #18794 [Verbose] >     !\($'"!x"')

00:07:03 #18795 [Verbose] >

00:07:03 #18796 [Verbose] > inl new_arc forall t. (x : t) : arc t =

00:07:03 #18797 [Verbose] >     inl x = join x

00:07:03 #18798 [Verbose] >     !\($'"std::sync::Arc::new(!x)"')

00:07:03 #18799 [Verbose] >

00:07:03 #18800 [Verbose] > inl box_fn forall t. (x : () -> ()) : box t =

00:07:03 #18801 [Verbose] >     inl x = join x

00:07:03 #18802 [Verbose] >     !\($'"Box::new(move || !x())"')

00:07:03 #18803 [Verbose] >

00:07:03 #18804 [Verbose] > inl new_pin forall t. (x : t) : pin (box t) =

00:07:03 #18805 [Verbose] >     inl x = join x

00:07:03 #18806 [Verbose] >     !\($'"Box::pin(!x)"')

00:07:03 #18807 [Verbose] >

00:07:03 #18808 [Verbose] > inl deref forall t. (ref : ref' t) : t =

00:07:03 #18809 [Verbose] >     inl ref = join ref

00:07:03 #18810 [Verbose] >     !\($'"*!ref"')

00:07:03 #18811 [Verbose] >

00:07:03 #18812 [Verbose] > inl ops_deref forall t. (ref : t) : t =

00:07:03 #18813 [Verbose] >     inl ref = join ref

00:07:03 #18814 [Verbose] >     !\($'"core::ops::Deref::deref(&!ref)"')

00:07:03 #18815 [Verbose] >

00:07:03 #18816 [Verbose] > inl func0_get forall t. (x : func0 t) : t =

00:07:03 #18817 [Verbose] >     inl x = join x

00:07:03 #18818 [Verbose] >     !\($'"!x()"')

00:07:03 #18819 [Verbose] >

00:07:03 #18820 [Verbose] > inl func0_move forall t. (fn : func0 t) : t =

00:07:03 #18821 [Verbose] >     inl fn = join fn

00:07:03 #18822 [Verbose] >     !\($'"(move || !fn())()"')

00:07:03 #18823 [Verbose] >

00:07:03 #18824 [Verbose] > inl move forall t. (fn : () -> t) : func0 t =

00:07:03 #18825 [Verbose] >     !\\(fn, $'"Func0::new(move || $0())"')

00:07:03 #18826 [Verbose] >

00:07:03 #18827 [Verbose] > inl to_static_ref_unbox forall t. (x : ref' t) : static_ref' t =

00:07:03 #18828 [Verbose] >     $"!x |> unbox"

00:07:03 #18829 [Verbose] >

00:07:03 #18830 [Verbose] > inl from_static_ref_unbox forall t. (x : static_ref' t) : ref' t =

00:07:03 #18831 [Verbose] >     $"!x |> unbox"

00:07:03 #18832 [Verbose] >

00:07:03 #18833 [Verbose] > inl box_leak forall t. (x : box t) : static_ref' (mut' t) =

00:07:03 #18834 [Verbose] >     emit_expr () $"\"Box::leak(!x)\""

00:07:03 #18835 [Verbose] >

00:07:03 #18836 [Verbose] >

00:07:03 #18837 [Verbose] > inl fix_closure depth' x' =

00:07:03 #18838 [Verbose] >     inl depth = depth' |> fst

00:07:03 #18839 [Verbose] >     if depth = 1

00:07:03 #18840 [Verbose] >     then !\($'"!x' })"')

00:07:03 #18841 [Verbose] >     elif depth = 2

00:07:03 #18842 [Verbose] >     then !\($'"!x' }})"')

00:07:03 #18843 [Verbose] >     elif depth = 3

00:07:03 #18844 [Verbose] >     then !\($'"!x' }}})"')

00:07:03 #18845 [Verbose] >     elif depth = 4

00:07:03 #18846 [Verbose] >     then !\($'"!x' }}}})"')

00:07:03 #18847 [Verbose] >     elif depth = 5

00:07:03 #18848 [Verbose] >     then !\($'"!x' }}}}})"')

00:07:03 #18849 [Verbose] >     elif depth = 6 // , 4) // ?

00:07:03 #18850 [Verbose] >     then !\($'"!x' }}}}}})"')

00:07:03 #18851 [Verbose] >     elif depth = 7 // , 5) // 7

00:07:03 #18852 [Verbose] >     then !\($'"!x' }}}}}}})"')

00:07:03 #18853 [Verbose] >     elif depth = 8 // , 5) // 7

00:07:03 #18854 [Verbose] >     then !\($'"!x' }}}}}}}})"')

00:07:03 #18855 [Verbose] >

00:07:03 #18856 [Verbose] >     inl depth = depth' |> snd

00:07:03 #18857 [Verbose] >     if depth = 1

00:07:03 #18858 [Verbose] >     then !\($'"{ //"')

00:07:03 #18859 [Verbose] >     elif depth = 2

00:07:03 #18860 [Verbose] >     then !\($'"{{ //"')

00:07:03 #18861 [Verbose] >     elif depth = 3

00:07:03 #18862 [Verbose] >     then !\($'"{{{ //"')

00:07:03 #18863 [Verbose] >     elif depth = 4

00:07:03 #18864 [Verbose] >     then !\($'"{{{{ //"')

00:07:03 #18865 [Verbose] >     elif depth = 5

00:07:03 #18866 [Verbose] >     then !\($'"{{{{{ //"')

00:07:03 #18867 [Verbose] >     elif depth = 6

00:07:03 #18868 [Verbose] >     then !\($'"{{{{{{ //"')

00:07:03 #18869 [Verbose] >     elif depth = 7

00:07:03 #18870 [Verbose] >     then !\($'"{{{{{{{ //"')

00:07:03 #18871 [Verbose] >     elif depth = 8

00:07:03 #18872 [Verbose] >     then !\($'"{{{{{{{{ //"')

00:07:03 #18873 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-3593-9331-9249cf34615c\main.spi

00:07:03 #18874 [Verbose] >

00:07:03 #18875 [Verbose] > ╭─[ 218.36ms - stdout ]────────────────────────────────────────────────────────╮

00:07:03 #18876 [Verbose] > │ ()                                                                           │

00:07:03 #18877 [Verbose] > │                                                                              │

00:07:03 #18878 [Verbose] > │                                                                              │

00:07:03 #18879 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:06 #18880 [Verbose] > [NbConvertApp] Converting notebook rust.dib.ipynb to html

00:07:06 #18881 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:07:06 #18882 [Verbose] >   validate(nb)

00:07:06 #18883 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:07:06 #18884 [Verbose] >   return _pygments_highlight(

00:07:07 #18885 [Verbose] > [NbConvertApp] Writing 305573 bytes to rust.dib.html

00:07:08 #18886 [Debug] executeAsync / exitCode: 0 / output.Length: 9782

00:07:08 #18887 [Debug] main / executeCommand / exitCode: 0

00:07:08 #18888 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 physics.dib" -Retries 3"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:07:11 #18889 [Verbose] >

00:07:11 #18890 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:11 #18891 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:11 #18892 [Verbose] > │ # physics                                                                    │

00:07:11 #18893 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:11 #18894 [Verbose] >

00:07:11 #18895 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:07:11 #18896 [Verbose] > #!import ../../lib/fsharp/Plotting.dib

00:07:11 #18897 [Verbose] >

00:07:11 #18898 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:11 #18899 [Verbose] > #r

00:07:11 #18900 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:07:11 #18901 [Verbose] > spNetCore.Html.Abstractions.dll"

00:07:11 #18902 [Verbose] > #r

00:07:11 #18903 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:07:11 #18904 [Verbose] > otNet.Interactive.dll"

00:07:11 #18905 [Verbose] > #r

00:07:11 #18906 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:07:11 #18907 [Verbose] > otNet.Interactive.FSharp.dll"

00:07:11 #18908 [Verbose] > #r

00:07:11 #18909 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:07:11 #18910 [Verbose] > otNet.Interactive.Formatting.dll"

00:07:11 #18911 [Verbose] > open System

00:07:11 #18912 [Verbose] > open System.IO

00:07:11 #18913 [Verbose] > open System.Text

00:07:11 #18914 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:07:15 #18915 [Verbose] >

00:07:15 #18916 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:15 #18917 [Verbose] > #r

00:07:15 #18918 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:07:15 #18919 [Verbose] > otNet.Interactive.FSharp.dll"

00:07:15 #18920 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:07:15 #18921 [Verbose] > #r

00:07:15 #18922 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:07:15 #18923 [Verbose] > otNet.Interactive.dll"

00:07:15 #18924 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:07:16 #18925 [Verbose] >

00:07:16 #18926 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:16 #18927 [Verbose] > //// test

00:07:16 #18928 [Verbose] >

00:07:16 #18929 [Verbose] > Formatter.ListExpansionLimit <- 100

00:07:16 #18930 [Verbose] >

00:07:16 #18931 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:16 #18932 [Verbose] > #r

00:07:16 #18933 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

00:07:16 #18934 [Verbose] > dard2.1/FSharp.Control.AsyncSeq.dll"

00:07:16 #18935 [Verbose] > #r

00:07:16 #18936 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

00:07:16 #18937 [Verbose] > 0/System.Reactive.dll"

00:07:16 #18938 [Verbose] > #r

00:07:16 #18939 [Verbose] > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib

00:07:16 #18940 [Verbose] > netstandard2.0/System.Reactive.Linq.dll"

00:07:16 #18941 [Verbose] > #r

00:07:16 #18942 [Verbose] > @"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

00:07:16 #18943 [Verbose] > #r

00:07:16 #18944 [Verbose] > @"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

00:07:16 #18945 [Verbose] > b/net6.0/System.CommandLine.dll"

00:07:16 #18946 [Verbose] > #r

00:07:16 #18947 [Verbose] > @"../../../../../../../.nuget/packages/fsharp.json/0.4.1/lib/netstandard2.0/FSha

00:07:16 #18948 [Verbose] > rp.Json.dll"

00:07:16 #18949 [Verbose] >

00:07:16 #18950 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:16 #18951 [Verbose] > type [[<Struct>]] US0 =

00:07:16 #18952 [Verbose] >     | US0_0

00:07:16 #18953 [Verbose] >     | US0_1

00:07:16 #18954 [Verbose] >     | US0_2

00:07:16 #18955 [Verbose] >     | US0_3

00:07:16 #18956 [Verbose] > and [[<Struct>]] US1 =

00:07:16 #18957 [Verbose] >     | US1_0 of f0_0 : US0

00:07:16 #18958 [Verbose] >     | US1_1 of f1_0 : US0

00:07:16 #18959 [Verbose] > and [[<Struct>]] US2 =

00:07:16 #18960 [Verbose] >     | US2_0

00:07:16 #18961 [Verbose] >     | US2_1

00:07:16 #18962 [Verbose] > and [[<Struct>]] US3 =

00:07:16 #18963 [Verbose] >     | US3_0 of f0_0 : US2

00:07:16 #18964 [Verbose] >     | US3_1

00:07:16 #18965 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:07:16 #18966 [Verbose] >     let v1 : System.IDisposable option = None

00:07:16 #18967 [Verbose] >     let mutable _v1 = v1

00:07:16 #18968 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:07:16 #18969 [Verbose] >     let v2 : US0 = US0_0

00:07:16 #18970 [Verbose] >     let v3 : US1 = US1_0(v2)

00:07:16 #18971 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:07:16 #18972 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:07:16 #18973 [Verbose] >     v5

00:07:16 #18974 [Verbose] >     #endif

00:07:16 #18975 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:07:16 #18976 [Verbose] >     let v6 : US0 = US0_2

00:07:16 #18977 [Verbose] >     let v7 : US1 = US1_0(v6)

00:07:16 #18978 [Verbose] >     let v8 : string = $"new_dispos...

00:07:18 #18979 [Verbose] >

00:07:18 #18980 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:18 #18981 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:07:18 #18982 [Verbose] > and Mut1 = {mutable l0 : int32}

00:07:18 #18983 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:07:18 #18984 [Verbose] >     let v2 : bool = v1.Contains v0

00:07:18 #18985 [Verbose] >     v2

00:07:18 #18986 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:07:18 #18987 [Verbose] >     closure1(v0)

00:07:18 #18988 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:07:18 #18989 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:07:18 #18990 [Verbose] >     v2

00:07:18 #18991 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:07:18 #18992 [Verbose] >     closure3(v0)

00:07:18 #18993 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:07:18 #18994 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:07:18 #18995 [Verbose] >     v3

00:07:18 #18996 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:07:18 #18997 [Verbose] >     closure6(v0, v1)

00:07:18 #18998 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:07:18 #18999 [Verbose] >     closure5(v0)

00:07:18 #19000 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:07:18 #19001 [Verbose] >     let v2 : stri...

00:07:19 #19002 [Verbose] >

00:07:19 #19003 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19004 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:07:19 #19005 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:07:19 #19006 [Verbose] >     let v3 : string = v2 v0

00:07:19 #19007 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:07:19 #19008 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:07:19 #19009 [Verbose] >     v5

00:07:19 #19010 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:07:19 #19011 [Verbose] >     closure1(v0)

00:07:19 #19012 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:07:19 #19013 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:07:19 #19014 [Verbose] >     v3

00:07:19 #19015 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:07:19 #19016 [Verbose] >     closure5(v0, v1)

00:07:19 #19017 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:07:19 #19018 [Verbose] >     closure4(v0)

00:07:19 #19019 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:07:19 #19020 [Verbose] >     closure3()

00:07:19 #19021 [Verbose] > and closure2 (...

00:07:19 #19022 [Verbose] >

00:07:19 #19023 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19024 [Verbose] > #if FABLE_COMPILER // file_system.types

00:07:19 #19025 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:07:19 #19026 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:07:19 #19027 [Verbose] > base64_DecodeError = class end

00:07:19 #19028 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:07:19 #19029 [Verbose] > = class end

00:07:19 #19030 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:07:19 #19031 [Verbose] > = class end

00:07:19 #19032 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:07:19 #19033 [Verbose] > serde_json_Error = class end

00:07:19 #19034 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:07:19 #19035 [Verbose] > serde_json_Value = class end

00:07:19 #19036 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:07:19 #19037 [Verbose] > serde_wasm_bindgen_Error = class end

00:07:19 #19038 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:07:19 #19039 [Verbose] >

00:07:19 #19040 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19041 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:07:19 #19042 [Verbose] > module SpiralDateTime =

00:07:19 #19043 [Verbose] >     let format x =

00:07:19 #19044 [Verbose] > #if !INTERACTIVE

00:07:19 #19045 [Verbose] >         Date_time.format x

00:07:19 #19046 [Verbose] > #else

00:07:19 #19047 [Verbose] >         format x

00:07:19 #19048 [Verbose] > #endif

00:07:19 #19049 [Verbose] >

00:07:19 #19050 [Verbose] >     let format_iso8601 x =

00:07:19 #19051 [Verbose] > #if !INTERACTIVE

00:07:19 #19052 [Verbose] >         Date_time.format_iso8601 x

00:07:19 #19053 [Verbose] > #else

00:07:19 #19054 [Verbose] >         format_iso8601 x

00:07:19 #19055 [Verbose] > #endif

00:07:19 #19056 [Verbose] >

00:07:19 #19057 [Verbose] >     let new_guid_from_date_time x =

00:07:19 #19058 [Verbose] > #if !INTERACTIVE

00:07:19 #19059 [Verbose] >         Date_time.new_guid_from_date_time x

00:07:19 #19060 [Verbose] > #else

00:07:19 #19061 [Verbose] >         new_guid_from_date_time x

00:07:19 #19062 [Verbose] > #endif

00:07:19 #19063 [Verbose] >

00:07:19 #19064 [Verbose] > #endif

00:07:19 #19065 [Verbose] >

00:07:19 #19066 [Verbose] > module SpiralSm =

00:07:19 #19067 [Verbose] >     let concat x =

00:07:19 #19068 [Verbose] > #if !INTERACTIVE

00:07:19 #19069 [Verbose] >         Sm.concat x

00:07:19 #19070 [Verbose] > #else

00:07:19 #19071 [Verbose] >         concat x

00:07:19 #19072 [Verbose] > #endif

00:07:19 #19073 [Verbose] >

00:07:19 #19074 [Verbose] >     let contains x =

00:07:19 #19075 [Verbose] > #if !INTERACTIVE

00:07:19 #19076 [Verbose] >         Sm.contains x

00:07:19 #19077 [Verbose] > #else

00:07:19 #19078 [Verbose] >         contains x

00:07:19 #19079 [Verbose] > #endif

00:07:19 #19080 [Verbose] >

00:07:19 #19081 [Verbose] >     let ellipsis x =

00:07:19 #19082 [Verbose] > #if !INTERACTIVE

00:07:19 #19083 [Verbose] >         Sm.ellipsis x

00:07:19 #19084 [Verbose] > #else

00:07:19 #19085 [Verbose] >         ellipsis x

00:07:19 #19086 [Verbose] > #endif

00:07:19 #19087 [Verbose] >

00:07:19 #19088 [Verbose] >     let ellipsis_end x =

00:07:19 #19089 [Verbose] > #if...

00:07:19 #19090 [Verbose] >

00:07:19 #19091 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19092 [Verbose] > #if !INTERACTIVE

00:07:19 #19093 [Verbose] > namespace Polyglot

00:07:19 #19094 [Verbose] > #endif

00:07:19 #19095 [Verbose] >

00:07:19 #19096 [Verbose] > module Common =

00:07:19 #19097 [Verbose] >

00:07:19 #19098 [Verbose] > #if !INTERACTIVE

00:07:19 #19099 [Verbose] >     open Lib

00:07:19 #19100 [Verbose] > #endif

00:07:19 #19101 [Verbose] >

00:07:19 #19102 [Verbose] >     let nl = System.Environment.NewLine

00:07:19 #19103 [Verbose] >     let q = @""""

00:07:19 #19104 [Verbose] >

00:07:19 #19105 [Verbose] >     let inline cons head tail = head :: tail

00:07:19 #19106 [Verbose] >

00:07:19 #19107 [Verbose] >     /// ## memoize

00:07:19 #19108 [Verbose] >

00:07:19 #19109 [Verbose] >     let inline memoize fn =

00:07:19 #19110 [Verbose] >         let result = lazy fn ()

00:07:19 #19111 [Verbose] >         fun () -> result.Value

00:07:19 #19112 [Verbose] >

00:07:19 #19113 [Verbose] >     /// ## TraceLevel

00:07:19 #19114 [Verbose] >

00:07:19 #19115 [Verbose] >     type TraceLevel =

00:07:19 #19116 [Verbose] >         | Verbose

00:07:19 #19117 [Verbose] >         | Debug

00:07:19 #19118 [Verbose] >         | Info

00:07:19 #19119 [Verbose] >         | Warning

00:07:19 #19120 [Verbose] >         | Critical

00:07:19 #19121 [Verbose] >

00:07:19 #19122 [Verbose] >     let inline getLocals () = ""

00:07:19 #19123 [Verbose] >

00:07:19 #19124 [Verbose] >     let mutable traceEnabled = true

00:07:19 #19125 [Verbose] >     let mutable traceCount = 0

00:07:19 #19126 [Verbose] >     let mutable traceLevel = Verbose

00:07:19 #19127 [Verbose] >     let mutable traceDump = false

00:07:19 #19128 [Verbose] >

00:07:19 #19129 [Verbose] >     let testTraceLevel level =

00:07:19 #19130 [Verbose] >         traceEnabled && level >= traceLevel

00:07:19 #19131 [Verbose] >

00:07:19 #19132 [Verbose] >     /// ## traceRaw

00:07:19 #19133 [Verbose] >

00:07:19 #19134 [Verbose] >     let rec traceRaw level fn =

00:07:19 #19135 [Verbose] > ...

00:07:19 #19136 [Verbose] >

00:07:19 #19137 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19138 [Verbose] > #if !INTERACTIVE

00:07:19 #19139 [Verbose] > namespace Polyglot

00:07:19 #19140 [Verbose] > #endif

00:07:19 #19141 [Verbose] >

00:07:19 #19142 [Verbose] > module CommonFSharp =

00:07:19 #19143 [Verbose] >

00:07:19 #19144 [Verbose] >     open Common

00:07:19 #19145 [Verbose] >

00:07:19 #19146 [Verbose] >     /// ## getUnionCaseName

00:07:19 #19147 [Verbose] >

00:07:19 #19148 [Verbose] >     let inline getUnionCaseName<'T> (x: 'T) =

00:07:19 #19149 [Verbose] >         match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

00:07:19 #19150 [Verbose] >         | case, _ -> case.Name

00:07:19 #19151 [Verbose] >

00:07:19 #19152 [Verbose] >

00:07:19 #19153 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19154 [Verbose] > #if !INTERACTIVE

00:07:19 #19155 [Verbose] > namespace Polyglot

00:07:19 #19156 [Verbose] > #endif

00:07:19 #19157 [Verbose] >

00:07:19 #19158 [Verbose] > module Crypto =

00:07:19 #19159 [Verbose] >

00:07:19 #19160 [Verbose] > #if !INTERACTIVE

00:07:19 #19161 [Verbose] >     open Lib

00:07:19 #19162 [Verbose] > #endif

00:07:19 #19163 [Verbose] >

00:07:19 #19164 [Verbose] >     open Common

00:07:19 #19165 [Verbose] >

00:07:19 #19166 [Verbose] >     /// ## hashText

00:07:19 #19167 [Verbose] >

00:07:19 #19168 [Verbose] >     let hashText (input : string) =

00:07:19 #19169 [Verbose] >         use sha256 = System.Security.Cryptography.SHA256.Create ()

00:07:19 #19170 [Verbose] >         input

00:07:19 #19171 [Verbose] >         |> System.Text.Encoding.UTF8.GetBytes

00:07:19 #19172 [Verbose] >         |> sha256.ComputeHash

00:07:19 #19173 [Verbose] >         |> Array.map (fun b -> b.ToString "x2")

00:07:19 #19174 [Verbose] >         |> SpiralSm.concat ""

00:07:19 #19175 [Verbose] >

00:07:19 #19176 [Verbose] >

00:07:19 #19177 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:19 #19178 [Verbose] > #if !INTERACTIVE

00:07:19 #19179 [Verbose] > namespace Polyglot

00:07:19 #19180 [Verbose] > #endif

00:07:19 #19181 [Verbose] >

00:07:19 #19182 [Verbose] > module Async =

00:07:19 #19183 [Verbose] >

00:07:19 #19184 [Verbose] > #if !INTERACTIVE

00:07:19 #19185 [Verbose] >     open Lib

00:07:19 #19186 [Verbose] > #endif

00:07:19 #19187 [Verbose] >

00:07:19 #19188 [Verbose] >     open Common

00:07:19 #19189 [Verbose] >

00:07:19 #19190 [Verbose] >     /// ## choice

00:07:19 #19191 [Verbose] >

00:07:19 #19192 [Verbose] >     let inline choice asyncs = async {

00:07:19 #19193 [Verbose] >         let e = Event<_> ()

00:07:19 #19194 [Verbose] >         use cts = new System.Threading.CancellationTokenSource ()

00:07:19 #19195 [Verbose] >         let fn =

00:07:19 #19196 [Verbose] >             asyncs

00:07:19 #19197 [Verbose] >             |> Seq.map (fun a -> async {

00:07:19 #19198 [Verbose] >                 let! x = a

00:07:19 #19199 [Verbose] >                 e.Trigger x

00:07:19 #19200 [Verbose] >             })

00:07:19 #19201 [Verbose] >             |> Async.Parallel

00:07:19 #19202 [Verbose] >             |> Async.Ignore

00:07:19 #19203 [Verbose] >         Async.Start (fn, cts.Token)

00:07:19 #19204 [Verbose] >         let! result = Async.AwaitEvent e.Publish

00:07:19 #19205 [Verbose] >         cts.Cancel ()

00:07:19 #19206 [Verbose] >         return result

00:07:19 #19207 [Verbose] >     }

00:07:19 #19208 [Verbose] >

00:07:19 #19209 [Verbose] >     /// ## map

00:07:19 #19210 [Verbose] >

00:07:19 #19211 [Verbose] >     let inline map fn a = async {

00:07:19 #19212 [Verbose] >         let! x = a

00:07:19 #19213 [Verbose] >         return fn x

00:07:19 #19214 [Verbose] >     }

00:07:19 #19215 [Verbose] >

00:07:19 #19216 [Verbose] >     /// ## catch

00:07:19 #19217 [Verbose] >

00:07:19 #19218 [Verbose] >     let inline catch a =

00:07:19 #19219 [Verbose] >    ...

00:07:20 #19220 [Verbose] >

00:07:20 #19221 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:20 #19222 [Verbose] > #if !INTERACTIVE

00:07:20 #19223 [Verbose] > namespace Polyglot

00:07:20 #19224 [Verbose] > #endif

00:07:20 #19225 [Verbose] >

00:07:20 #19226 [Verbose] > module AsyncSeq =

00:07:20 #19227 [Verbose] >

00:07:20 #19228 [Verbose] > #if !INTERACTIVE

00:07:20 #19229 [Verbose] >     open Lib

00:07:20 #19230 [Verbose] > #endif

00:07:20 #19231 [Verbose] >

00:07:20 #19232 [Verbose] >     open Common

00:07:20 #19233 [Verbose] >

00:07:20 #19234 [Verbose] >     /// ## subscribeEvent

00:07:20 #19235 [Verbose] >

00:07:20 #19236 [Verbose] >     let inline subscribeEvent (event: IEvent<'H, 'A>) map =

00:07:20 #19237 [Verbose] >         let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,

00:07:20 #19238 [Verbose] > 'A>(event.AddHandler, event.RemoveHandler)

00:07:20 #19239 [Verbose] >         System.Reactive.Linq.Observable.Select (observable, fun event -> map

00:07:20 #19240 [Verbose] > event.EventArgs)

00:07:20 #19241 [Verbose] >         |> FSharp.Control.AsyncSeq.ofObservableBuffered

00:07:20 #19242 [Verbose] >

00:07:20 #19243 [Verbose] >     let subscribeToken (token : System.Threading.CancellationToken) =

00:07:20 #19244 [Verbose] >         let tcs = new System.Threading.Tasks.TaskCompletionSource ()

00:07:20 #19245 [Verbose] >         System.Action tcs.SetResult |> token.Register |> ignore

00:07:20 #19246 [Verbose] >         let start = System.DateTime.Now.Ticks

00:07:20 #19247 [Verbose] >         FSharp.Control.A...

00:07:20 #19248 [Verbose] >

00:07:20 #19249 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:20 #19250 [Verbose] > #if !INTERACTIVE

00:07:20 #19251 [Verbose] > namespace Polyglot

00:07:20 #19252 [Verbose] > #endif

00:07:20 #19253 [Verbose] >

00:07:20 #19254 [Verbose] > module Networking =

00:07:20 #19255 [Verbose] >

00:07:20 #19256 [Verbose] > #if !INTERACTIVE

00:07:20 #19257 [Verbose] >     open Lib

00:07:20 #19258 [Verbose] > #endif

00:07:20 #19259 [Verbose] >

00:07:20 #19260 [Verbose] >     open Common

00:07:20 #19261 [Verbose] >

00:07:20 #19262 [Verbose] >     /// ## testPortOpen

00:07:20 #19263 [Verbose] >

00:07:20 #19264 [Verbose] >     let inline testPortOpen port = async {

00:07:20 #19265 [Verbose] >         let! ct = Async.CancellationToken

00:07:20 #19266 [Verbose] >         use client = new System.Net.Sockets.TcpClient ()

00:07:20 #19267 [Verbose] >         try

00:07:20 #19268 [Verbose] >             do! client.ConnectAsync ("127.0.0.1", port, ct) |>

00:07:20 #19269 [Verbose] > Async.awaitValueTaskUnit

00:07:20 #19270 [Verbose] >             return true

00:07:20 #19271 [Verbose] >         with ex ->

00:07:20 #19272 [Verbose] >             trace Verbose (fun () -> $"testPortOpen / ex: {ex |>

00:07:20 #19273 [Verbose] > SpiralSm.format_exception}") getLocals

00:07:20 #19274 [Verbose] >             return false

00:07:20 #19275 [Verbose] >     }

00:07:20 #19276 [Verbose] >

00:07:20 #19277 [Verbose] >     let inline testPortOpenTimeout timeout port = async {

00:07:20 #19278 [Verbose] >         let! result =

00:07:20 #19279 [Verbose] >             testPortOpen port

00:07:20 #19280 [Verbose] >             |> Async.runWithTimeoutAsync timeout

00:07:20 #19281 [Verbose] >         return

00:07:20 #19282 [Verbose] >           ...

00:07:21 #19283 [Verbose] >

00:07:21 #19284 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:21 #19285 [Verbose] > #if !INTERACTIVE

00:07:21 #19286 [Verbose] > namespace Polyglot

00:07:21 #19287 [Verbose] > #endif

00:07:21 #19288 [Verbose] >

00:07:21 #19289 [Verbose] > module Runtime =

00:07:21 #19290 [Verbose] >

00:07:21 #19291 [Verbose] > #if !INTERACTIVE

00:07:21 #19292 [Verbose] >     open Lib

00:07:21 #19293 [Verbose] > #endif

00:07:21 #19294 [Verbose] >

00:07:21 #19295 [Verbose] >     open Common

00:07:21 #19296 [Verbose] >

00:07:21 #19297 [Verbose] >     /// ## isWindows

00:07:21 #19298 [Verbose] >

00:07:21 #19299 [Verbose] >     let isWindows =

00:07:21 #19300 [Verbose] >         fun () ->

00:07:21 #19301 [Verbose] >             System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

00:07:21 #19302 [Verbose] >                 System.Runtime.InteropServices.OSPlatform.Windows

00:07:21 #19303 [Verbose] >         |> memoize

00:07:21 #19304 [Verbose] >

00:07:21 #19305 [Verbose] >     /// ## getExecutableSuffix

00:07:21 #19306 [Verbose] >

00:07:21 #19307 [Verbose] >     let inline getExecutableSuffix () =

00:07:21 #19308 [Verbose] >         if isWindows ()

00:07:21 #19309 [Verbose] >         then ".exe"

00:07:21 #19310 [Verbose] >         else ""

00:07:21 #19311 [Verbose] >

00:07:21 #19312 [Verbose] >     /// ## splitCommand

00:07:21 #19313 [Verbose] >

00:07:21 #19314 [Verbose] >     type private CommandParseStep =

00:07:21 #19315 [Verbose] >         | Start

00:07:21 #19316 [Verbose] >         | Path of quoted: bool

00:07:21 #19317 [Verbose] >         | Arguments

00:07:21 #19318 [Verbose] >

00:07:21 #19319 [Verbose] >     let splitCommand (command: string) =

00:07:21 #19320 [Verbose] >         let rec loop (path, args) chars step =

00:07:21 #19321 [Verbose] >             match chars, step with

00:07:21 #19322 [Verbose] >             | ('"' | '\'') ...

00:07:22 #19323 [Verbose] >

00:07:22 #19324 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:22 #19325 [Verbose] > #if !INTERACTIVE

00:07:22 #19326 [Verbose] > namespace Polyglot

00:07:22 #19327 [Verbose] > #endif

00:07:22 #19328 [Verbose] >

00:07:22 #19329 [Verbose] > module FileSystem =

00:07:22 #19330 [Verbose] >

00:07:22 #19331 [Verbose] > #if !INTERACTIVE

00:07:22 #19332 [Verbose] >     open Lib

00:07:22 #19333 [Verbose] > #endif

00:07:22 #19334 [Verbose] >

00:07:22 #19335 [Verbose] >     open Common

00:07:22 #19336 [Verbose] >     open SpiralFileSystem.Operators

00:07:22 #19337 [Verbose] >

00:07:22 #19338 [Verbose] >     /// ## readAllTextAsync

00:07:22 #19339 [Verbose] >

00:07:22 #19340 [Verbose] >     let inline readAllTextAsync path =

00:07:22 #19341 [Verbose] >         path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask

00:07:22 #19342 [Verbose] >

00:07:22 #19343 [Verbose] >     /// ## fileExistsContent

00:07:22 #19344 [Verbose] >

00:07:22 #19345 [Verbose] >     let inline fileExistsContent path content = async {

00:07:22 #19346 [Verbose] >         if path |> System.IO.File.Exists |> not

00:07:22 #19347 [Verbose] >         then return false

00:07:22 #19348 [Verbose] >         else

00:07:22 #19349 [Verbose] >             let! existingContent = path |> readAllTextAsync

00:07:22 #19350 [Verbose] >             return content = existingContent

00:07:22 #19351 [Verbose] >     }

00:07:22 #19352 [Verbose] >

00:07:22 #19353 [Verbose] >     /// ## writeAllTextAsync

00:07:22 #19354 [Verbose] >

00:07:22 #19355 [Verbose] >     let inline writeAllTextAsync path contents =

00:07:22 #19356 [Verbose] >         System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask

00:07:22 #19357 [Verbose] >

00:07:22 #19358 [Verbose] >     /// ## write...

00:07:25 #19359 [Verbose] >

00:07:25 #19360 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:25 #19361 [Verbose] > #if !INTERACTIVE

00:07:25 #19362 [Verbose] > open Lib

00:07:25 #19363 [Verbose] > #endif

00:07:25 #19364 [Verbose] >

00:07:25 #19365 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:25 #19366 [Verbose] > open Common

00:07:25 #19367 [Verbose] > open SpiralFileSystem.Operators

00:07:25 #19368 [Verbose] >

00:07:25 #19369 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:07:25 #19370 [Verbose] > let repositoryRoot = SpiralFileSystem.get_source_directory () |>

00:07:25 #19371 [Verbose] > SpiralFileSystem.find_parent ".paket" false

00:07:25 #19372 [Verbose] > let tmpSpiralPath = repositoryRoot </> "target/polyglot/plotting"

00:07:25 #19373 [Verbose] > let linePlotsDataPath = tmpSpiralPath </> "line-data"

00:07:25 #19374 [Verbose] > let linePlotsSvgPath = tmpSpiralPath </> "line-svg"

00:07:25 #19375 [Verbose] >

00:07:25 #19376 [Verbose] > [[ tmpSpiralPath; linePlotsDataPath; linePlotsSvgPath ]]

00:07:25 #19377 [Verbose] > |> List.iter (fun dir -> if Directory.Exists dir |> not then

00:07:25 #19378 [Verbose] > Directory.CreateDirectory dir |> ignore)

00:07:25 #19379 [Verbose] >

00:07:25 #19380 [Verbose] > Formatter.Register<struct (string * string * string * struct (string * float

00:07:25 #19381 [Verbose] > array * float array) array)> (

00:07:25 #19382 [Verbose] >     (fun struct (caption, x_desc, y_desc, ys) ->

00:07:25 #19383 [Verbose] >         let json = (caption, x_desc, y_desc, ys) |> FSharp.Json.Json.serialize

00:07:25 #19384 [Verbose] >         async {

00:07:25 #19385 [Verbose] >             let hashHex = json |> Crypto.hashText

00:07:25 #19386 [Verbose] >         ...

00:07:25 #19387 [Verbose] >

00:07:25 #19388 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:25 #19389 [Verbose] > // // test

00:07:25 #19390 [Verbose] >

00:07:25 #19391 [Verbose] > open testing

00:07:27 #19392 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-5887-8709-8ef8ff4974e8\main.spi

00:07:27 #19393 [Verbose] >

00:07:27 #19394 [Verbose] > ╭─[ 1.52s - stdout ]───────────────────────────────────────────────────────────╮

00:07:27 #19395 [Verbose] > │ ()                                                                           │

00:07:27 #19396 [Verbose] > │                                                                              │

00:07:27 #19397 [Verbose] > │                                                                              │

00:07:27 #19398 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:27 #19399 [Verbose] >

00:07:27 #19400 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:27 #19401 [Verbose] > open listm'_operators

00:07:27 #19402 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-5966-6690-6cad3891ad7c\main.spi

00:07:27 #19403 [Verbose] >

00:07:27 #19404 [Verbose] > ╭─[ 281.76ms - stdout ]────────────────────────────────────────────────────────╮

00:07:27 #19405 [Verbose] > │ ()                                                                           │

00:07:27 #19406 [Verbose] > │                                                                              │

00:07:27 #19407 [Verbose] > │                                                                              │

00:07:27 #19408 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:27 #19409 [Verbose] >

00:07:27 #19410 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:27 #19411 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:27 #19412 [Verbose] > │ ## init_series                                                               │

00:07:27 #19413 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:27 #19414 [Verbose] >

00:07:27 #19415 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:27 #19416 [Verbose] > // // test

00:07:27 #19417 [Verbose] >

00:07:27 #19418 [Verbose] > inl x : a _ f64 = am'.init_series -3 3 0.01

00:07:27 #19419 [Verbose] > inl y = x |> am.map math.square

00:07:27 #19420 [Verbose] > "square", "x", "y", ;[[ "square", x, y ]]

00:07:27 #19421 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1256-5995-9557-9b69f9b131d1\main.spi

00:07:28 #19422 [Verbose] >

00:07:28 #19423 [Verbose] > ╭─[ 426.10ms - return value ]──────────────────────────────────────────────────╮

00:07:28 #19424 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:28 #19425 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:28 #19426 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:28 #19427 [Verbose] > │ stroke="none"/>                                                              │

00:07:28 #19428 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:28 #19429 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:28 #19430 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:28 #19431 [Verbose] > │ square                                                                       │

00:07:28 #19432 [Verbose] > │ </text>                                                                      │

00:07:28 #19433 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │

00:07:28 #19434 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19435 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:28 #19436 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19437 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │

00:07:28 #19438 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19439 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │

00:07:28 #19440 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19441 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │

00:07:28 #19442 [Verbose] > │ ...                                                                          │

00:07:28 #19443 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19444 [Verbose] >

00:07:28 #19445 [Verbose] > ╭─[ 447.95ms - stdout ]────────────────────────────────────────────────────────╮

00:07:28 #19446 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:28 #19447 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:28 #19448 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:28 #19449 [Verbose] > │     let v2 : bool = v1 < 601                                                 │

00:07:28 #19450 [Verbose] > │     v2                                                                       │

00:07:28 #19451 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:28 #19452 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:28 #19453 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:28 #19454 [Verbose] > │     v3                                                                       │

00:07:28 #19455 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:28 #19456 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:28 #19457 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (601)                      │

00:07:28 #19458 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:28 #19459 [Verbose] > │     while method1(v1) do                                                     │

00:07:28 #19460 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:28 #19461 [Verbose] > │         let v4 : float = float v3                                            │

00:07:28 #19462 [Verbose] > │         let v5 : float = 0.01 * v4                                           │

00:07:28 #19463 [Verbose] > │         let v6 : float = -3.0 + v5                                           │

00:07:28 #19464 [Verbose] > │         v0.[int v3] <- v6                                                    │

00:07:28 #19465 [Verbose] > │         let v7 : int32 = v3 + 1                                              │

00:07:28 #19466 [Verbose] > │         v1.l0 <- v7                                                          │

00:07:28 #19467 [Verbose] > │         ()                                                                   │

00:07:28 #19468 [Verbose] > │     let v8 : int32 = v0.Length                                               │

00:07:28 #19469 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │

00:07:28 #19470 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │

00:07:28 #19471 [Verbose] > │     while method2(v8, v10) do                                                │

00:07:28 #19472 [Verbose] > │         let v12 : int32 = v10.l0                                             │

00:07:28 #19473 [Verbose] > │         let v13 : float = v0.[int v12]                                       │

00:07:28 #19474 [Verbose] > │         let v14 : float = v13 ** 2.0                                         │

00:07:28 #19475 [Verbose] > │         v9.[int v12] <- v14                                                  │

00:07:28 #19476 [Verbose] > │         let v15 : int32 = v12 + 1                                            │

00:07:28 #19477 [Verbose] > │         v10.l0 <- v15                                                        │

00:07:28 #19478 [Verbose] > │         ()                                                                   │

00:07:28 #19479 [Verbose] > │     let v16 : string = "square"                                              │

00:07:28 #19480 [Verbose] > │     let v17 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:28 #19481 [Verbose] > │ (v16, v0, v9)|]                                                              │

00:07:28 #19482 [Verbose] > │     let v18 : string = "x"                                                   │

00:07:28 #19483 [Verbose] > │     let v19 : string = "y"                                                   │

00:07:28 #19484 [Verbose] > │     struct (v16, v18, v19, v17)                                              │

00:07:28 #19485 [Verbose] > │ method0()                                                                    │

00:07:28 #19486 [Verbose] > │                                                                              │

00:07:28 #19487 [Verbose] > │                                                                              │

00:07:28 #19488 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19489 [Verbose] >

00:07:28 #19490 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:28 #19491 [Verbose] > // // test

00:07:28 #19492 [Verbose] >

00:07:28 #19493 [Verbose] > inl x : a _ f64 = am'.init_series -10 10 0.1

00:07:28 #19494 [Verbose] > inl y_sin = x |> am.map sin

00:07:28 #19495 [Verbose] > inl y_cos = x |> am.map cos

00:07:28 #19496 [Verbose] > "sin cos", "x", "y", ;[[ "sin", x, y_sin; "cos", x, y_cos ]]

00:07:28 #19497 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0042-4210-4ec3bdeafeb7\main.spi

00:07:28 #19498 [Verbose] >

00:07:28 #19499 [Verbose] > ╭─[ 352.12ms - return value ]──────────────────────────────────────────────────╮

00:07:28 #19500 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:28 #19501 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:28 #19502 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:28 #19503 [Verbose] > │ stroke="none"/>                                                              │

00:07:28 #19504 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:28 #19505 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:28 #19506 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:28 #19507 [Verbose] > │ sin cos                                                                      │

00:07:28 #19508 [Verbose] > │ </text>                                                                      │

00:07:28 #19509 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │

00:07:28 #19510 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19511 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:28 #19512 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19513 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │

00:07:28 #19514 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19515 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │

00:07:28 #19516 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19517 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1="424"        │

00:07:28 #19518 [Verbose] > │ x2="10...                                                                    │

00:07:28 #19519 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19520 [Verbose] >

00:07:28 #19521 [Verbose] > ╭─[ 365.23ms - stdout ]────────────────────────────────────────────────────────╮

00:07:28 #19522 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:28 #19523 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:28 #19524 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:28 #19525 [Verbose] > │     let v2 : bool = v1 < 201                                                 │

00:07:28 #19526 [Verbose] > │     v2                                                                       │

00:07:28 #19527 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:28 #19528 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:28 #19529 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:28 #19530 [Verbose] > │     v3                                                                       │

00:07:28 #19531 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:28 #19532 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:28 #19533 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (201)                      │

00:07:28 #19534 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:28 #19535 [Verbose] > │     while method1(v1) do                                                     │

00:07:28 #19536 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:28 #19537 [Verbose] > │         let v4 : float = float v3                                            │

00:07:28 #19538 [Verbose] > │         let v5 : float = 0.1 * v4                                            │

00:07:28 #19539 [Verbose] > │         let v6 : float = -10.0 + v5                                          │

00:07:28 #19540 [Verbose] > │         v0.[int v3] <- v6                                                    │

00:07:28 #19541 [Verbose] > │         let v7 : int32 = v3 + 1                                              │

00:07:28 #19542 [Verbose] > │         v1.l0 <- v7                                                          │

00:07:28 #19543 [Verbose] > │         ()                                                                   │

00:07:28 #19544 [Verbose] > │     let v8 : int32 = v0.Length                                               │

00:07:28 #19545 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │

00:07:28 #19546 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │

00:07:28 #19547 [Verbose] > │     while method2(v8, v10) do                                                │

00:07:28 #19548 [Verbose] > │         let v12 : int32 = v10.l0                                             │

00:07:28 #19549 [Verbose] > │         let v13 : float = v0.[int v12]                                       │

00:07:28 #19550 [Verbose] > │         let v14 : float = sin v13                                            │

00:07:28 #19551 [Verbose] > │         v9.[int v12] <- v14                                                  │

00:07:28 #19552 [Verbose] > │         let v15 : int32 = v12 + 1                                            │

00:07:28 #19553 [Verbose] > │         v10.l0 <- v15                                                        │

00:07:28 #19554 [Verbose] > │         ()                                                                   │

00:07:28 #19555 [Verbose] > │     let v16 : (float []) = Array.zeroCreate<float> (v8)                      │

00:07:28 #19556 [Verbose] > │     let v17 : Mut0 = {l0 = 0} : Mut0                                         │

00:07:28 #19557 [Verbose] > │     while method2(v8, v17) do                                                │

00:07:28 #19558 [Verbose] > │         let v19 : int32 = v17.l0                                             │

00:07:28 #19559 [Verbose] > │         let v20 : float = v0.[int v19]                                       │

00:07:28 #19560 [Verbose] > │         let v21 : float = cos v20                                            │

00:07:28 #19561 [Verbose] > │         v16.[int v19] <- v21                                                 │

00:07:28 #19562 [Verbose] > │         let v22 : int32 = v19 + 1                                            │

00:07:28 #19563 [Verbose] > │         v17.l0 <- v22                                                        │

00:07:28 #19564 [Verbose] > │         ()                                                                   │

00:07:28 #19565 [Verbose] > │     let v23 : string = "sin"                                                 │

00:07:28 #19566 [Verbose] > │     let v24 : string = "cos"                                                 │

00:07:28 #19567 [Verbose] > │     let v25 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:28 #19568 [Verbose] > │ (v23, v0, v9); struct (v24, v0, v16)|]                                       │

00:07:28 #19569 [Verbose] > │     let v26 : string = "sin cos"                                             │

00:07:28 #19570 [Verbose] > │     let v27 : string = "x"                                                   │

00:07:28 #19571 [Verbose] > │     let v28 : string = "y"                                                   │

00:07:28 #19572 [Verbose] > │     struct (v26, v27, v28, v25)                                              │

00:07:28 #19573 [Verbose] > │ method0()                                                                    │

00:07:28 #19574 [Verbose] > │                                                                              │

00:07:28 #19575 [Verbose] > │                                                                              │

00:07:28 #19576 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19577 [Verbose] >

00:07:28 #19578 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:28 #19579 [Verbose] > // // test

00:07:28 #19580 [Verbose] >

00:07:28 #19581 [Verbose] > inl y_pos y0 vy0 ay t =

00:07:28 #19582 [Verbose] >     y0 + vy0 * t + ay * (t |> math.square) / 2

00:07:28 #19583 [Verbose] >

00:07:28 #19584 [Verbose] > inl x : a _ f64 = am'.init_series 0 5 0.01

00:07:28 #19585 [Verbose] > inl y = x |> am.map (y_pos 0 20 -9.8)

00:07:28 #19586 [Verbose] > "projectile motion", "time (s)", "", ;[[ "height of projectile (m)", x, y ]]

00:07:28 #19587 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0082-8231-86e75438786c\main.spi

00:07:28 #19588 [Verbose] >

00:07:28 #19589 [Verbose] > ╭─[ 295.53ms - return value ]──────────────────────────────────────────────────╮

00:07:28 #19590 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:28 #19591 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:28 #19592 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:28 #19593 [Verbose] > │ stroke="none"/>                                                              │

00:07:28 #19594 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:28 #19595 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:28 #19596 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:28 #19597 [Verbose] > │ projectile motion                                                            │

00:07:28 #19598 [Verbose] > │ </text>                                                                      │

00:07:28 #19599 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:28 #19600 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19601 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:28 #19602 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19603 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:28 #19604 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19605 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:28 #19606 [Verbose] > │ y2="75"/>                                                                    │

00:07:28 #19607 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" y1="42...        │

00:07:28 #19608 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19609 [Verbose] >

00:07:28 #19610 [Verbose] > ╭─[ 306.25ms - stdout ]────────────────────────────────────────────────────────╮

00:07:28 #19611 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:28 #19612 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:28 #19613 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:28 #19614 [Verbose] > │     let v2 : bool = v1 < 501                                                 │

00:07:28 #19615 [Verbose] > │     v2                                                                       │

00:07:28 #19616 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:28 #19617 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:28 #19618 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:28 #19619 [Verbose] > │     v3                                                                       │

00:07:28 #19620 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:28 #19621 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:28 #19622 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (501)                      │

00:07:28 #19623 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:28 #19624 [Verbose] > │     while method1(v1) do                                                     │

00:07:28 #19625 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:28 #19626 [Verbose] > │         let v4 : float = float v3                                            │

00:07:28 #19627 [Verbose] > │         let v5 : float = 0.01 * v4                                           │

00:07:28 #19628 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:28 #19629 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:28 #19630 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:28 #19631 [Verbose] > │         ()                                                                   │

00:07:28 #19632 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:28 #19633 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:28 #19634 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:28 #19635 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:28 #19636 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:28 #19637 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:28 #19638 [Verbose] > │         let v13 : float = 20.0 * v12                                         │

00:07:28 #19639 [Verbose] > │         let v14 : float = v12 ** 2.0                                         │

00:07:28 #19640 [Verbose] > │         let v15 : float = -9.8 * v14                                         │

00:07:28 #19641 [Verbose] > │         let v16 : float = v15 / 2.0                                          │

00:07:28 #19642 [Verbose] > │         let v17 : float = v13 + v16                                          │

00:07:28 #19643 [Verbose] > │         v8.[int v11] <- v17                                                  │

00:07:28 #19644 [Verbose] > │         let v18 : int32 = v11 + 1                                            │

00:07:28 #19645 [Verbose] > │         v9.l0 <- v18                                                         │

00:07:28 #19646 [Verbose] > │         ()                                                                   │

00:07:28 #19647 [Verbose] > │     let v19 : string = "height of projectile (m)"                            │

00:07:28 #19648 [Verbose] > │     let v20 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:28 #19649 [Verbose] > │ (v19, v0, v8)|]                                                              │

00:07:28 #19650 [Verbose] > │     let v21 : string = "projectile motion"                                   │

00:07:28 #19651 [Verbose] > │     let v22 : string = "time (s)"                                            │

00:07:28 #19652 [Verbose] > │     let v23 : string = ""                                                    │

00:07:28 #19653 [Verbose] > │     struct (v21, v22, v23, v20)                                              │

00:07:28 #19654 [Verbose] > │ method0()                                                                    │

00:07:28 #19655 [Verbose] > │                                                                              │

00:07:28 #19656 [Verbose] > │                                                                              │

00:07:28 #19657 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19658 [Verbose] >

00:07:28 #19659 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:28 #19660 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:28 #19661 [Verbose] > │ ## velocity_cf                                                               │

00:07:28 #19662 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:28 #19663 [Verbose] >

00:07:28 #19664 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:28 #19665 [Verbose] > type mass = f64

00:07:28 #19666 [Verbose] > type time = f64

00:07:28 #19667 [Verbose] > type position = f64

00:07:28 #19668 [Verbose] > type velocity = f64

00:07:28 #19669 [Verbose] > type force = f64

00:07:28 #19670 [Verbose] >

00:07:28 #19671 [Verbose] > type velocity_cf = mass -> velocity -> list force -> (time -> velocity)

00:07:28 #19672 [Verbose] >

00:07:28 #19673 [Verbose] > inl velocity_cf m v0 fs =

00:07:28 #19674 [Verbose] >     inl f_net = fs |> listm'.sum

00:07:28 #19675 [Verbose] >     inl a0 = f_net / m

00:07:28 #19676 [Verbose] >     inl v t = v0 + a0 * t

00:07:28 #19677 [Verbose] >     v

00:07:29 #19678 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0115-1547-125c76fbb6fb\main.spi

00:07:29 #19679 [Verbose] >

00:07:29 #19680 [Verbose] > ╭─[ 311.27ms - stdout ]────────────────────────────────────────────────────────╮

00:07:29 #19681 [Verbose] > │ ()                                                                           │

00:07:29 #19682 [Verbose] > │                                                                              │

00:07:29 #19683 [Verbose] > │                                                                              │

00:07:29 #19684 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:29 #19685 [Verbose] >

00:07:29 #19686 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:29 #19687 [Verbose] > // // test

00:07:29 #19688 [Verbose] >

00:07:29 #19689 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 0

00:07:29 #19690 [Verbose] > |> _assert_eq 0.6

00:07:29 #19691 [Verbose] >

00:07:29 #19692 [Verbose] > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 1

00:07:29 #19693 [Verbose] > |> _assert_eq 0.2

00:07:29 #19694 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0146-4682-4a22892f730d\main.spi

00:07:29 #19695 [Verbose] >

00:07:29 #19696 [Verbose] > ╭─[ 220.55ms - stdout ]────────────────────────────────────────────────────────╮

00:07:29 #19697 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:29 #19698 [Verbose] > │     let v0 : string = $"%A{0.6}"                                             │

00:07:29 #19699 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:29 #19700 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.6} / expected: %A{0.6}"      │

00:07:29 #19701 [Verbose] > │     let v2 : string = $"%A{0.2}"                                             │

00:07:29 #19702 [Verbose] > │     System.Console.WriteLine v2                                              │

00:07:29 #19703 [Verbose] > │     let v3 : string = $"__expect / actual: %A{0.2} / expected: %A{0.2}"      │

00:07:29 #19704 [Verbose] > │     ()                                                                       │

00:07:29 #19705 [Verbose] > │ method0()                                                                    │

00:07:29 #19706 [Verbose] > │                                                                              │

00:07:29 #19707 [Verbose] > │ 0.6                                                                          │

00:07:29 #19708 [Verbose] > │ 0.2                                                                          │

00:07:29 #19709 [Verbose] > │                                                                              │

00:07:29 #19710 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:29 #19711 [Verbose] >

00:07:29 #19712 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:29 #19713 [Verbose] > // // test

00:07:29 #19714 [Verbose] >

00:07:29 #19715 [Verbose] > inl x = am'.init_series 0 4 0.1

00:07:29 #19716 [Verbose] > inl y = x |> am.map (velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]])

00:07:29 #19717 [Verbose] > "car on an air track", "time (s)", "", ;[[ "velocity of car (m/s)", x, y ]]

00:07:29 #19718 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0169-6944-6d352db59003\main.spi

00:07:29 #19719 [Verbose] >

00:07:29 #19720 [Verbose] > ╭─[ 331.75ms - return value ]──────────────────────────────────────────────────╮

00:07:29 #19721 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:29 #19722 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:29 #19723 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:29 #19724 [Verbose] > │ stroke="none"/>                                                              │

00:07:29 #19725 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:29 #19726 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:29 #19727 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:29 #19728 [Verbose] > │ car on an air track                                                          │

00:07:29 #19729 [Verbose] > │ </text>                                                                      │

00:07:29 #19730 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" y1="424" x2="57" │

00:07:29 #19731 [Verbose] > │ y2="75"/>                                                                    │

00:07:29 #19732 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:29 #19733 [Verbose] > │ y2="75"/>                                                                    │

00:07:29 #19734 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" y1="424" x2="82" │

00:07:29 #19735 [Verbose] > │ y2="75"/>                                                                    │

00:07:29 #19736 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x2="94" │

00:07:29 #19737 [Verbose] > │ y2="75"/>                                                                    │

00:07:29 #19738 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" y1=...          │

00:07:29 #19739 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:29 #19740 [Verbose] >

00:07:29 #19741 [Verbose] > ╭─[ 346.56ms - stdout ]────────────────────────────────────────────────────────╮

00:07:29 #19742 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:29 #19743 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:29 #19744 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:29 #19745 [Verbose] > │     let v2 : bool = v1 < 41                                                  │

00:07:29 #19746 [Verbose] > │     v2                                                                       │

00:07:29 #19747 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:29 #19748 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:29 #19749 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:29 #19750 [Verbose] > │     v3                                                                       │

00:07:29 #19751 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:29 #19752 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:29 #19753 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (41)                       │

00:07:29 #19754 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:29 #19755 [Verbose] > │     while method1(v1) do                                                     │

00:07:29 #19756 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:29 #19757 [Verbose] > │         let v4 : float = float v3                                            │

00:07:29 #19758 [Verbose] > │         let v5 : float = 0.1 * v4                                            │

00:07:29 #19759 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:29 #19760 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:29 #19761 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:29 #19762 [Verbose] > │         ()                                                                   │

00:07:29 #19763 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:29 #19764 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:29 #19765 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:29 #19766 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:29 #19767 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:29 #19768 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:29 #19769 [Verbose] > │         let v13 : float = -0.39999999999999997 * v12                         │

00:07:29 #19770 [Verbose] > │         let v14 : float = 0.6 + v13                                          │

00:07:29 #19771 [Verbose] > │         v8.[int v11] <- v14                                                  │

00:07:29 #19772 [Verbose] > │         let v15 : int32 = v11 + 1                                            │

00:07:29 #19773 [Verbose] > │         v9.l0 <- v15                                                         │

00:07:29 #19774 [Verbose] > │         ()                                                                   │

00:07:29 #19775 [Verbose] > │     let v16 : string = "velocity of car (m/s)"                               │

00:07:29 #19776 [Verbose] > │     let v17 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:29 #19777 [Verbose] > │ (v16, v0, v8)|]                                                              │

00:07:29 #19778 [Verbose] > │     let v18 : string = "car on an air track"                                 │

00:07:29 #19779 [Verbose] > │     let v19 : string = "time (s)"                                            │

00:07:29 #19780 [Verbose] > │     let v20 : string = ""                                                    │

00:07:29 #19781 [Verbose] > │     struct (v18, v19, v20, v17)                                              │

00:07:29 #19782 [Verbose] > │ method0()                                                                    │

00:07:29 #19783 [Verbose] > │                                                                              │

00:07:29 #19784 [Verbose] > │                                                                              │

00:07:29 #19785 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:29 #19786 [Verbose] >

00:07:29 #19787 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:29 #19788 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:29 #19789 [Verbose] > │ ## derivative                                                                │

00:07:29 #19790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:29 #19791 [Verbose] >

00:07:29 #19792 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:29 #19793 [Verbose] > type derivative = (f64 -> f64) -> f64 -> f64

00:07:29 #19794 [Verbose] >

00:07:29 #19795 [Verbose] > inl derivative dt : derivative =

00:07:29 #19796 [Verbose] >     fun x t =>

00:07:29 #19797 [Verbose] >         (x (t + dt / 2) - x (t - dt / 2)) / dt

00:07:29 #19798 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0206-0679-0525071ab407\main.spi

00:07:30 #19799 [Verbose] >

00:07:30 #19800 [Verbose] > ╭─[ 241.58ms - stdout ]────────────────────────────────────────────────────────╮

00:07:30 #19801 [Verbose] > │ ()                                                                           │

00:07:30 #19802 [Verbose] > │                                                                              │

00:07:30 #19803 [Verbose] > │                                                                              │

00:07:30 #19804 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:30 #19805 [Verbose] >

00:07:30 #19806 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:30 #19807 [Verbose] > // // test

00:07:30 #19808 [Verbose] >

00:07:30 #19809 [Verbose] > derivative 1 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19810 [Verbose] > |> _assert_approx_eq None 0.25

00:07:30 #19811 [Verbose] >

00:07:30 #19812 [Verbose] > derivative 0.001 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19813 [Verbose] > |> _assert_approx_eq None 0.0000002499998827953931

00:07:30 #19814 [Verbose] >

00:07:30 #19815 [Verbose] > derivative 0.000001 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19816 [Verbose] > |> _assert_approx_eq None 0.000000000001000088900582341

00:07:30 #19817 [Verbose] >

00:07:30 #19818 [Verbose] > derivative 0.000000001 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19819 [Verbose] > |> _assert_approx_eq None 0.00000008274037099909037

00:07:30 #19820 [Verbose] >

00:07:30 #19821 [Verbose] > derivative 0.000000000001 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19822 [Verbose] > |> _assert_approx_eq None 0.00008890058234101161

00:07:30 #19823 [Verbose] >

00:07:30 #19824 [Verbose] > derivative 0.000000000000001 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19825 [Verbose] > |> _assert_approx_eq None -0.0007992778373592246

00:07:30 #19826 [Verbose] >

00:07:30 #19827 [Verbose] > derivative 0.000000000000000001 (fun x => x ** 4 / 4) 1 - 1

00:07:30 #19828 [Verbose] > |> _assert_approx_eq None -1

00:07:30 #19829 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0231-3126-3a0d05fdfdf0\main.spi

00:07:30 #19830 [Verbose] >

00:07:30 #19831 [Verbose] > ╭─[ 377.72ms - stdout ]────────────────────────────────────────────────────────╮

00:07:30 #19832 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:30 #19833 [Verbose] > │     let v0 : string = $"%A{0.25}"                                            │

00:07:30 #19834 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:30 #19835 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.25} / expected: %A{0.25}"    │

00:07:30 #19836 [Verbose] > │     let v2 : string = $"%A{2.499998827953931E-07}"                           │

00:07:30 #19837 [Verbose] > │     System.Console.WriteLine v2                                              │

00:07:30 #19838 [Verbose] > │     let v3 : string = $"__expect / actual: %A{2.499998827953931E-07} /       │

00:07:30 #19839 [Verbose] > │ expected: %A{2.499998827953931E-07}"                                         │

00:07:30 #19840 [Verbose] > │     let v4 : string = $"%A{1.000088900582341E-12}"                           │

00:07:30 #19841 [Verbose] > │     System.Console.WriteLine v4                                              │

00:07:30 #19842 [Verbose] > │     let v5 : string = $"__expect / actual: %A{1.000088900582341E-12} /       │

00:07:30 #19843 [Verbose] > │ expected: %A{1.000088900582341E-12}"                                         │

00:07:30 #19844 [Verbose] > │     let v6 : string = $"%A{8.274037099909037E-08}"                           │

00:07:30 #19845 [Verbose] > │     System.Console.WriteLine v6                                              │

00:07:30 #19846 [Verbose] > │     let v7 : string = $"__expect / actual: %A{8.274037099909037E-08} /       │

00:07:30 #19847 [Verbose] > │ expected: %A{8.274037099909037E-08}"                                         │

00:07:30 #19848 [Verbose] > │     let v8 : string = $"%A{8.890058234101161E-05}"                           │

00:07:30 #19849 [Verbose] > │     System.Console.WriteLine v8                                              │

00:07:30 #19850 [Verbose] > │     let v9 : string = $"__expect / actual: %A{8.890058234101161E-05} /       │

00:07:30 #19851 [Verbose] > │ expected: %A{8.890058234101161E-05}"                                         │

00:07:30 #19852 [Verbose] > │     let v10 : string = $"%A{-0.0007992778373592246}"                         │

00:07:30 #19853 [Verbose] > │     System.Console.WriteLine v10                                             │

00:07:30 #19854 [Verbose] > │     let v11 : string = $"__expect / actual: %A{-0.0007992778373592246} /     │

00:07:30 #19855 [Verbose] > │ expected: %A{-0.0007992778373592246}"                                        │

00:07:30 #19856 [Verbose] > │     let v12 : string = $"%A{-1.0}"                                           │

00:07:30 #19857 [Verbose] > │     System.Console.WriteLine v12                                             │

00:07:30 #19858 [Verbose] > │     let v13 : string = $"__expect / actual: %A{-1.0} / expected: %A{-1.0}"   │

00:07:30 #19859 [Verbose] > │     ()                                                                       │

00:07:30 #19860 [Verbose] > │ method0()                                                                    │

00:07:30 #19861 [Verbose] > │                                                                              │

00:07:30 #19862 [Verbose] > │ 0.25                                                                         │

00:07:30 #19863 [Verbose] > │ 2.499998828e-07                                                              │

00:07:30 #19864 [Verbose] > │ 1.000088901e-12                                                              │

00:07:30 #19865 [Verbose] > │ 8.2740371e-08                                                                │

00:07:30 #19866 [Verbose] > │ 8.890058234e-05                                                              │

00:07:30 #19867 [Verbose] > │ -0.0007992778374                                                             │

00:07:30 #19868 [Verbose] > │ -1.0                                                                         │

00:07:30 #19869 [Verbose] > │                                                                              │

00:07:30 #19870 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:30 #19871 [Verbose] >

00:07:30 #19872 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:30 #19873 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:30 #19874 [Verbose] > │ ## integration                                                               │

00:07:30 #19875 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:30 #19876 [Verbose] >

00:07:30 #19877 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:30 #19878 [Verbose] > type integration = (f64 -> f64) -> f64 -> f64 -> f64

00:07:30 #19879 [Verbose] >

00:07:30 #19880 [Verbose] > inl integral dt : integration =

00:07:30 #19881 [Verbose] >     fun f a b =>

00:07:30 #19882 [Verbose] >         inl rec loop t y =

00:07:30 #19883 [Verbose] >             if t < b

00:07:30 #19884 [Verbose] >             then loop (t + dt) (y + f t * dt)

00:07:30 #19885 [Verbose] >             else t, y

00:07:30 #19886 [Verbose] >         loop (a + dt / 2) 0

00:07:30 #19887 [Verbose] >         |> snd

00:07:30 #19888 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0271-7186-7969ade1d4f7\main.spi

00:07:30 #19889 [Verbose] >

00:07:30 #19890 [Verbose] > ╭─[ 199.85ms - stdout ]────────────────────────────────────────────────────────╮

00:07:30 #19891 [Verbose] > │ ()                                                                           │

00:07:30 #19892 [Verbose] > │                                                                              │

00:07:30 #19893 [Verbose] > │                                                                              │

00:07:30 #19894 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:30 #19895 [Verbose] >

00:07:30 #19896 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:30 #19897 [Verbose] > // // test

00:07:30 #19898 [Verbose] >

00:07:30 #19899 [Verbose] > integral 0.01 math.square 0 1

00:07:30 #19900 [Verbose] > |> _assert_approx_eq None 0.33332500000000004

00:07:30 #19901 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0291-9173-9ded3c24cde7\main.spi

00:07:30 #19902 [Verbose] >

00:07:30 #19903 [Verbose] > ╭─[ 242.82ms - stdout ]────────────────────────────────────────────────────────╮

00:07:30 #19904 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:30 #19905 [Verbose] > │     let v0 : string = $"%A{0.3333250000000004}"                              │

00:07:30 #19906 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:30 #19907 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.3333250000000004} /          │

00:07:30 #19908 [Verbose] > │ expected: %A{0.33332500000000004}"                                           │

00:07:30 #19909 [Verbose] > │     ()                                                                       │

00:07:30 #19910 [Verbose] > │ method0()                                                                    │

00:07:30 #19911 [Verbose] > │                                                                              │

00:07:30 #19912 [Verbose] > │ 0.333325                                                                     │

00:07:30 #19913 [Verbose] > │                                                                              │

00:07:30 #19914 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:30 #19915 [Verbose] >

00:07:30 #19916 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:30 #19917 [Verbose] > inl integral' dt : integration =

00:07:30 #19918 [Verbose] >     fun f a b =>

00:07:30 #19919 [Verbose] >         listm'.init_series (a + dt / 2) (b - dt / 2) dt

00:07:30 #19920 [Verbose] >         |> listm.map (f >> (*) dt)

00:07:30 #19921 [Verbose] >         |> listm'.sum

00:07:31 #19922 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0316-1652-1d4473b8a862\main.spi

00:07:31 #19923 [Verbose] >

00:07:31 #19924 [Verbose] > ╭─[ 266.62ms - stdout ]────────────────────────────────────────────────────────╮

00:07:31 #19925 [Verbose] > │ ()                                                                           │

00:07:31 #19926 [Verbose] > │                                                                              │

00:07:31 #19927 [Verbose] > │                                                                              │

00:07:31 #19928 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:31 #19929 [Verbose] >

00:07:31 #19930 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:31 #19931 [Verbose] > // // test

00:07:31 #19932 [Verbose] >

00:07:31 #19933 [Verbose] > integral' 0.1 math.square 0 1

00:07:31 #19934 [Verbose] > |> _assert_approx_eq None (integral 0.1 math.square 0 1)

00:07:31 #19935 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0343-4338-454dc0032256\main.spi

00:07:31 #19936 [Verbose] >

00:07:31 #19937 [Verbose] > ╭─[ 244.32ms - stdout ]────────────────────────────────────────────────────────╮

00:07:31 #19938 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:31 #19939 [Verbose] > │     let v0 : string = $"%A{0.3325000000000001}"                              │

00:07:31 #19940 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:31 #19941 [Verbose] > │     let v1 : string = $"__expect / actual: %A{0.3325000000000001} /          │

00:07:31 #19942 [Verbose] > │ expected: %A{0.33249999999999996}"                                           │

00:07:31 #19943 [Verbose] > │     ()                                                                       │

00:07:31 #19944 [Verbose] > │ method0()                                                                    │

00:07:31 #19945 [Verbose] > │                                                                              │

00:07:31 #19946 [Verbose] > │ 0.3325                                                                       │

00:07:31 #19947 [Verbose] > │                                                                              │

00:07:31 #19948 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:31 #19949 [Verbose] >

00:07:31 #19950 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:31 #19951 [Verbose] > inl integral'' dt : integration =

00:07:31 #19952 [Verbose] >     fun f a b =>

00:07:31 #19953 [Verbose] >         am'.init_series (a + dt / 2) (b - dt / 2) dt

00:07:31 #19954 [Verbose] >         |> am.map (f >> (*) dt)

00:07:31 #19955 [Verbose] >         |> am'.sum

00:07:31 #19956 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0368-6841-6c6db655603b\main.spi

00:07:31 #19957 [Verbose] >

00:07:31 #19958 [Verbose] > ╭─[ 215.31ms - stdout ]────────────────────────────────────────────────────────╮

00:07:31 #19959 [Verbose] > │ ()                                                                           │

00:07:31 #19960 [Verbose] > │                                                                              │

00:07:31 #19961 [Verbose] > │                                                                              │

00:07:31 #19962 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:31 #19963 [Verbose] >

00:07:31 #19964 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:31 #19965 [Verbose] > // // test

00:07:31 #19966 [Verbose] >

00:07:31 #19967 [Verbose] > integral'' 0.01 math.square 0 1

00:07:31 #19968 [Verbose] > |> _assert_approx_eq None (integral 0.01 math.square 0 1)

00:07:31 #19969 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0390-9014-9c9a6d4eea81\main.spi

00:07:32 #19970 [Verbose] >

00:07:32 #19971 [Verbose] > ╭─[ 376.48ms - stdout ]────────────────────────────────────────────────────────╮

00:07:32 #19972 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:32 #19973 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : float}                          │

00:07:32 #19974 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:32 #19975 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:32 #19976 [Verbose] > │     let v2 : bool = v1 < 100                                                 │

00:07:32 #19977 [Verbose] > │     v2                                                                       │

00:07:32 #19978 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:32 #19979 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:32 #19980 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:32 #19981 [Verbose] > │     v3                                                                       │

00:07:32 #19982 [Verbose] > │ and method3 (v0 : int32, v1 : Mut1) : bool =                                 │

00:07:32 #19983 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:32 #19984 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:32 #19985 [Verbose] > │     v3                                                                       │

00:07:32 #19986 [Verbose] > │ and method4 (v0 : bool) : bool =                                             │

00:07:32 #19987 [Verbose] > │     v0                                                                       │

00:07:32 #19988 [Verbose] > │ and method0 () : unit =                                                      │

00:07:32 #19989 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (100)                      │

00:07:32 #19990 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:32 #19991 [Verbose] > │     while method1(v1) do                                                     │

00:07:32 #19992 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:32 #19993 [Verbose] > │         let v4 : float = float v3                                            │

00:07:32 #19994 [Verbose] > │         let v5 : float = 0.01 * v4                                           │

00:07:32 #19995 [Verbose] > │         let v6 : float = 0.005 + v5                                          │

00:07:32 #19996 [Verbose] > │         v0.[int v3] <- v6                                                    │

00:07:32 #19997 [Verbose] > │         let v7 : int32 = v3 + 1                                              │

00:07:32 #19998 [Verbose] > │         v1.l0 <- v7                                                          │

00:07:32 #19999 [Verbose] > │         ()                                                                   │

00:07:32 #20000 [Verbose] > │     let v8 : int32 = v0.Length                                               │

00:07:32 #20001 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │

00:07:32 #20002 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │

00:07:32 #20003 [Verbose] > │     while method2(v8, v10) do                                                │

00:07:32 #20004 [Verbose] > │         let v12 : int32 = v10.l0                                             │

00:07:32 #20005 [Verbose] > │         let v13 : float = v0.[int v12]                                       │

00:07:32 #20006 [Verbose] > │         let v14 : float = v13 ** 2.0                                         │

00:07:32 #20007 [Verbose] > │         let v15 : float = 0.01 * v14                                         │

00:07:32 #20008 [Verbose] > │         v9.[int v12] <- v15                                                  │

00:07:32 #20009 [Verbose] > │         let v16 : int32 = v12 + 1                                            │

00:07:32 #20010 [Verbose] > │         v10.l0 <- v16                                                        │

00:07:32 #20011 [Verbose] > │         ()                                                                   │

00:07:32 #20012 [Verbose] > │     let v17 : int32 = v9.Length                                              │

00:07:32 #20013 [Verbose] > │     let v18 : Mut1 = {l0 = 0; l1 = 0.0} : Mut1                               │

00:07:32 #20014 [Verbose] > │     while method3(v17, v18) do                                               │

00:07:32 #20015 [Verbose] > │         let v20 : int32 = v18.l0                                             │

00:07:32 #20016 [Verbose] > │         let v21 : float = v18.l1                                             │

00:07:32 #20017 [Verbose] > │         let v22 : float = v9.[int v20]                                       │

00:07:32 #20018 [Verbose] > │         let v23 : float = v21 + v22                                          │

00:07:32 #20019 [Verbose] > │         let v24 : int32 = v20 + 1                                            │

00:07:32 #20020 [Verbose] > │         v18.l0 <- v24                                                        │

00:07:32 #20021 [Verbose] > │         v18.l1 <- v23                                                        │

00:07:32 #20022 [Verbose] > │         ()                                                                   │

00:07:32 #20023 [Verbose] > │     let v25 : float = v18.l1                                                 │

00:07:32 #20024 [Verbose] > │     let v26 : string = $"%A{v25}"                                            │

00:07:32 #20025 [Verbose] > │     System.Console.WriteLine v26                                             │

00:07:32 #20026 [Verbose] > │     let v27 : float = 0.3333250000000004 - v25                               │

00:07:32 #20027 [Verbose] > │     let v28 : float =  -v27                                                  │

00:07:32 #20028 [Verbose] > │     let v29 : bool = v27 >= v28                                              │

00:07:32 #20029 [Verbose] > │     let v30 : float =                                                        │

00:07:32 #20030 [Verbose] > │         if v29 then                                                          │

00:07:32 #20031 [Verbose] > │             v27                                                              │

00:07:32 #20032 [Verbose] > │         else                                                                 │

00:07:32 #20033 [Verbose] > │             v28                                                              │

00:07:32 #20034 [Verbose] > │     let v31 : bool = v30 < 1E-08                                             │

00:07:32 #20035 [Verbose] > │     let v33 : bool =                                                         │

00:07:32 #20036 [Verbose] > │         if v31 then                                                          │

00:07:32 #20037 [Verbose] > │             true                                                             │

00:07:32 #20038 [Verbose] > │         else                                                                 │

00:07:32 #20039 [Verbose] > │             method4(v31)                                                     │

00:07:32 #20040 [Verbose] > │     let v34 : string = $"__expect / actual: %A{v25} / expected:              │

00:07:32 #20041 [Verbose] > │ %A{0.3333250000000004}"                                                      │

00:07:32 #20042 [Verbose] > │     let v35 : bool = v33 = false                                             │

00:07:32 #20043 [Verbose] > │     if v35 then                                                              │

00:07:32 #20044 [Verbose] > │         failwith<unit> v34                                                   │

00:07:32 #20045 [Verbose] > │ method0()                                                                    │

00:07:32 #20046 [Verbose] > │                                                                              │

00:07:32 #20047 [Verbose] > │ 0.333325                                                                     │

00:07:32 #20048 [Verbose] > │                                                                              │

00:07:32 #20049 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20050 [Verbose] >

00:07:32 #20051 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:32 #20052 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:32 #20053 [Verbose] > │ ## anti_derivative                                                           │

00:07:32 #20054 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20055 [Verbose] >

00:07:32 #20056 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:32 #20057 [Verbose] > inl anti_derivative dt v0 a t =

00:07:32 #20058 [Verbose] >     v0 + integral' dt a 0 t

00:07:32 #20059 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0431-3189-327d1fa4f033\main.spi

00:07:32 #20060 [Verbose] >

00:07:32 #20061 [Verbose] > ╭─[ 205.30ms - stdout ]────────────────────────────────────────────────────────╮

00:07:32 #20062 [Verbose] > │ ()                                                                           │

00:07:32 #20063 [Verbose] > │                                                                              │

00:07:32 #20064 [Verbose] > │                                                                              │

00:07:32 #20065 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20066 [Verbose] >

00:07:32 #20067 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:32 #20068 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:32 #20069 [Verbose] > │ ## velocity_ft                                                               │

00:07:32 #20070 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20071 [Verbose] >

00:07:32 #20072 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:32 #20073 [Verbose] > type velocity_ft = mass -> velocity -> list (time -> force) -> (time ->

00:07:32 #20074 [Verbose] > velocity)

00:07:32 #20075 [Verbose] >

00:07:32 #20076 [Verbose] > inl velocity_ft dt : velocity_ft =

00:07:32 #20077 [Verbose] >     fun m v0 fs =>

00:07:32 #20078 [Verbose] >         inl f_net t = fs |> listm.map (fun f => f t) |> listm'.sum

00:07:32 #20079 [Verbose] >         inl a t = f_net t / m

00:07:32 #20080 [Verbose] >         anti_derivative dt v0 a

00:07:32 #20081 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0452-5290-588e4333b274\main.spi

00:07:32 #20082 [Verbose] >

00:07:32 #20083 [Verbose] > ╭─[ 214.92ms - stdout ]────────────────────────────────────────────────────────╮

00:07:32 #20084 [Verbose] > │ ()                                                                           │

00:07:32 #20085 [Verbose] > │                                                                              │

00:07:32 #20086 [Verbose] > │                                                                              │

00:07:32 #20087 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20088 [Verbose] >

00:07:32 #20089 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:32 #20090 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:32 #20091 [Verbose] > │ ## position_ft                                                               │

00:07:32 #20092 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20093 [Verbose] >

00:07:32 #20094 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:32 #20095 [Verbose] > type position_ft = mass -> position -> velocity -> list (time -> force) -> (time

00:07:32 #20096 [Verbose] > -> position)

00:07:32 #20097 [Verbose] >

00:07:32 #20098 [Verbose] > inl position_ft dt : position_ft =

00:07:32 #20099 [Verbose] >     fun m x0 v0 fs =>

00:07:32 #20100 [Verbose] >         velocity_ft dt m v0 fs

00:07:32 #20101 [Verbose] >         |> anti_derivative dt x0

00:07:32 #20102 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0475-7505-7cf833b59ea6\main.spi

00:07:32 #20103 [Verbose] >

00:07:32 #20104 [Verbose] > ╭─[ 241.91ms - stdout ]────────────────────────────────────────────────────────╮

00:07:32 #20105 [Verbose] > │ ()                                                                           │

00:07:32 #20106 [Verbose] > │                                                                              │

00:07:32 #20107 [Verbose] > │                                                                              │

00:07:32 #20108 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:32 #20109 [Verbose] >

00:07:32 #20110 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:32 #20111 [Verbose] > // // test

00:07:32 #20112 [Verbose] >

00:07:32 #20113 [Verbose] > inl pedal_coast (t : time) : force =

00:07:32 #20114 [Verbose] >     inl t_cycle = 20

00:07:32 #20115 [Verbose] >     inl n_complete : i32 = t / t_cycle |> conv

00:07:32 #20116 [Verbose] >     inl remainder = t - conv n_complete * t_cycle

00:07:32 #20117 [Verbose] >     if remainder > 0 && remainder < 10

00:07:32 #20118 [Verbose] >     then 10

00:07:32 #20119 [Verbose] >     else 0

00:07:32 #20120 [Verbose] >

00:07:32 #20121 [Verbose] > inl x = am'.init_series -5 45 0.1

00:07:32 #20122 [Verbose] > inl y = x |> am.map pedal_coast

00:07:32 #20123 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "force on bike (N)", x, y ]]

00:07:32 #20124 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0499-9943-9e56dfb10ad9\main.spi

00:07:33 #20125 [Verbose] >

00:07:33 #20126 [Verbose] > ╭─[ 285.38ms - return value ]──────────────────────────────────────────────────╮

00:07:33 #20127 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:33 #20128 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:33 #20129 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:33 #20130 [Verbose] > │ stroke="none"/>                                                              │

00:07:33 #20131 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:33 #20132 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:33 #20133 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:33 #20134 [Verbose] > │ child pedaling then coasting                                                 │

00:07:33 #20135 [Verbose] > │ </text>                                                                      │

00:07:33 #20136 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:33 #20137 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20138 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:33 #20139 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20140 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:33 #20141 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20142 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:33 #20143 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20144 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=...                   │

00:07:33 #20145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:33 #20146 [Verbose] >

00:07:33 #20147 [Verbose] > ╭─[ 298.31ms - stdout ]────────────────────────────────────────────────────────╮

00:07:33 #20148 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:33 #20149 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:33 #20150 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:33 #20151 [Verbose] > │     let v2 : bool = v1 < 501                                                 │

00:07:33 #20152 [Verbose] > │     v2                                                                       │

00:07:33 #20153 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:33 #20154 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:33 #20155 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:33 #20156 [Verbose] > │     v3                                                                       │

00:07:33 #20157 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:33 #20158 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:33 #20159 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (501)                      │

00:07:33 #20160 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:33 #20161 [Verbose] > │     while method1(v1) do                                                     │

00:07:33 #20162 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:33 #20163 [Verbose] > │         let v4 : float = float v3                                            │

00:07:33 #20164 [Verbose] > │         let v5 : float = 0.1 * v4                                            │

00:07:33 #20165 [Verbose] > │         let v6 : float = -5.0 + v5                                           │

00:07:33 #20166 [Verbose] > │         v0.[int v3] <- v6                                                    │

00:07:33 #20167 [Verbose] > │         let v7 : int32 = v3 + 1                                              │

00:07:33 #20168 [Verbose] > │         v1.l0 <- v7                                                          │

00:07:33 #20169 [Verbose] > │         ()                                                                   │

00:07:33 #20170 [Verbose] > │     let v8 : int32 = v0.Length                                               │

00:07:33 #20171 [Verbose] > │     let v9 : (float []) = Array.zeroCreate<float> (v8)                       │

00:07:33 #20172 [Verbose] > │     let v10 : Mut0 = {l0 = 0} : Mut0                                         │

00:07:33 #20173 [Verbose] > │     while method2(v8, v10) do                                                │

00:07:33 #20174 [Verbose] > │         let v12 : int32 = v10.l0                                             │

00:07:33 #20175 [Verbose] > │         let v13 : float = v0.[int v12]                                       │

00:07:33 #20176 [Verbose] > │         let v14 : float = v13 / 20.0                                         │

00:07:33 #20177 [Verbose] > │         let v15 : int32 = int32 v14                                          │

00:07:33 #20178 [Verbose] > │         let v16 : float = float v15                                          │

00:07:33 #20179 [Verbose] > │         let v17 : float = v16 * 20.0                                         │

00:07:33 #20180 [Verbose] > │         let v18 : float = v13 - v17                                          │

00:07:33 #20181 [Verbose] > │         let v19 : bool = v18 > 0.0                                           │

00:07:33 #20182 [Verbose] > │         let v21 : bool =                                                     │

00:07:33 #20183 [Verbose] > │             if v19 then                                                      │

00:07:33 #20184 [Verbose] > │                 let v20 : bool = v18 < 10.0                                  │

00:07:33 #20185 [Verbose] > │                 v20                                                          │

00:07:33 #20186 [Verbose] > │             else                                                             │

00:07:33 #20187 [Verbose] > │                 false                                                        │

00:07:33 #20188 [Verbose] > │         let v22 : float =                                                    │

00:07:33 #20189 [Verbose] > │             if v21 then                                                      │

00:07:33 #20190 [Verbose] > │                 10.0                                                         │

00:07:33 #20191 [Verbose] > │             else                                                             │

00:07:33 #20192 [Verbose] > │                 0.0                                                          │

00:07:33 #20193 [Verbose] > │         v9.[int v12] <- v22                                                  │

00:07:33 #20194 [Verbose] > │         let v23 : int32 = v12 + 1                                            │

00:07:33 #20195 [Verbose] > │         v10.l0 <- v23                                                        │

00:07:33 #20196 [Verbose] > │         ()                                                                   │

00:07:33 #20197 [Verbose] > │     let v24 : string = "force on bike (N)"                                   │

00:07:33 #20198 [Verbose] > │     let v25 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:33 #20199 [Verbose] > │ (v24, v0, v9)|]                                                              │

00:07:33 #20200 [Verbose] > │     let v26 : string = "child pedaling then coasting"                        │

00:07:33 #20201 [Verbose] > │     let v27 : string = "time (s)"                                            │

00:07:33 #20202 [Verbose] > │     let v28 : string = ""                                                    │

00:07:33 #20203 [Verbose] > │     struct (v26, v27, v28, v25)                                              │

00:07:33 #20204 [Verbose] > │ method0()                                                                    │

00:07:33 #20205 [Verbose] > │                                                                              │

00:07:33 #20206 [Verbose] > │                                                                              │

00:07:33 #20207 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:33 #20208 [Verbose] >

00:07:33 #20209 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:33 #20210 [Verbose] > // // test

00:07:33 #20211 [Verbose] >

00:07:33 #20212 [Verbose] > inl x = am'.init_series -5 45 1

00:07:33 #20213 [Verbose] > inl y = x |> am.map (position_ft 0.1f64 20 0 0 [[ pedal_coast ]])

00:07:33 #20214 [Verbose] > "child pedaling then coasting", "time (s)", "", ;[[ "position of bike (m)", x, y

00:07:33 #20215 [Verbose] > ]]

00:07:33 #20216 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0532-3253-374ba918c153\main.spi

00:07:33 #20217 [Verbose] >

00:07:33 #20218 [Verbose] > ╭─[ 632.20ms - return value ]──────────────────────────────────────────────────╮

00:07:33 #20219 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:33 #20220 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:33 #20221 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:33 #20222 [Verbose] > │ stroke="none"/>                                                              │

00:07:33 #20223 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:33 #20224 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:33 #20225 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:33 #20226 [Verbose] > │ child pedaling then coasting                                                 │

00:07:33 #20227 [Verbose] > │ </text>                                                                      │

00:07:33 #20228 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:33 #20229 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20230 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:33 #20231 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20232 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:33 #20233 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20234 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:33 #20235 [Verbose] > │ y2="75"/>                                                                    │

00:07:33 #20236 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=...                   │

00:07:33 #20237 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:33 #20238 [Verbose] >

00:07:33 #20239 [Verbose] > ╭─[ 644.15ms - stdout ]────────────────────────────────────────────────────────╮

00:07:33 #20240 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:33 #20241 [Verbose] > │ and UH0 =                                                                    │

00:07:33 #20242 [Verbose] > │     | UH0_0                                                                  │

00:07:33 #20243 [Verbose] > │     | UH0_1 of float * UH0                                                   │

00:07:33 #20244 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:33 #20245 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:33 #20246 [Verbose] > │     let v2 : bool = v1 < 51                                                  │

00:07:33 #20247 [Verbose] > │     v2                                                                       │

00:07:33 #20248 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:33 #20249 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:33 #20250 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:33 #20251 [Verbose] > │     v3                                                                       │

00:07:33 #20252 [Verbose] > │ and method3 (v0 : float, v1 : float) : UH0 =                                 │

00:07:33 #20253 [Verbose] > │     let v2 : bool = v1 < v0                                                  │

00:07:33 #20254 [Verbose] > │     if v2 then                                                               │

00:07:33 #20255 [Verbose] > │         let v3 : float = 0.1 * v1                                            │

00:07:33 #20256 [Verbose] > │         let v4 : float = 0.05 + v3                                           │

00:07:33 #20257 [Verbose] > │         let v5 : float = v1 + 1.0                                            │

00:07:33 #20258 [Verbose] > │         let v6 : UH0 = method3(v0, v5)                                       │

00:07:33 #20259 [Verbose] > │         UH0_1(v4, v6)                                                        │

00:07:33 #20260 [Verbose] > │     else                                                                     │

00:07:33 #20261 [Verbose] > │         UH0_0                                                                │

00:07:33 #20262 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:07:33 #20263 [Verbose] > │     match v0 with                                                            │

00:07:33 #20264 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:07:33 #20265 [Verbose] > │         let v4 : UH0 = method5(v3, v1)                                       │

00:07:33 #20266 [Verbose] > │         let v5 : float = v2 / 20.0                                           │

00:07:33 #20267 [Verbose] > │         let v6 : int32 = int32 v5                                            │

00:07:33 #20268 [Verbose] > │         let v7 : float = float v6                                            │

00:07:33 #20269 [Verbose] > │         let v8 : float = v7 * 20.0                                           │

00:07:33 #20270 [Verbose] > │         let v9 : float = v2 - v8                                             │

00:07:33 #20271 [Verbose] > │         let v10 : bool = v9 > 0.0                                            │

00:07:33 #20272 [Verbose] > │         let v12 : bool =                                                     │

00:07:33 #20273 [Verbose] > │             if v10 then                                                      │

00:07:33 #20274 [Verbose] > │                 let v11 : bool = v9 < 10.0                                   │

00:07:33 #20275 [Verbose] > │                 v11                                                          │

00:07:33 #20276 [Verbose] > │             else                                                             │

00:07:33 #20277 [Verbose] > │                 false                                                        │

00:07:33 #20278 [Verbose] > │         let v13 : float =                                                    │

00:07:33 #20279 [Verbose] > │             if v12 then                                                      │

00:07:33 #20280 [Verbose] > │                 10.0                                                         │

00:07:33 #20281 [Verbose] > │             else                                                             │

00:07:33 #20282 [Verbose] > │                 0.0                                                          │

00:07:33 #20283 [Verbose] > │         let v14 : float = v13 / 20.0                                         │

00:07:33 #20284 [Verbose] > │         let v15 : float = 0.1 * v14                                          │

00:07:33 #20285 [Verbose] > │         UH0_1(v15, v4)                                                       │

00:07:33 #20286 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:33 #20287 [Verbose] > │         v1                                                                   │

00:07:33 #20288 [Verbose] > │ and method6 (v0 : UH0, v1 : float) : float =                                 │

00:07:33 #20289 [Verbose] > │     match v0 with                                                            │

00:07:33 #20290 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:07:33 #20291 [Verbose] > │         let v4 : float = v1 + v2                                             │

00:07:33 #20292 [Verbose] > │         method6(v3, v4)                                                      │

00:07:33 #20293 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:33 #20294 [Verbose] > │         v1                                                                   │

00:07:33 #20295 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:07:33 #20296 [Verbose] > │     match v0 with                                                            │

00:07:33 #20297 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:07:33 #20298 [Verbose] > │         let v4 : UH0 = method4(v3, v1)                                       │

00:07:33 #20299 [Verbose] > │         let v5 : float = v2 - 0.05                                           │

00:07:33 #20300 [Verbose] > │         let v6 : float = v5 - 0.05                                           │

00:07:33 #20301 [Verbose] > │         let v7 : float = v6 / 0.1                                            │

00:07:33 #20302 [Verbose] > │         let v8 : float = v7 + 1.0                                            │

00:07:33 #20303 [Verbose] > │         let v9 : float = 0.0                                                 │

00:07:33 #20304 [Verbose] > │         let v10 : UH0 = method3(v8, v9)                                      │

00:07:33 #20305 [Verbose] > │         let v11 : UH0 = UH0_0                                                │

00:07:33 #20306 [Verbose] > │         let v12 : UH0 = method5(v10, v11)                                    │

00:07:33 #20307 [Verbose] > │         let v13 : float = 0.0                                                │

00:07:33 #20308 [Verbose] > │         let v14 : float = method6(v12, v13)                                  │

00:07:33 #20309 [Verbose] > │         let v15 : float = 0.1 * v14                                          │

00:07:33 #20310 [Verbose] > │         UH0_1(v15, v4)                                                       │

00:07:33 #20311 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:33 #20312 [Verbose] > │         v1                                                                   │

00:07:33 #20313 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:33 #20314 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:33 #20315 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (51)                       │

00:07:33 #20316 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:33 #20317 [Verbose] > │     while method1(v1) do                                                     │

00:07:33 #20318 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:33 #20319 [Verbose] > │         let v4 : float = float v3                                            │

00:07:33 #20320 [Verbose] > │         let v5 : float = -5.0 + v4                                           │

00:07:33 #20321 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:33 #20322 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:33 #20323 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:33 #20324 [Verbose] > │         ()                                                                   │

00:07:33 #20325 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:33 #20326 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:33 #20327 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:33 #20328 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:33 #20329 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:33 #20330 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:33 #20331 [Verbose] > │         let v13 : float = v12 - 0.05                                         │

00:07:33 #20332 [Verbose] > │         let v14 : float = v13 - 0.05                                         │

00:07:33 #20333 [Verbose] > │         let v15 : float = v14 / 0.1                                          │

00:07:33 #20334 [Verbose] > │         let v16 : float = v15 + 1.0                                          │

00:07:33 #20335 [Verbose] > │         let v17 : float = 0.0                                                │

00:07:33 #20336 [Verbose] > │         let v18 : UH0 = method3(v16, v17)                                    │

00:07:33 #20337 [Verbose] > │         let v19 : UH0 = UH0_0                                                │

00:07:33 #20338 [Verbose] > │         let v20 : UH0 = method4(v18, v19)                                    │

00:07:33 #20339 [Verbose] > │         let v21 : float = 0.0                                                │

00:07:33 #20340 [Verbose] > │         let v22 : float = method6(v20, v21)                                  │

00:07:33 #20341 [Verbose] > │         v8.[int v11] <- v22                                                  │

00:07:33 #20342 [Verbose] > │         let v23 : int32 = v11 + 1                                            │

00:07:33 #20343 [Verbose] > │         v9.l0 <- v23                                                         │

00:07:33 #20344 [Verbose] > │         ()                                                                   │

00:07:33 #20345 [Verbose] > │     let v24 : string = "position of bike (m)"                                │

00:07:33 #20346 [Verbose] > │     let v25 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:33 #20347 [Verbose] > │ (v24, v0, v8)|]                                                              │

00:07:33 #20348 [Verbose] > │     let v26 : string = "child pedaling then coasting"                        │

00:07:33 #20349 [Verbose] > │     let v27 : string = "time (s)"                                            │

00:07:33 #20350 [Verbose] > │     let v28 : string = ""                                                    │

00:07:33 #20351 [Verbose] > │     struct (v26, v27, v28, v25)                                              │

00:07:33 #20352 [Verbose] > │ method0()                                                                    │

00:07:33 #20353 [Verbose] > │                                                                              │

00:07:33 #20354 [Verbose] > │                                                                              │

00:07:33 #20355 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:33 #20356 [Verbose] >

00:07:33 #20357 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:33 #20358 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:33 #20359 [Verbose] > │ ## velocity_fv                                                               │

00:07:33 #20360 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:33 #20361 [Verbose] >

00:07:33 #20362 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:33 #20363 [Verbose] > inl newton_second_v m fs v0 =

00:07:33 #20364 [Verbose] >     fs |> listm.map (fun f => f v0) |> listm'.sum |> fun x => x / m

00:07:33 #20365 [Verbose] >

00:07:33 #20366 [Verbose] > inl update_velocity dt m fs v0 =

00:07:33 #20367 [Verbose] >     v0 + newton_second_v m fs v0 * dt

00:07:33 #20368 [Verbose] >

00:07:33 #20369 [Verbose] > inl velocity_fv dt m v0 fs t =

00:07:33 #20370 [Verbose] >     stream.iterate (update_velocity dt m fs) v0

00:07:33 #20371 [Verbose] >     |> stream.try_item (t / dt |> math.round |> abs)

00:07:33 #20372 [Verbose] >     |> optionm'.default_value 0

00:07:33 #20373 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0602-0220-0e8b3a976cd7\main.spi

00:07:34 #20374 [Verbose] >

00:07:34 #20375 [Verbose] > ╭─[ 270.15ms - stdout ]────────────────────────────────────────────────────────╮

00:07:34 #20376 [Verbose] > │ ()                                                                           │

00:07:34 #20377 [Verbose] > │                                                                              │

00:07:34 #20378 [Verbose] > │                                                                              │

00:07:34 #20379 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:34 #20380 [Verbose] >

00:07:34 #20381 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:34 #20382 [Verbose] > inl f_air drag rho area v =

00:07:34 #20383 [Verbose] >     -drag * rho * area * abs v * v / 2

00:07:34 #20384 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0629-2947-2c3402a90c3f\main.spi

00:07:34 #20385 [Verbose] >

00:07:34 #20386 [Verbose] > ╭─[ 353.70ms - stdout ]────────────────────────────────────────────────────────╮

00:07:34 #20387 [Verbose] > │ ()                                                                           │

00:07:34 #20388 [Verbose] > │                                                                              │

00:07:34 #20389 [Verbose] > │                                                                              │

00:07:34 #20390 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:34 #20391 [Verbose] >

00:07:34 #20392 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:34 #20393 [Verbose] > // // test

00:07:34 #20394 [Verbose] >

00:07:34 #20395 [Verbose] > inl x = am'.init_series 0 60 0.5

00:07:34 #20396 [Verbose] > inl y = x |> am.map (velocity_fv 1 70 0f64 [[ fun _ => 100; f_air 2 1.225 0.6

00:07:34 #20397 [Verbose] > ]])

00:07:34 #20398 [Verbose] > "bike velocity", "time (s)", "", ;[[ "velocity of bike (m/s)", x, y ]]

00:07:34 #20399 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0665-6501-623d7e271490\main.spi

00:07:35 #20400 [Verbose] >

00:07:35 #20401 [Verbose] > ╭─[ 627.33ms - return value ]──────────────────────────────────────────────────╮

00:07:35 #20402 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:35 #20403 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:35 #20404 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:35 #20405 [Verbose] > │ stroke="none"/>                                                              │

00:07:35 #20406 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:35 #20407 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:35 #20408 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:35 #20409 [Verbose] > │ bike velocity                                                                │

00:07:35 #20410 [Verbose] > │ </text>                                                                      │

00:07:35 #20411 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │

00:07:35 #20412 [Verbose] > │ y2="75"/>                                                                    │

00:07:35 #20413 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:35 #20414 [Verbose] > │ y2="75"/>                                                                    │

00:07:35 #20415 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │

00:07:35 #20416 [Verbose] > │ y2="75"/>                                                                    │

00:07:35 #20417 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │

00:07:35 #20418 [Verbose] > │ y2="75"/>                                                                    │

00:07:35 #20419 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" y1="424" x...    │

00:07:35 #20420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:35 #20421 [Verbose] >

00:07:35 #20422 [Verbose] > ╭─[ 646.89ms - stdout ]────────────────────────────────────────────────────────╮

00:07:35 #20423 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:35 #20424 [Verbose] > │ and UH0 =                                                                    │

00:07:35 #20425 [Verbose] > │     | UH0_0 of float * (unit -> UH0)                                         │

00:07:35 #20426 [Verbose] > │     | UH0_1                                                                  │

00:07:35 #20427 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:07:35 #20428 [Verbose] > │     | US0_0 of f0_0 : float                                                  │

00:07:35 #20429 [Verbose] > │     | US0_1                                                                  │

00:07:35 #20430 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:35 #20431 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:35 #20432 [Verbose] > │     let v2 : bool = v1 < 121                                                 │

00:07:35 #20433 [Verbose] > │     v2                                                                       │

00:07:35 #20434 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:35 #20435 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:35 #20436 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:35 #20437 [Verbose] > │     v3                                                                       │

00:07:35 #20438 [Verbose] > │ and closure129 () () : UH0 =                                                 │

00:07:35 #20439 [Verbose] > │     let v0 : (unit -> UH0) = closure129()                                    │

00:07:35 #20440 [Verbose] > │     UH0_0(11.664236870396083, v0)                                            │

00:07:35 #20441 [Verbose] > │ and closure128 () () : UH0 =                                                 │

00:07:35 #20442 [Verbose] > │     let v0 : (unit -> UH0) = closure129()                                    │

00:07:35 #20443 [Verbose] > │     UH0_0(11.664236870396081, v0)                                            │

00:07:35 #20444 [Verbose] > │ and closure127 () () : UH0 =                                                 │

00:07:35 #20445 [Verbose] > │     let v0 : (unit -> UH0) = closure128()                                    │

00:07:35 #20446 [Verbose] > │     UH0_0(11.66423687039608, v0)                                             │

00:07:35 #20447 [Verbose] > │ and closure126 () () : UH0 =                                                 │

00:07:35 #20448 [Verbose] > │     let v0 : (unit -> UH0) = closure127()                                    │

00:07:35 #20449 [Verbose] > │     UH0_0(11.664236870396078, v0)                                            │

00:07:35 #20450 [Verbose] > │ and closure125 () () : UH0 =                                                 │

00:07:35 #20451 [Verbose] > │     let v0 : (unit -> UH0) = closure126()                                    │

00:07:35 #20452 [Verbose] > │     UH0_0(11.664236870396074, v0)                                            │

00:07:35 #20453 [Verbose] > │ and closure124 () () : UH0 =                                                 │

00:07:35 #20454 [Verbose] > │     let v0 : (unit -> UH0) = closure125()                                    │

00:07:35 #20455 [Verbose] > │     UH0_0(11.66423687039607, v0)                                             │

00:07:35 #20456 [Verbose] > │ and closure123 () () : UH0 =                                                 │

00:07:35 #20457 [Verbose] > │     let v0 : (unit -> UH0) = closure124()                                    │

00:07:35 #20458 [Verbose] > │     UH0_0(11.664236870396065, v0)                                            │

00:07:35 #20459 [Verbose] > │ and closure122 () () : UH0 =                                                 │

00:07:35 #20460 [Verbose] > │     let v0 : (unit -> UH0) = closure123()                                    │

00:07:35 #20461 [Verbose] > │     UH0_0(11.664236870396058, v0)                                            │

00:07:35 #20462 [Verbose] > │ and closure121 () () : UH0 =                                                 │

00:07:35 #20463 [Verbose] > │     let v0 : (unit -> UH0) = closure122()                                    │

00:07:35 #20464 [Verbose] > │     UH0_0(11.66423687039605, v0)                                             │

00:07:35 #20465 [Verbose] > │ and closure120 () () : UH0 =                                                 │

00:07:35 #20466 [Verbose] > │     let v0 : (unit -> UH0) = closure121()                                    │

00:07:35 #20467 [Verbose] > │     UH0_0(11.664236870396037, v0)                                            │

00:07:35 #20468 [Verbose] > │ and closure119 () () : UH0 =                                                 │

00:07:35 #20469 [Verbose] > │     let v0 : (unit -> UH0) = closure120()                                    │

00:07:35 #20470 [Verbose] > │     UH0_0(11.66423687039602, v0)                                             │

00:07:35 #20471 [Verbose] > │ and closure118 () () : UH0 =                                                 │

00:07:35 #20472 [Verbose] > │     let v0 : (unit -> UH0) = closure119()                                    │

00:07:35 #20473 [Verbose] > │     UH0_0(11.664236870396, v0)                                               │

00:07:35 #20474 [Verbose] > │ and closure117 () () : UH0 =                                                 │

00:07:35 #20475 [Verbose] > │     let v0 : (unit -> UH0) = closure118()                                    │

00:07:35 #20476 [Verbose] > │     UH0_0(11.664236870395971, v0)                                            │

00:07:35 #20477 [Verbose] > │ and closure116 () () : UH0 =                                                 │

00:07:35 #20478 [Verbose] > │     let v0 : (unit -> UH0) = closure117()                                    │

00:07:35 #20479 [Verbose] > │     UH0_0(11.664236870395934, v0)                                            │

00:07:35 #20480 [Verbose] > │ and closure115 () () : UH0 =                                                 │

00:07:35 #20481 [Verbose] > │     let v0 : (unit -> UH0) = closure116()                                    │

00:07:35 #20482 [Verbose] > │     UH0_0(11.664236870395884, v0)                                            │

00:07:35 #20483 [Verbose] > │ and closure114 () () : UH0 =                                                 │

00:07:35 #20484 [Verbose] > │     let v0 : (unit -> UH0) = closure115()                                    │

00:07:35 #20485 [Verbose] > │     UH0_0(11.664236870395818, v0)                                            │

00:07:35 #20486 [Verbose] > │ and closure113 () () : UH0 =                                                 │

00:07:35 #20487 [Verbose] > │     let v0 : (unit -> UH0) = closure114()                                    │

00:07:35 #20488 [Verbose] > │     UH0_0(11.664236870395731, v0)                                            │

00:07:35 #20489 [Verbose] > │ and closure112 () () : UH0 =                                                 │

00:07:35 #20490 [Verbose] > │     let v0 : (unit -> UH0) = closure113()                                    │

00:07:35 #20491 [Verbose] > │     UH0_0(11.664236870395616, v0)                                            │

00:07:35 #20492 [Verbose] > │ and closure111 () () : UH0 =                                                 │

00:07:35 #20493 [Verbose] > │     let v0 : (unit -> UH0) = closure112()                                    │

00:07:35 #20494 [Verbose] > │     UH0_0(11.664236870395463, v0)                                            │

00:07:35 #20495 [Verbose] > │ and closure110 () () : UH0 =                                                 │

00:07:35 #20496 [Verbose] > │     let v0 : (unit -> UH0) = closure111()                                    │

00:07:35 #20497 [Verbose] > │     UH0_0(11.66423687039526, v0)                                             │

00:07:35 #20498 [Verbose] > │ and closure109 () () : UH0 =                                                 │

00:07:35 #20499 [Verbose] > │     let v0 : (unit -> UH0) = closure110()                                    │

00:07:35 #20500 [Verbose] > │     UH0_0(11.664236870394992, v0)                                            │

00:07:35 #20501 [Verbose] > │ and closure108 () () : UH0 =                                                 │

00:07:35 #20502 [Verbose] > │     let v0 : (unit -> UH0) = closure109()                                    │

00:07:35 #20503 [Verbose] > │     UH0_0(11.664236870394637, v0)                                            │

00:07:35 #20504 [Verbose] > │ and closure107 () () : UH0 =                                                 │

00:07:35 #20505 [Verbose] > │     let v0 : (unit -> UH0) = closure108()                                    │

00:07:35 #20506 [Verbose] > │     UH0_0(11.664236870394168, v0)                                            │

00:07:35 #20507 [Verbose] > │ and closure106 () () : UH0 =                                                 │

00:07:35 #20508 [Verbose] > │     let v0 : (unit -> UH0) = closure107()                                    │

00:07:35 #20509 [Verbose] > │     UH0_0(11.664236870393546, v0)                                            │

00:07:35 #20510 [Verbose] > │ and closure105 () () : UH0 =                                                 │

00:07:35 #20511 [Verbose] > │     let v0 : (unit -> UH0) = closure106()                                    │

00:07:35 #20512 [Verbose] > │     UH0_0(11.664236870392722, v0)                                            │

00:07:35 #20513 [Verbose] > │ and closure104 () () : UH0 =                                                 │

00:07:35 #20514 [Verbose] > │     let v0 : (unit -> UH0) = closure105()                                    │

00:07:35 #20515 [Verbose] > │     UH0_0(11.664236870391631, v0)                                            │

00:07:35 #20516 [Verbose] > │ and closure103 () () : UH0 =                                                 │

00:07:35 #20517 [Verbose] > │     let v0 : (unit -> UH0) = closure104()                                    │

00:07:35 #20518 [Verbose] > │     UH0_0(11.664236870390187, v0)                                            │

00:07:35 #20519 [Verbose] > │ and closure102 () () : UH0 =                                                 │

00:07:35 #20520 [Verbose] > │     let v0 : (unit -> UH0) = closure103()                                    │

00:07:35 #20521 [Verbose] > │     UH0_0(11.664236870388274, v0)                                            │

00:07:35 #20522 [Verbose] > │ and closure101 () () : UH0 =                                                 │

00:07:35 #20523 [Verbose] > │     let v0 : (unit -> UH0) = closure102()                                    │

00:07:35 #20524 [Verbose] > │     UH0_0(11.66423687038574, v0)                                             │

00:07:35 #20525 [Verbose] > │ and closure100 () () : UH0 =                                                 │

00:07:35 #20526 [Verbose] > │     let v0 : (unit -> UH0) = closure101()                                    │

00:07:35 #20527 [Verbose] > │     UH0_0(11.664236870382384, v0)                                            │

00:07:35 #20528 [Verbose] > │ and closure99 () () : UH0 =                                                  │

00:07:35 #20529 [Verbose] > │     let v0 : (unit -> UH0) = closure100()                                    │

00:07:35 #20530 [Verbose] > │     UH0_0(11.664236870377938, v0)                                            │

00:07:35 #20531 [Verbose] > │ and closure98 () () : UH0 =                                                  │

00:07:35 #20532 [Verbose] > │     let v0 : (unit -> UH0) = closure99()                                     │

00:07:35 #20533 [Verbose] > │     UH0_0(11.66423687037205, v0)                                             │

00:07:35 #20534 [Verbose] > │ and closure97 () () : UH0 =                                                  │

00:07:35 #20535 [Verbose] > │     let v0 : (unit -> UH0) = closure98()                                     │

00:07:35 #20536 [Verbose] > │     UH0_0(11.664236870364254, v0)                                            │

00:07:35 #20537 [Verbose] > │ and closure96 () () : UH0 =                                                  │

00:07:35 #20538 [Verbose] > │     let v0 : (unit -> UH0) = closure97()                                     │

00:07:35 #20539 [Verbose] > │     UH0_0(11.664236870353927, v0)                                            │

00:07:35 #20540 [Verbose] > │ and closure95 () () : UH0 =                                                  │

00:07:35 #20541 [Verbose] > │     let v0 : (unit -> UH0) = closure96()                                     │

00:07:35 #20542 [Verbose] > │     UH0_0(11.664236870340249, v0)                                            │

00:07:35 #20543 [Verbose] > │ and closure94 () () : UH0 =                                                  │

00:07:35 #20544 [Verbose] > │     let v0 : (unit -> UH0) = closure95()                                     │

00:07:35 #20545 [Verbose] > │     UH0_0(11.664236870322135, v0)                                            │

00:07:35 #20546 [Verbose] > │ and closure93 () () : UH0 =                                                  │

00:07:35 #20547 [Verbose] > │     let v0 : (unit -> UH0) = closure94()                                     │

00:07:35 #20548 [Verbose] > │     UH0_0(11.664236870298145, v0)                                            │

00:07:35 #20549 [Verbose] > │ and closure92 () () : UH0 =                                                  │

00:07:35 #20550 [Verbose] > │     let v0 : (unit -> UH0) = closure93()                                     │

00:07:35 #20551 [Verbose] > │     UH0_0(11.664236870266372, v0)                                            │

00:07:35 #20552 [Verbose] > │ and closure91 () () : UH0 =                                                  │

00:07:35 #20553 [Verbose] > │     let v0 : (unit -> UH0) = closure92()                                     │

00:07:35 #20554 [Verbose] > │     UH0_0(11.664236870224292, v0)                                            │

00:07:35 #20555 [Verbose] > │ and closure90 () () : UH0 =                                                  │

00:07:35 #20556 [Verbose] > │     let v0 : (unit -> UH0) = closure91()                                     │

00:07:35 #20557 [Verbose] > │     UH0_0(11.66423687016856, v0)                                             │

00:07:35 #20558 [Verbose] > │ and closure89 () () : UH0 =                                                  │

00:07:35 #20559 [Verbose] > │     let v0 : (unit -> UH0) = closure90()                                     │

00:07:35 #20560 [Verbose] > │     UH0_0(11.664236870094747, v0)                                            │

00:07:35 #20561 [Verbose] > │ and closure88 () () : UH0 =                                                  │

00:07:35 #20562 [Verbose] > │     let v0 : (unit -> UH0) = closure89()                                     │

00:07:35 #20563 [Verbose] > │     UH0_0(11.664236869996989, v0)                                            │

00:07:35 #20564 [Verbose] > │ and closure87 () () : UH0 =                                                  │

00:07:35 #20565 [Verbose] > │     let v0 : (unit -> UH0) = closure88()                                     │

00:07:35 #20566 [Verbose] > │     UH0_0(11.664236869867516, v0)                                            │

00:07:35 #20567 [Verbose] > │ and closure86 () () : UH0 =                                                  │

00:07:35 #20568 [Verbose] > │     let v0 : (unit -> UH0) = closure87()                                     │

00:07:35 #20569 [Verbose] > │     UH0_0(11.66423686969604, v0)                                             │

00:07:35 #20570 [Verbose] > │ and closure85 () () : UH0 =                                                  │

00:07:35 #20571 [Verbose] > │     let v0 : (unit -> UH0) = closure86()                                     │

00:07:35 #20572 [Verbose] > │     UH0_0(11.664236869468937, v0)                                            │

00:07:35 #20573 [Verbose] > │ and closure84 () () : UH0 =                                                  │

00:07:35 #20574 [Verbose] > │     let v0 : (unit -> UH0) = closure85()                                     │

00:07:35 #20575 [Verbose] > │     UH0_0(11.664236869168157, v0)                                            │

00:07:35 #20576 [Verbose] > │ and closure83 () () : UH0 =                                                  │

00:07:35 #20577 [Verbose] > │     let v0 : (unit -> UH0) = closure84()                                     │

00:07:35 #20578 [Verbose] > │     UH0_0(11.6642368687698, v0)                                              │

00:07:35 #20579 [Verbose] > │ and closure82 () () : UH0 =                                                  │

00:07:35 #20580 [Verbose] > │     let v0 : (unit -> UH0) = closure83()                                     │

00:07:35 #20581 [Verbose] > │     UH0_0(11.664236868242211, v0)                                            │

00:07:35 #20582 [Verbose] > │ and closure81 () () : UH0 =                                                  │

00:07:35 #20583 [Verbose] > │     let v0 : (unit -> UH0) = closure82()                                     │

00:07:35 #20584 [Verbose] > │     UH0_0(11.664236867543465, v0)                                            │

00:07:35 #20585 [Verbose] > │ and closure80 () () : UH0 =                                                  │

00:07:35 #20586 [Verbose] > │     let v0 : (unit -> UH0) = closure81()                                     │

00:07:35 #20587 [Verbose] > │     UH0_0(11.664236866618037, v0)                                            │

00:07:35 #20588 [Verbose] > │ and closure79 () () : UH0 =                                                  │

00:07:35 #20589 [Verbose] > │     let v0 : (unit -> UH0) = closure80()                                     │

00:07:35 #20590 [Verbose] > │     UH0_0(11.664236865392386, v0)                                            │

00:07:35 #20591 [Verbose] > │ and closure78 () () : UH0 =                                                  │

00:07:35 #20592 [Verbose] > │     let v0 : (unit -> UH0) = closure79()                                     │

00:07:35 #20593 [Verbose] > │     UH0_0(11.664236863769117, v0)                                            │

00:07:35 #20594 [Verbose] > │ and closure77 () () : UH0 =                                                  │

00:07:35 #20595 [Verbose] > │     let v0 : (unit -> UH0) = closure78()                                     │

00:07:35 #20596 [Verbose] > │     UH0_0(11.664236861619237, v0)                                            │

00:07:35 #20597 [Verbose] > │ and closure76 () () : UH0 =                                                  │

00:07:35 #20598 [Verbose] > │     let v0 : (unit -> UH0) = closure77()                                     │

00:07:35 #20599 [Verbose] > │     UH0_0(11.664236858771906, v0)                                            │

00:07:35 #20600 [Verbose] > │ and closure75 () () : UH0 =                                                  │

00:07:35 #20601 [Verbose] > │     let v0 : (unit -> UH0) = closure76()                                     │

00:07:35 #20602 [Verbose] > │     UH0_0(11.66423685500086, v0)                                             │

00:07:35 #20603 [Verbose] > │ and closure74 () () : UH0 =                                                  │

00:07:35 #20604 [Verbose] > │     let v0 : (unit -> UH0) = closure75()                                     │

00:07:35 #20605 [Verbose] > │     UH0_0(11.664236850006436, v0)                                            │

00:07:35 #20606 [Verbose] > │ and closure73 () () : UH0 =                                                  │

00:07:35 #20607 [Verbose] > │     let v0 : (unit -> UH0) = closure74()                                     │

00:07:35 #20608 [Verbose] > │     UH0_0(11.664236843391752, v0)                                            │

00:07:35 #20609 [Verbose] > │ and closure72 () () : UH0 =                                                  │

00:07:35 #20610 [Verbose] > │     let v0 : (unit -> UH0) = closure73()                                     │

00:07:35 #20611 [Verbose] > │     UH0_0(11.664236834631172, v0)                                            │

00:07:35 #20612 [Verbose] > │ and closure71 () () : UH0 =                                                  │

00:07:35 #20613 [Verbose] > │     let v0 : (unit -> UH0) = closure72()                                     │

00:07:35 #20614 [Verbose] > │     UH0_0(11.66423682302854, v0)                                             │

00:07:35 #20615 [Verbose] > │ and closure70 () () : UH0 =                                                  │

00:07:35 #20616 [Verbose] > │     let v0 : (unit -> UH0) = closure71()                                     │

00:07:35 #20617 [Verbose] > │     UH0_0(11.664236807661855, v0)                                            │

00:07:35 #20618 [Verbose] > │ and closure69 () () : UH0 =                                                  │

00:07:35 #20619 [Verbose] > │     let v0 : (unit -> UH0) = closure70()                                     │

00:07:35 #20620 [Verbose] > │     UH0_0(11.664236787310005, v0)                                            │

00:07:35 #20621 [Verbose] > │ and closure68 () () : UH0 =                                                  │

00:07:35 #20622 [Verbose] > │     let v0 : (unit -> UH0) = closure69()                                     │

00:07:35 #20623 [Verbose] > │     UH0_0(11.664236760355733, v0)                                            │

00:07:35 #20624 [Verbose] > │ and closure67 () () : UH0 =                                                  │

00:07:35 #20625 [Verbose] > │     let v0 : (unit -> UH0) = closure68()                                     │

00:07:35 #20626 [Verbose] > │     UH0_0(11.664236724657123, v0)                                            │

00:07:35 #20627 [Verbose] > │ and closure66 () () : UH0 =                                                  │

00:07:35 #20628 [Verbose] > │     let v0 : (unit -> UH0) = closure67()                                     │

00:07:35 #20629 [Verbose] > │     UH0_0(11.66423667737739, v0)                                             │

00:07:35 #20630 [Verbose] > │ and closure65 () () : UH0 =                                                  │

00:07:35 #20631 [Verbose] > │     let v0 : (unit -> UH0) = closure66()                                     │

00:07:35 #20632 [Verbose] > │     UH0_0(11.664236614759462, v0)                                            │

00:07:35 #20633 [Verbose] > │ and closure64 () () : UH0 =                                                  │

00:07:35 #20634 [Verbose] > │     let v0 : (unit -> UH0) = closure65()                                     │

00:07:35 #20635 [Verbose] > │     UH0_0(11.664236531827415, v0)                                            │

00:07:35 #20636 [Verbose] > │ and closure63 () () : UH0 =                                                  │

00:07:35 #20637 [Verbose] > │     let v0 : (unit -> UH0) = closure64()                                     │

00:07:35 #20638 [Verbose] > │     UH0_0(11.664236421991067, v0)                                            │

00:07:35 #20639 [Verbose] > │ and closure62 () () : UH0 =                                                  │

00:07:35 #20640 [Verbose] > │     let v0 : (unit -> UH0) = closure63()                                     │

00:07:35 #20641 [Verbose] > │     UH0_0(11.664236276522294, v0)                                            │

00:07:35 #20642 [Verbose] > │ and closure61 () () : UH0 =                                                  │

00:07:35 #20643 [Verbose] > │     let v0 : (unit -> UH0) = closure62()                                     │

00:07:35 #20644 [Verbose] > │     UH0_0(11.664236083861448, v0)                                            │

00:07:35 #20645 [Verbose] > │ and closure60 () () : UH0 =                                                  │

00:07:35 #20646 [Verbose] > │     let v0 : (unit -> UH0) = closure61()                                     │

00:07:35 #20647 [Verbose] > │     UH0_0(11.664235828698772, v0)                                            │

00:07:35 #20648 [Verbose] > │ and closure59 () () : UH0 =                                                  │

00:07:35 #20649 [Verbose] > │     let v0 : (unit -> UH0) = closure60()                                     │

00:07:35 #20650 [Verbose] > │     UH0_0(11.664235490757811, v0)                                            │

00:07:35 #20651 [Verbose] > │ and closure58 () () : UH0 =                                                  │

00:07:35 #20652 [Verbose] > │     let v0 : (unit -> UH0) = closure59()                                     │

00:07:35 #20653 [Verbose] > │     UH0_0(11.664235043184158, v0)                                            │

00:07:35 #20654 [Verbose] > │ and closure57 () () : UH0 =                                                  │

00:07:35 #20655 [Verbose] > │     let v0 : (unit -> UH0) = closure58()                                     │

00:07:35 #20656 [Verbose] > │     UH0_0(11.66423445041147, v0)                                             │

00:07:35 #20657 [Verbose] > │ and closure56 () () : UH0 =                                                  │

00:07:35 #20658 [Verbose] > │     let v0 : (unit -> UH0) = closure57()                                     │

00:07:35 #20659 [Verbose] > │     UH0_0(11.664233665335203, v0)                                            │

00:07:35 #20660 [Verbose] > │ and closure55 () () : UH0 =                                                  │

00:07:35 #20661 [Verbose] > │     let v0 : (unit -> UH0) = closure56()                                     │

00:07:35 #20662 [Verbose] > │     UH0_0(11.664232625569467, v0)                                            │

00:07:35 #20663 [Verbose] > │ and closure54 () () : UH0 =                                                  │

00:07:35 #20664 [Verbose] > │     let v0 : (unit -> UH0) = closure55()                                     │

00:07:35 #20665 [Verbose] > │     UH0_0(11.664231248489562, v0)                                            │

00:07:35 #20666 [Verbose] > │ and closure53 () () : UH0 =                                                  │

00:07:35 #20667 [Verbose] > │     let v0 : (unit -> UH0) = closure54()                                     │

00:07:35 #20668 [Verbose] > │     UH0_0(11.664229424666262, v0)                                            │

00:07:35 #20669 [Verbose] > │ and closure52 () () : UH0 =                                                  │

00:07:35 #20670 [Verbose] > │     let v0 : (unit -> UH0) = closure53()                                     │

00:07:35 #20671 [Verbose] > │     UH0_0(11.66422700917009, v0)                                             │

00:07:35 #20672 [Verbose] > │ and closure51 () () : UH0 =                                                  │

00:07:35 #20673 [Verbose] > │     let v0 : (unit -> UH0) = closure52()                                     │

00:07:35 #20674 [Verbose] > │     UH0_0(11.664223810054642, v0)                                            │

00:07:35 #20675 [Verbose] > │ and closure50 () () : UH0 =                                                  │

00:07:35 #20676 [Verbose] > │     let v0 : (unit -> UH0) = closure51()                                     │

00:07:35 #20677 [Verbose] > │     UH0_0(11.664219573103773, v0)                                            │

00:07:35 #20678 [Verbose] > │ and closure49 () () : UH0 =                                                  │

00:07:35 #20679 [Verbose] > │     let v0 : (unit -> UH0) = closure50()                                     │

00:07:35 #20680 [Verbose] > │     UH0_0(11.6642139616307, v0)                                              │

00:07:35 #20681 [Verbose] > │ and closure48 () () : UH0 =                                                  │

00:07:35 #20682 [Verbose] > │     let v0 : (unit -> UH0) = closure49()                                     │

00:07:35 #20683 [Verbose] > │     UH0_0(11.664206529723813, v0)                                            │

00:07:35 #20684 [Verbose] > │ and closure47 () () : UH0 =                                                  │

00:07:35 #20685 [Verbose] > │     let v0 : (unit -> UH0) = closure48()                                     │

00:07:35 #20686 [Verbose] > │     UH0_0(11.664196686813408, v0)                                            │

00:07:35 #20687 [Verbose] > │ and closure46 () () : UH0 =                                                  │

00:07:35 #20688 [Verbose] > │     let v0 : (unit -> UH0) = closure47()                                     │

00:07:35 #20689 [Verbose] > │     UH0_0(11.664183650743945, v0)                                            │

00:07:35 #20690 [Verbose] > │ and closure45 () () : UH0 =                                                  │

00:07:35 #20691 [Verbose] > │     let v0 : (unit -> UH0) = closure46()                                     │

00:07:35 #20692 [Verbose] > │     UH0_0(11.664166385623318, v0)                                            │

00:07:35 #20693 [Verbose] > │ and closure44 () () : UH0 =                                                  │

00:07:35 #20694 [Verbose] > │     let v0 : (unit -> UH0) = closure45()                                     │

00:07:35 #20695 [Verbose] > │     UH0_0(11.664143519511356, v0)                                            │

00:07:35 #20696 [Verbose] > │ and closure43 () () : UH0 =                                                  │

00:07:35 #20697 [Verbose] > │     let v0 : (unit -> UH0) = closure44()                                     │

00:07:35 #20698 [Verbose] > │     UH0_0(11.664113235408447, v0)                                            │

00:07:35 #20699 [Verbose] > │ and closure42 () () : UH0 =                                                  │

00:07:35 #20700 [Verbose] > │     let v0 : (unit -> UH0) = closure43()                                     │

00:07:35 #20701 [Verbose] > │     UH0_0(11.66407312688485, v0)                                             │

00:07:35 #20702 [Verbose] > │ and closure41 () () : UH0 =                                                  │

00:07:35 #20703 [Verbose] > │     let v0 : (unit -> UH0) = closure42()                                     │

00:07:35 #20704 [Verbose] > │     UH0_0(11.664020006883758, v0)                                            │

00:07:35 #20705 [Verbose] > │ and closure40 () () : UH0 =                                                  │

00:07:35 #20706 [Verbose] > │     let v0 : (unit -> UH0) = closure41()                                     │

00:07:35 #20707 [Verbose] > │     UH0_0(11.663949654514292, v0)                                            │

00:07:35 #20708 [Verbose] > │ and closure39 () () : UH0 =                                                  │

00:07:35 #20709 [Verbose] > │     let v0 : (unit -> UH0) = closure40()                                     │

00:07:35 #20710 [Verbose] > │     UH0_0(11.663856479730171, v0)                                            │

00:07:35 #20711 [Verbose] > │ and closure38 () () : UH0 =                                                  │

00:07:35 #20712 [Verbose] > │     let v0 : (unit -> UH0) = closure39()                                     │

00:07:35 #20713 [Verbose] > │     UH0_0(11.663733079277343, v0)                                            │

00:07:35 #20714 [Verbose] > │ and closure37 () () : UH0 =                                                  │

00:07:35 #20715 [Verbose] > │     let v0 : (unit -> UH0) = closure38()                                     │

00:07:35 #20716 [Verbose] > │     UH0_0(11.663569648675777, v0)                                            │

00:07:35 #20717 [Verbose] > │ and closure36 () () : UH0 =                                                  │

00:07:35 #20718 [Verbose] > │     let v0 : (unit -> UH0) = closure37()                                     │

00:07:35 #20719 [Verbose] > │     UH0_0(11.663353203599439, v0)                                            │

00:07:35 #20720 [Verbose] > │ and closure35 () () : UH0 =                                                  │

00:07:35 #20721 [Verbose] > │     let v0 : (unit -> UH0) = closure36()                                     │

00:07:35 #20722 [Verbose] > │     UH0_0(11.663066548940721, v0)                                            │

00:07:35 #20723 [Verbose] > │ and closure34 () () : UH0 =                                                  │

00:07:35 #20724 [Verbose] > │     let v0 : (unit -> UH0) = closure35()                                     │

00:07:35 #20725 [Verbose] > │     UH0_0(11.662686913915445, v0)                                            │

00:07:35 #20726 [Verbose] > │ and closure33 () () : UH0 =                                                  │

00:07:35 #20727 [Verbose] > │     let v0 : (unit -> UH0) = closure34()                                     │

00:07:35 #20728 [Verbose] > │     UH0_0(11.662184145236864, v0)                                            │

00:07:35 #20729 [Verbose] > │ and closure32 () () : UH0 =                                                  │

00:07:35 #20730 [Verbose] > │     let v0 : (unit -> UH0) = closure33()                                     │

00:07:35 #20731 [Verbose] > │     UH0_0(11.661518315638029, v0)                                            │

00:07:35 #20732 [Verbose] > │ and closure31 () () : UH0 =                                                  │

00:07:35 #20733 [Verbose] > │     let v0 : (unit -> UH0) = closure32()                                     │

00:07:35 #20734 [Verbose] > │     UH0_0(11.66063655920926, v0)                                             │

00:07:35 #20735 [Verbose] > │ and closure30 () () : UH0 =                                                  │

00:07:35 #20736 [Verbose] > │     let v0 : (unit -> UH0) = closure31()                                     │

00:07:35 #20737 [Verbose] > │     UH0_0(11.659468884709733, v0)                                            │

00:07:35 #20738 [Verbose] > │ and closure29 () () : UH0 =                                                  │

00:07:35 #20739 [Verbose] > │     let v0 : (unit -> UH0) = closure30()                                     │

00:07:35 #20740 [Verbose] > │     UH0_0(11.657922638782631, v0)                                            │

00:07:35 #20741 [Verbose] > │ and closure28 () () : UH0 =                                                  │

00:07:35 #20742 [Verbose] > │     let v0 : (unit -> UH0) = closure29()                                     │

00:07:35 #20743 [Verbose] > │     UH0_0(11.655875187195818, v0)                                            │

00:07:35 #20744 [Verbose] > │ and closure27 () () : UH0 =                                                  │

00:07:35 #20745 [Verbose] > │     let v0 : (unit -> UH0) = closure28()                                     │

00:07:35 #20746 [Verbose] > │     UH0_0(11.653164246713697, v0)                                            │

00:07:35 #20747 [Verbose] > │ and closure26 () () : UH0 =                                                  │

00:07:35 #20748 [Verbose] > │     let v0 : (unit -> UH0) = closure27()                                     │

00:07:35 #20749 [Verbose] > │     UH0_0(11.64957512416459, v0)                                             │

00:07:35 #20750 [Verbose] > │ and closure25 () () : UH0 =                                                  │

00:07:35 #20751 [Verbose] > │     let v0 : (unit -> UH0) = closure26()                                     │

00:07:35 #20752 [Verbose] > │     UH0_0(11.644823892116417, v0)                                            │

00:07:35 #20753 [Verbose] > │ and closure24 () () : UH0 =                                                  │

00:07:35 #20754 [Verbose] > │     let v0 : (unit -> UH0) = closure25()                                     │

00:07:35 #20755 [Verbose] > │     UH0_0(11.63853524018339, v0)                                             │

00:07:35 #20756 [Verbose] > │ and closure23 () () : UH0 =                                                  │

00:07:35 #20757 [Verbose] > │     let v0 : (unit -> UH0) = closure24()                                     │

00:07:35 #20758 [Verbose] > │     UH0_0(11.630213374558416, v0)                                            │

00:07:35 #20759 [Verbose] > │ and closure22 () () : UH0 =                                                  │

00:07:35 #20760 [Verbose] > │     let v0 : (unit -> UH0) = closure23()                                     │

00:07:35 #20761 [Verbose] > │     UH0_0(11.619203884549703, v0)                                            │

00:07:35 #20762 [Verbose] > │ and closure21 () () : UH0 =                                                  │

00:07:35 #20763 [Verbose] > │     let v0 : (unit -> UH0) = closure22()                                     │

00:07:35 #20764 [Verbose] > │     UH0_0(11.604643948207235, v0)                                            │

00:07:35 #20765 [Verbose] > │ and closure20 () () : UH0 =                                                  │

00:07:35 #20766 [Verbose] > │     let v0 : (unit -> UH0) = closure21()                                     │

00:07:35 #20767 [Verbose] > │     UH0_0(11.585397618384544, v0)                                            │

00:07:35 #20768 [Verbose] > │ and closure19 () () : UH0 =                                                  │

00:07:35 #20769 [Verbose] > │     let v0 : (unit -> UH0) = closure20()                                     │

00:07:35 #20770 [Verbose] > │     UH0_0(11.559972254267073, v0)                                            │

00:07:35 #20771 [Verbose] > │ and closure18 () () : UH0 =                                                  │

00:07:35 #20772 [Verbose] > │     let v0 : (unit -> UH0) = closure19()                                     │

00:07:35 #20773 [Verbose] > │     UH0_0(11.526411536153837, v0)                                            │

00:07:35 #20774 [Verbose] > │ and closure17 () () : UH0 =                                                  │

00:07:35 #20775 [Verbose] > │     let v0 : (unit -> UH0) = closure18()                                     │

00:07:35 #20776 [Verbose] > │     UH0_0(11.48216011776808, v0)                                             │

00:07:35 #20777 [Verbose] > │ and closure16 () () : UH0 =                                                  │

00:07:35 #20778 [Verbose] > │     let v0 : (unit -> UH0) = closure17()                                     │

00:07:35 #20779 [Verbose] > │     UH0_0(11.42389519391233, v0)                                             │

00:07:35 #20780 [Verbose] > │ and closure15 () () : UH0 =                                                  │

00:07:35 #20781 [Verbose] > │     let v0 : (unit -> UH0) = closure16()                                     │

00:07:35 #20782 [Verbose] > │     UH0_0(11.347321723441393, v0)                                            │

00:07:35 #20783 [Verbose] > │ and closure14 () () : UH0 =                                                  │

00:07:35 #20784 [Verbose] > │     let v0 : (unit -> UH0) = closure15()                                     │

00:07:35 #20785 [Verbose] > │     UH0_0(11.246931775734161, v0)                                            │

00:07:35 #20786 [Verbose] > │ and closure13 () () : UH0 =                                                  │

00:07:35 #20787 [Verbose] > │     let v0 : (unit -> UH0) = closure14()                                     │

00:07:35 #20788 [Verbose] > │     UH0_0(11.115736011467376, v0)                                            │

00:07:35 #20789 [Verbose] > │ and closure12 () () : UH0 =                                                  │

00:07:35 #20790 [Verbose] > │     let v0 : (unit -> UH0) = closure13()                                     │

00:07:35 #20791 [Verbose] > │     UH0_0(10.94498876251829, v0)                                             │

00:07:35 #20792 [Verbose] > │ and closure11 () () : UH0 =                                                  │

00:07:35 #20793 [Verbose] > │     let v0 : (unit -> UH0) = closure12()                                     │

00:07:35 #20794 [Verbose] > │     UH0_0(10.72394989903564, v0)                                             │

00:07:35 #20795 [Verbose] > │ and closure10 () () : UH0 =                                                  │

00:07:35 #20796 [Verbose] > │     let v0 : (unit -> UH0) = closure11()                                     │

00:07:35 #20797 [Verbose] > │     UH0_0(10.439758275369812, v0)                                            │

00:07:35 #20798 [Verbose] > │ and closure9 () () : UH0 =                                                   │

00:07:35 #20799 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │

00:07:35 #20800 [Verbose] > │     UH0_0(10.077531599826058, v0)                                            │

00:07:35 #20801 [Verbose] > │ and closure8 () () : UH0 =                                                   │

00:07:35 #20802 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │

00:07:35 #20803 [Verbose] > │     UH0_0(9.62084761372258, v0)                                              │

00:07:35 #20804 [Verbose] > │ and closure7 () () : UH0 =                                                   │

00:07:35 #20805 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │

00:07:35 #20806 [Verbose] > │     UH0_0(9.052781056066443, v0)                                             │

00:07:35 #20807 [Verbose] > │ and closure6 () () : UH0 =                                                   │

00:07:35 #20808 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │

00:07:35 #20809 [Verbose] > │     UH0_0(8.357635347880503, v0)                                             │

00:07:35 #20810 [Verbose] > │ and closure5 () () : UH0 =                                                   │

00:07:35 #20811 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │

00:07:35 #20812 [Verbose] > │     UH0_0(7.523376447621674, v0)                                             │

00:07:35 #20813 [Verbose] > │ and closure4 () () : UH0 =                                                   │

00:07:35 #20814 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │

00:07:35 #20815 [Verbose] > │     UH0_0(6.544529054818572, v0)                                             │

00:07:35 #20816 [Verbose] > │ and closure3 () () : UH0 =                                                   │

00:07:35 #20817 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │

00:07:35 #20818 [Verbose] > │     UH0_0(5.424976512996006, v0)                                             │

00:07:35 #20819 [Verbose] > │ and closure2 () () : UH0 =                                                   │

00:07:35 #20820 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │

00:07:35 #20821 [Verbose] > │     UH0_0(4.179852321428571, v0)                                             │

00:07:35 #20822 [Verbose] > │ and closure1 () () : UH0 =                                                   │

00:07:35 #20823 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │

00:07:35 #20824 [Verbose] > │     UH0_0(2.835714285714286, v0)                                             │

00:07:35 #20825 [Verbose] > │ and closure0 () () : UH0 =                                                   │

00:07:35 #20826 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │

00:07:35 #20827 [Verbose] > │     UH0_0(1.4285714285714286, v0)                                            │

00:07:35 #20828 [Verbose] > │ and method3 (v0 : float, v1 : UH0) : US0 =                                   │

00:07:35 #20829 [Verbose] > │     match v1 with                                                            │

00:07:35 #20830 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:07:35 #20831 [Verbose] > │         let v4 : bool = v0 <= 0.0                                            │

00:07:35 #20832 [Verbose] > │         if v4 then                                                           │

00:07:35 #20833 [Verbose] > │             US0_0(v2)                                                        │

00:07:35 #20834 [Verbose] > │         else                                                                 │

00:07:35 #20835 [Verbose] > │             let v6 : float = v0 - 1.0                                        │

00:07:35 #20836 [Verbose] > │             let v7 : UH0 = v3 ()                                             │

00:07:35 #20837 [Verbose] > │             method3(v6, v7)                                                  │

00:07:35 #20838 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:07:35 #20839 [Verbose] > │         US0_1                                                                │

00:07:35 #20840 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:35 #20841 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:35 #20842 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (121)                      │

00:07:35 #20843 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:35 #20844 [Verbose] > │     while method1(v1) do                                                     │

00:07:35 #20845 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:35 #20846 [Verbose] > │         let v4 : float = float v3                                            │

00:07:35 #20847 [Verbose] > │         let v5 : float = 0.5 * v4                                            │

00:07:35 #20848 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:35 #20849 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:35 #20850 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:35 #20851 [Verbose] > │         ()                                                                   │

00:07:35 #20852 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:35 #20853 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:35 #20854 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:35 #20855 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:35 #20856 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:35 #20857 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:35 #20858 [Verbose] > │         let v13 : float = round v12                                          │

00:07:35 #20859 [Verbose] > │         let v14 : float =  -v13                                              │

00:07:35 #20860 [Verbose] > │         let v15 : bool = v13 >= v14                                          │

00:07:35 #20861 [Verbose] > │         let v16 : float =                                                    │

00:07:35 #20862 [Verbose] > │             if v15 then                                                      │

00:07:35 #20863 [Verbose] > │                 v13                                                          │

00:07:35 #20864 [Verbose] > │             else                                                             │

00:07:35 #20865 [Verbose] > │                 v14                                                          │

00:07:35 #20866 [Verbose] > │         let v17 : float = 0.0                                                │

00:07:35 #20867 [Verbose] > │         let v18 : (unit -> UH0) = closure0()                                 │

00:07:35 #20868 [Verbose] > │         let v19 : UH0 = UH0_0(v17, v18)                                      │

00:07:35 #20869 [Verbose] > │         let v20 : US0 = method3(v16, v19)                                    │

00:07:35 #20870 [Verbose] > │         let v23 : float =                                                    │

00:07:35 #20871 [Verbose] > │             match v20 with                                                   │

00:07:35 #20872 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:07:35 #20873 [Verbose] > │                 0.0                                                          │

00:07:35 #20874 [Verbose] > │             | US0_0(v21) -> (* Some *)                                       │

00:07:35 #20875 [Verbose] > │                 v21                                                          │

00:07:35 #20876 [Verbose] > │         v8.[int v11] <- v23                                                  │

00:07:35 #20877 [Verbose] > │         let v24 : int32 = v11 + 1                                            │

00:07:35 #20878 [Verbose] > │         v9.l0 <- v24                                                         │

00:07:35 #20879 [Verbose] > │         ()                                                                   │

00:07:35 #20880 [Verbose] > │     let v25 : string = "velocity of bike (m/s)"                              │

00:07:35 #20881 [Verbose] > │     let v26 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:35 #20882 [Verbose] > │ (v25, v0, v8)|]                                                              │

00:07:35 #20883 [Verbose] > │     let v27 : string = "bike velocity"                                       │

00:07:35 #20884 [Verbose] > │     let v28 : string = "time (s)"                                            │

00:07:35 #20885 [Verbose] > │     let v29 : string = ""                                                    │

00:07:35 #20886 [Verbose] > │     struct (v27, v28, v29, v26)                                              │

00:07:35 #20887 [Verbose] > │ method0()                                                                    │

00:07:35 #20888 [Verbose] > │                                                                              │

00:07:35 #20889 [Verbose] > │                                                                              │

00:07:35 #20890 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:35 #20891 [Verbose] >

00:07:35 #20892 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:35 #20893 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:35 #20894 [Verbose] > │ ## velocity_ftv                                                              │

00:07:35 #20895 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:35 #20896 [Verbose] >

00:07:35 #20897 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:35 #20898 [Verbose] > inl newton_second_tv m fs (t, v0) =

00:07:35 #20899 [Verbose] >     inl f_net = fs |> listm.map (fun f => f (t, v0)) |> listm'.sum

00:07:35 #20900 [Verbose] >     inl acc = f_net / m

00:07:35 #20901 [Verbose] >     1, acc

00:07:35 #20902 [Verbose] >

00:07:35 #20903 [Verbose] > inl update_tv dt m fs (t, v0) =

00:07:35 #20904 [Verbose] >     inl dtdt, dvdt = newton_second_tv m fs (t, v0)

00:07:35 #20905 [Verbose] >     t + dtdt * dt, v0 + dvdt * dt

00:07:35 #20906 [Verbose] >

00:07:35 #20907 [Verbose] > inl velocity_ftv dt m tv0 fs t =

00:07:35 #20908 [Verbose] >     stream.iterate (join update_tv dt m fs) tv0

00:07:35 #20909 [Verbose] >     |> stream.try_item (t / dt |> math.round |> abs)

00:07:35 #20910 [Verbose] >     |> optionm.map snd

00:07:35 #20911 [Verbose] >     |> optionm'.default_value 0

00:07:35 #20912 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0757-5767-5a62d2286122\main.spi

00:07:35 #20913 [Verbose] >

00:07:35 #20914 [Verbose] > ╭─[ 232.84ms - stdout ]────────────────────────────────────────────────────────╮

00:07:35 #20915 [Verbose] > │ ()                                                                           │

00:07:35 #20916 [Verbose] > │                                                                              │

00:07:35 #20917 [Verbose] > │                                                                              │

00:07:35 #20918 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:35 #20919 [Verbose] >

00:07:35 #20920 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:35 #20921 [Verbose] > // // test

00:07:35 #20922 [Verbose] >

00:07:35 #20923 [Verbose] > inl x = am'.init_series 0 100 0.1

00:07:35 #20924 [Verbose] > inl y =

00:07:35 #20925 [Verbose] >     x

00:07:35 #20926 [Verbose] >     |> am.map (

00:07:35 #20927 [Verbose] >         velocity_ftv 0.1 20 (dyn (0, 0)) [[ fun (t, _) => pedal_coast t; fun (_,

00:07:35 #20928 [Verbose] > v) => f_air 2 1.225 0.5 v ]]

00:07:35 #20929 [Verbose] >     )

00:07:35 #20930 [Verbose] > "pedaling and coasting with air", "time (s)", "", ;[[ "velocity of bike (m/s)",

00:07:35 #20931 [Verbose] > x, y ]]

00:07:35 #20932 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0780-8099-874e0ae9fe3a\main.spi

00:07:36 #20933 [Verbose] >

00:07:36 #20934 [Verbose] > ╭─[ 559.24ms - return value ]──────────────────────────────────────────────────╮

00:07:36 #20935 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:36 #20936 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:36 #20937 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:36 #20938 [Verbose] > │ stroke="none"/>                                                              │

00:07:36 #20939 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:36 #20940 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:36 #20941 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:36 #20942 [Verbose] > │ pedaling and coasting with air                                               │

00:07:36 #20943 [Verbose] > │ </text>                                                                      │

00:07:36 #20944 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:36 #20945 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #20946 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:36 #20947 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #20948 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:36 #20949 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #20950 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:36 #20951 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #20952 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x...                     │

00:07:36 #20953 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:36 #20954 [Verbose] >

00:07:36 #20955 [Verbose] > ╭─[ 574.95ms - stdout ]────────────────────────────────────────────────────────╮

00:07:36 #20956 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:36 #20957 [Verbose] > │ and UH0 =                                                                    │

00:07:36 #20958 [Verbose] > │     | UH0_0 of float * float * (unit -> UH0)                                 │

00:07:36 #20959 [Verbose] > │     | UH0_1                                                                  │

00:07:36 #20960 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:07:36 #20961 [Verbose] > │     | US0_0 of f0_0 : float * f0_1 : float                                   │

00:07:36 #20962 [Verbose] > │     | US0_1                                                                  │

00:07:36 #20963 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:07:36 #20964 [Verbose] > │     | US1_0 of f0_0 : float                                                  │

00:07:36 #20965 [Verbose] > │     | US1_1                                                                  │

00:07:36 #20966 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:36 #20967 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:36 #20968 [Verbose] > │     let v2 : bool = v1 < 1001                                                │

00:07:36 #20969 [Verbose] > │     v2                                                                       │

00:07:36 #20970 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:36 #20971 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:36 #20972 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:36 #20973 [Verbose] > │     v3                                                                       │

00:07:36 #20974 [Verbose] > │ and closure0 () struct (v0 : float, v1 : float) : struct (float * float) =   │

00:07:36 #20975 [Verbose] > │     let v2 : float =  -v1                                                    │

00:07:36 #20976 [Verbose] > │     let v3 : bool = v1 >= v2                                                 │

00:07:36 #20977 [Verbose] > │     let v4 : float =                                                         │

00:07:36 #20978 [Verbose] > │         if v3 then                                                           │

00:07:36 #20979 [Verbose] > │             v1                                                               │

00:07:36 #20980 [Verbose] > │         else                                                                 │

00:07:36 #20981 [Verbose] > │             v2                                                               │

00:07:36 #20982 [Verbose] > │     let v5 : float = -1.225 * v4                                             │

00:07:36 #20983 [Verbose] > │     let v6 : float = v5 * v1                                                 │

00:07:36 #20984 [Verbose] > │     let v7 : float = v6 / 2.0                                                │

00:07:36 #20985 [Verbose] > │     let v8 : float = v0 / 20.0                                               │

00:07:36 #20986 [Verbose] > │     let v9 : int32 = int32 v8                                                │

00:07:36 #20987 [Verbose] > │     let v10 : float = float v9                                               │

00:07:36 #20988 [Verbose] > │     let v11 : float = v10 * 20.0                                             │

00:07:36 #20989 [Verbose] > │     let v12 : float = v0 - v11                                               │

00:07:36 #20990 [Verbose] > │     let v13 : bool = v12 > 0.0                                               │

00:07:36 #20991 [Verbose] > │     let v15 : bool =                                                         │

00:07:36 #20992 [Verbose] > │         if v13 then                                                          │

00:07:36 #20993 [Verbose] > │             let v14 : bool = v12 < 10.0                                      │

00:07:36 #20994 [Verbose] > │             v14                                                              │

00:07:36 #20995 [Verbose] > │         else                                                                 │

00:07:36 #20996 [Verbose] > │             false                                                            │

00:07:36 #20997 [Verbose] > │     let v16 : float =                                                        │

00:07:36 #20998 [Verbose] > │         if v15 then                                                          │

00:07:36 #20999 [Verbose] > │             10.0                                                             │

00:07:36 #21000 [Verbose] > │         else                                                                 │

00:07:36 #21001 [Verbose] > │             0.0                                                              │

00:07:36 #21002 [Verbose] > │     let v17 : float = v16 + v7                                               │

00:07:36 #21003 [Verbose] > │     let v18 : float = v17 / 20.0                                             │

00:07:36 #21004 [Verbose] > │     let v19 : float = v0 + 0.1                                               │

00:07:36 #21005 [Verbose] > │     let v20 : float = v18 * 0.1                                              │

00:07:36 #21006 [Verbose] > │     let v21 : float = v1 + v20                                               │

00:07:36 #21007 [Verbose] > │     struct (v19, v21)                                                        │

00:07:36 #21008 [Verbose] > │ and method3 () : (struct (float * float) -> struct (float * float)) =        │

00:07:36 #21009 [Verbose] > │     closure0()                                                               │

00:07:36 #21010 [Verbose] > │ and closure1 (v0 : (struct (float * float) -> struct (float * float)), v1 :  │

00:07:36 #21011 [Verbose] > │ float, v2 : float, v3 : float, v4 : float) () : UH0 =                        │

00:07:36 #21012 [Verbose] > │     let struct (v5 : float, v6 : float) = v0 struct (v3, v4)                 │

00:07:36 #21013 [Verbose] > │     let v7 : (unit -> UH0) = closure1(v0, v1, v2, v5, v6)                    │

00:07:36 #21014 [Verbose] > │     UH0_0(v3, v4, v7)                                                        │

00:07:36 #21015 [Verbose] > │ and method4 (v0 : float, v1 : UH0) : US0 =                                   │

00:07:36 #21016 [Verbose] > │     match v1 with                                                            │

00:07:36 #21017 [Verbose] > │     | UH0_0(v2, v3, v4) -> (* StreamCons *)                                  │

00:07:36 #21018 [Verbose] > │         let v5 : bool = v0 <= 0.0                                            │

00:07:36 #21019 [Verbose] > │         if v5 then                                                           │

00:07:36 #21020 [Verbose] > │             US0_0(v2, v3)                                                    │

00:07:36 #21021 [Verbose] > │         else                                                                 │

00:07:36 #21022 [Verbose] > │             let v7 : float = v0 - 1.0                                        │

00:07:36 #21023 [Verbose] > │             let v8 : UH0 = v4 ()                                             │

00:07:36 #21024 [Verbose] > │             method4(v7, v8)                                                  │

00:07:36 #21025 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:07:36 #21026 [Verbose] > │         US0_1                                                                │

00:07:36 #21027 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:36 #21028 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:36 #21029 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (1001)                     │

00:07:36 #21030 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:36 #21031 [Verbose] > │     while method1(v1) do                                                     │

00:07:36 #21032 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:36 #21033 [Verbose] > │         let v4 : float = float v3                                            │

00:07:36 #21034 [Verbose] > │         let v5 : float = 0.1 * v4                                            │

00:07:36 #21035 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:36 #21036 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:36 #21037 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:36 #21038 [Verbose] > │         ()                                                                   │

00:07:36 #21039 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:36 #21040 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:36 #21041 [Verbose] > │     let v9 : int32 = v0.Length                                               │

00:07:36 #21042 [Verbose] > │     let v10 : (float []) = Array.zeroCreate<float> (v9)                      │

00:07:36 #21043 [Verbose] > │     let v11 : Mut0 = {l0 = 0} : Mut0                                         │

00:07:36 #21044 [Verbose] > │     while method2(v9, v11) do                                                │

00:07:36 #21045 [Verbose] > │         let v13 : int32 = v11.l0                                             │

00:07:36 #21046 [Verbose] > │         let v14 : float = v0.[int v13]                                       │

00:07:36 #21047 [Verbose] > │         let v15 : (struct (float * float) -> struct (float * float)) =       │

00:07:36 #21048 [Verbose] > │ method3()                                                                    │

00:07:36 #21049 [Verbose] > │         let struct (v16 : float, v17 : float) = v15 struct (v7, v8)          │

00:07:36 #21050 [Verbose] > │         let v18 : float = v14 / 0.1                                          │

00:07:36 #21051 [Verbose] > │         let v19 : float = round v18                                          │

00:07:36 #21052 [Verbose] > │         let v20 : float =  -v19                                              │

00:07:36 #21053 [Verbose] > │         let v21 : bool = v19 >= v20                                          │

00:07:36 #21054 [Verbose] > │         let v22 : float =                                                    │

00:07:36 #21055 [Verbose] > │             if v21 then                                                      │

00:07:36 #21056 [Verbose] > │                 v19                                                          │

00:07:36 #21057 [Verbose] > │             else                                                             │

00:07:36 #21058 [Verbose] > │                 v20                                                          │

00:07:36 #21059 [Verbose] > │         let v23 : (unit -> UH0) = closure1(v15, v7, v8, v16, v17)            │

00:07:36 #21060 [Verbose] > │         let v24 : UH0 = UH0_0(v7, v8, v23)                                   │

00:07:36 #21061 [Verbose] > │         let v25 : US0 = method4(v22, v24)                                    │

00:07:36 #21062 [Verbose] > │         let v31 : US1 =                                                      │

00:07:36 #21063 [Verbose] > │             match v25 with                                                   │

00:07:36 #21064 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:07:36 #21065 [Verbose] > │                 US1_1                                                        │

00:07:36 #21066 [Verbose] > │             | US0_0(v26, v27) -> (* Some *)                                  │

00:07:36 #21067 [Verbose] > │                 US1_0(v27)                                                   │

00:07:36 #21068 [Verbose] > │         let v34 : float =                                                    │

00:07:36 #21069 [Verbose] > │             match v31 with                                                   │

00:07:36 #21070 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:07:36 #21071 [Verbose] > │                 0.0                                                          │

00:07:36 #21072 [Verbose] > │             | US1_0(v32) -> (* Some *)                                       │

00:07:36 #21073 [Verbose] > │                 v32                                                          │

00:07:36 #21074 [Verbose] > │         v10.[int v13] <- v34                                                 │

00:07:36 #21075 [Verbose] > │         let v35 : int32 = v13 + 1                                            │

00:07:36 #21076 [Verbose] > │         v11.l0 <- v35                                                        │

00:07:36 #21077 [Verbose] > │         ()                                                                   │

00:07:36 #21078 [Verbose] > │     let v36 : string = "velocity of bike (m/s)"                              │

00:07:36 #21079 [Verbose] > │     let v37 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:36 #21080 [Verbose] > │ (v36, v0, v10)|]                                                             │

00:07:36 #21081 [Verbose] > │     let v38 : string = "pedaling and coasting with air"                      │

00:07:36 #21082 [Verbose] > │     let v39 : string = "time (s)"                                            │

00:07:36 #21083 [Verbose] > │     let v40 : string = ""                                                    │

00:07:36 #21084 [Verbose] > │     struct (v38, v39, v40, v37)                                              │

00:07:36 #21085 [Verbose] > │ method0()                                                                    │

00:07:36 #21086 [Verbose] > │                                                                              │

00:07:36 #21087 [Verbose] > │                                                                              │

00:07:36 #21088 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:36 #21089 [Verbose] >

00:07:36 #21090 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:36 #21091 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:36 #21092 [Verbose] > │ ## velocity_ftxv                                                             │

00:07:36 #21093 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:36 #21094 [Verbose] >

00:07:36 #21095 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:36 #21096 [Verbose] > nominal state_1d = time * position * velocity

00:07:36 #21097 [Verbose] > nominal rrr = f64 * f64 * f64

00:07:36 #21098 [Verbose] >

00:07:36 #21099 [Verbose] > inl newton_second_1d m fs (state_1d (t, x0, v0)) =

00:07:36 #21100 [Verbose] >     inl f_net = fs |> listm.map (fun f => f (state_1d (t, x0, v0))) |>

00:07:36 #21101 [Verbose] > listm'.sum

00:07:36 #21102 [Verbose] >     inl acc = f_net / m

00:07:36 #21103 [Verbose] >     rrr (1f64, v0, acc)

00:07:36 #21104 [Verbose] >

00:07:36 #21105 [Verbose] > inl euler_1d dt deriv (state_1d (t0, x0, v0) as t) =

00:07:36 #21106 [Verbose] >     inl (rrr (_, _, dvdt)) = deriv t

00:07:36 #21107 [Verbose] >     inl t1 = t0 + dt

00:07:36 #21108 [Verbose] >     inl x1 = x0 + v0 * dt

00:07:36 #21109 [Verbose] >     inl v1 = v0 + dvdt * dt

00:07:36 #21110 [Verbose] >     state_1d (t1, x1, v1)

00:07:36 #21111 [Verbose] >

00:07:36 #21112 [Verbose] > inl update_txv dt m fs =

00:07:36 #21113 [Verbose] >     newton_second_1d m fs |> euler_1d dt

00:07:36 #21114 [Verbose] >

00:07:36 #21115 [Verbose] > inl states_txv dt m txv0 fs =

00:07:36 #21116 [Verbose] >     seq.iterate_ (update_txv dt m fs) txv0

00:07:36 #21117 [Verbose] >

00:07:36 #21118 [Verbose] > inl velocity_1d sts t =

00:07:36 #21119 [Verbose] >     inl (state_1d (t0, _, _)) = sts 0

00:07:36 #21120 [Verbose] >     inl (state_1d (t1, _, _)) = sts 1

00:07:36 #21121 [Verbose] >     inl dt = t1 - t0

00:07:36 #21122 [Verbose] >     inl num_steps = t / dt |> math.round |> abs

00:07:36 #21123 [Verbose] >     inl (state_1d (_, _, v0)) = sts num_steps

00:07:36 #21124 [Verbose] >     v0

00:07:36 #21125 [Verbose] >

00:07:36 #21126 [Verbose] > inl velocity_ftxv dt m txv0 fs =

00:07:36 #21127 [Verbose] >     states_txv dt m txv0 fs |> velocity_1d

00:07:36 #21128 [Verbose] >

00:07:36 #21129 [Verbose] > inl position_1d sts t =

00:07:36 #21130 [Verbose] >     inl (state_1d (t0, _, _)) = sts 0

00:07:36 #21131 [Verbose] >     inl (state_1d (t1, _, _)) = sts 1

00:07:36 #21132 [Verbose] >     inl dt = t1 - t0

00:07:36 #21133 [Verbose] >     inl num_steps = t / dt |> math.round |> abs

00:07:36 #21134 [Verbose] >     inl (state_1d (_, x0, _)) = sts num_steps

00:07:36 #21135 [Verbose] >     x0

00:07:36 #21136 [Verbose] >

00:07:36 #21137 [Verbose] > inl position_ftxv dt m txv0 fs =

00:07:36 #21138 [Verbose] >     states_txv dt m txv0 fs |> position_1d

00:07:36 #21139 [Verbose] >

00:07:36 #21140 [Verbose] > inl spring_force k (state_1d (_, x0, _)) =

00:07:36 #21141 [Verbose] >     -k * x0

00:07:36 #21142 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0845-4528-49b74920a030\main.spi

00:07:36 #21143 [Verbose] >

00:07:36 #21144 [Verbose] > ╭─[ 213.72ms - stdout ]────────────────────────────────────────────────────────╮

00:07:36 #21145 [Verbose] > │ ()                                                                           │

00:07:36 #21146 [Verbose] > │                                                                              │

00:07:36 #21147 [Verbose] > │                                                                              │

00:07:36 #21148 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:36 #21149 [Verbose] >

00:07:36 #21150 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:36 #21151 [Verbose] > // // test

00:07:36 #21152 [Verbose] >

00:07:36 #21153 [Verbose] > inl damped_ho_forces () =

00:07:36 #21154 [Verbose] >     [[

00:07:36 #21155 [Verbose] >         spring_force 0.8

00:07:36 #21156 [Verbose] >         fun (state_1d (_, _, v0)) => f_air 2 1.225 (pi * math.square 0.02) v0

00:07:36 #21157 [Verbose] >         fun _ => -0.0027 * 9.80665

00:07:36 #21158 [Verbose] >     ]]

00:07:36 #21159 [Verbose] >

00:07:36 #21160 [Verbose] > inl damped_ho_states () =

00:07:36 #21161 [Verbose] >     states_txv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ())

00:07:36 #21162 [Verbose] >

00:07:36 #21163 [Verbose] > inl pingpong_position t =

00:07:36 #21164 [Verbose] >     position_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t

00:07:36 #21165 [Verbose] >

00:07:36 #21166 [Verbose] > inl x : a _ f64 = am'.init_series 0 3 0.01

00:07:36 #21167 [Verbose] > inl y = x |> am.map pingpong_position

00:07:36 #21168 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "position (m)", x, y ]]

00:07:36 #21169 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0866-6683-6a25a659da08\main.spi

00:07:36 #21170 [Verbose] >

00:07:36 #21171 [Verbose] > ╭─[ 323.02ms - return value ]──────────────────────────────────────────────────╮

00:07:36 #21172 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:36 #21173 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:36 #21174 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:36 #21175 [Verbose] > │ stroke="none"/>                                                              │

00:07:36 #21176 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:36 #21177 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:36 #21178 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:36 #21179 [Verbose] > │ ping pong ball on a slinky                                                   │

00:07:36 #21180 [Verbose] > │ </text>                                                                      │

00:07:36 #21181 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │

00:07:36 #21182 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #21183 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:36 #21184 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #21185 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │

00:07:36 #21186 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #21187 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │

00:07:36 #21188 [Verbose] > │ y2="75"/>                                                                    │

00:07:36 #21189 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9...                 │

00:07:36 #21190 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:36 #21191 [Verbose] >

00:07:36 #21192 [Verbose] > ╭─[ 334.51ms - stdout ]────────────────────────────────────────────────────────╮

00:07:36 #21193 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:36 #21194 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:36 #21195 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:36 #21196 [Verbose] > │     let v2 : bool = v1 < 301                                                 │

00:07:36 #21197 [Verbose] > │     v2                                                                       │

00:07:36 #21198 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:36 #21199 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:36 #21200 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:36 #21201 [Verbose] > │     v3                                                                       │

00:07:36 #21202 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │

00:07:36 #21203 [Verbose] > │ * float * float) =                                                           │

00:07:36 #21204 [Verbose] > │     let v4 : bool = v3 <= 0.0                                                │

00:07:36 #21205 [Verbose] > │     if v4 then                                                               │

00:07:36 #21206 [Verbose] > │         struct (v0, v1, v2)                                                  │

00:07:36 #21207 [Verbose] > │     else                                                                     │

00:07:36 #21208 [Verbose] > │         let v5 : float =  -v2                                                │

00:07:36 #21209 [Verbose] > │         let v6 : bool = v2 >= v5                                             │

00:07:36 #21210 [Verbose] > │         let v7 : float =                                                     │

00:07:36 #21211 [Verbose] > │             if v6 then                                                       │

00:07:36 #21212 [Verbose] > │                 v2                                                           │

00:07:36 #21213 [Verbose] > │             else                                                             │

00:07:36 #21214 [Verbose] > │                 v5                                                           │

00:07:36 #21215 [Verbose] > │         let v8 : float = -0.0030787608005179976 * v7                         │

00:07:36 #21216 [Verbose] > │         let v9 : float = v8 * v2                                             │

00:07:36 #21217 [Verbose] > │         let v10 : float = v9 / 2.0                                           │

00:07:36 #21218 [Verbose] > │         let v11 : float = -0.8 * v1                                          │

00:07:36 #21219 [Verbose] > │         let v12 : float = v11 + v10                                          │

00:07:36 #21220 [Verbose] > │         let v13 : float = v12 + -0.026477955                                 │

00:07:36 #21221 [Verbose] > │         let v14 : float = v13 / 0.0027                                       │

00:07:36 #21222 [Verbose] > │         let v15 : float = v0 + 0.001                                         │

00:07:36 #21223 [Verbose] > │         let v16 : float = v2 * 0.001                                         │

00:07:36 #21224 [Verbose] > │         let v17 : float = v1 + v16                                           │

00:07:36 #21225 [Verbose] > │         let v18 : float = v14 * 0.001                                        │

00:07:36 #21226 [Verbose] > │         let v19 : float = v2 + v18                                           │

00:07:36 #21227 [Verbose] > │         let v20 : float = v3 - 1.0                                           │

00:07:36 #21228 [Verbose] > │         method3(v15, v17, v19, v20)                                          │

00:07:36 #21229 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:36 #21230 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:36 #21231 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (301)                      │

00:07:36 #21232 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:36 #21233 [Verbose] > │     while method1(v1) do                                                     │

00:07:36 #21234 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:36 #21235 [Verbose] > │         let v4 : float = float v3                                            │

00:07:36 #21236 [Verbose] > │         let v5 : float = 0.01 * v4                                           │

00:07:36 #21237 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:36 #21238 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:36 #21239 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:36 #21240 [Verbose] > │         ()                                                                   │

00:07:36 #21241 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:36 #21242 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:36 #21243 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:36 #21244 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:36 #21245 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:36 #21246 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:36 #21247 [Verbose] > │         let v13 : float = 0.0                                                │

00:07:36 #21248 [Verbose] > │         let v14 : float = 0.1                                                │

00:07:36 #21249 [Verbose] > │         let v15 : float = 0.0                                                │

00:07:36 #21250 [Verbose] > │         let v16 : float = 0.0                                                │

00:07:36 #21251 [Verbose] > │         let struct (v17 : float, v18 : float, v19 : float) = method3(v13,    │

00:07:36 #21252 [Verbose] > │ v14, v15, v16)                                                               │

00:07:36 #21253 [Verbose] > │         let v20 : float = 0.0                                                │

00:07:36 #21254 [Verbose] > │         let v21 : float = 0.1                                                │

00:07:36 #21255 [Verbose] > │         let v22 : float = 0.0                                                │

00:07:36 #21256 [Verbose] > │         let v23 : float = 1.0                                                │

00:07:36 #21257 [Verbose] > │         let struct (v24 : float, v25 : float, v26 : float) = method3(v20,    │

00:07:36 #21258 [Verbose] > │ v21, v22, v23)                                                               │

00:07:36 #21259 [Verbose] > │         let v27 : float = v24 - v17                                          │

00:07:36 #21260 [Verbose] > │         let v28 : float = v12 / v27                                          │

00:07:36 #21261 [Verbose] > │         let v29 : float = round v28                                          │

00:07:36 #21262 [Verbose] > │         let v30 : float =  -v29                                              │

00:07:36 #21263 [Verbose] > │         let v31 : bool = v29 >= v30                                          │

00:07:36 #21264 [Verbose] > │         let v32 : float =                                                    │

00:07:36 #21265 [Verbose] > │             if v31 then                                                      │

00:07:36 #21266 [Verbose] > │                 v29                                                          │

00:07:36 #21267 [Verbose] > │             else                                                             │

00:07:36 #21268 [Verbose] > │                 v30                                                          │

00:07:36 #21269 [Verbose] > │         let v33 : float = 0.0                                                │

00:07:36 #21270 [Verbose] > │         let v34 : float = 0.1                                                │

00:07:36 #21271 [Verbose] > │         let v35 : float = 0.0                                                │

00:07:36 #21272 [Verbose] > │         let struct (v36 : float, v37 : float, v38 : float) = method3(v33,    │

00:07:36 #21273 [Verbose] > │ v34, v35, v32)                                                               │

00:07:36 #21274 [Verbose] > │         v8.[int v11] <- v37                                                  │

00:07:36 #21275 [Verbose] > │         let v39 : int32 = v11 + 1                                            │

00:07:36 #21276 [Verbose] > │         v9.l0 <- v39                                                         │

00:07:36 #21277 [Verbose] > │         ()                                                                   │

00:07:36 #21278 [Verbose] > │     let v40 : string = "position (m)"                                        │

00:07:36 #21279 [Verbose] > │     let v41 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:36 #21280 [Verbose] > │ (v40, v0, v8)|]                                                              │

00:07:36 #21281 [Verbose] > │     let v42 : string = "ping pong ball on a slinky"                          │

00:07:36 #21282 [Verbose] > │     let v43 : string = "time (s)"                                            │

00:07:36 #21283 [Verbose] > │     let v44 : string = ""                                                    │

00:07:36 #21284 [Verbose] > │     struct (v42, v43, v44, v41)                                              │

00:07:36 #21285 [Verbose] > │ method0()                                                                    │

00:07:36 #21286 [Verbose] > │                                                                              │

00:07:36 #21287 [Verbose] > │                                                                              │

00:07:36 #21288 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:36 #21289 [Verbose] >

00:07:36 #21290 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:36 #21291 [Verbose] > // // test

00:07:36 #21292 [Verbose] >

00:07:36 #21293 [Verbose] > inl pingpong_velocity t =

00:07:36 #21294 [Verbose] >     velocity_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t

00:07:36 #21295 [Verbose] >

00:07:36 #21296 [Verbose] > inl x = am'.init_series 0 3 0.01

00:07:36 #21297 [Verbose] > inl y = x |> am.map pingpong_velocity

00:07:36 #21298 [Verbose] > "ping pong ball on a slinky", "time (s)", "", ;[[ "velocity (m/s)", x, y ]]

00:07:36 #21299 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0904-0451-0e4c8c806dea\main.spi

00:07:37 #21300 [Verbose] >

00:07:37 #21301 [Verbose] > ╭─[ 345.60ms - return value ]──────────────────────────────────────────────────╮

00:07:37 #21302 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:37 #21303 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:37 #21304 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:37 #21305 [Verbose] > │ stroke="none"/>                                                              │

00:07:37 #21306 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:37 #21307 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:37 #21308 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:37 #21309 [Verbose] > │ ping pong ball on a slinky                                                   │

00:07:37 #21310 [Verbose] > │ </text>                                                                      │

00:07:37 #21311 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" y1="424" x2="61" │

00:07:37 #21312 [Verbose] > │ y2="75"/>                                                                    │

00:07:37 #21313 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:37 #21314 [Verbose] > │ y2="75"/>                                                                    │

00:07:37 #21315 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" y1="424" x2="78" │

00:07:37 #21316 [Verbose] > │ y2="75"/>                                                                    │

00:07:37 #21317 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" y1="424" x2="86" │

00:07:37 #21318 [Verbose] > │ y2="75"/>                                                                    │

00:07:37 #21319 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="9...                 │

00:07:37 #21320 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:37 #21321 [Verbose] >

00:07:37 #21322 [Verbose] > ╭─[ 357.18ms - stdout ]────────────────────────────────────────────────────────╮

00:07:37 #21323 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:37 #21324 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:37 #21325 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:37 #21326 [Verbose] > │     let v2 : bool = v1 < 301                                                 │

00:07:37 #21327 [Verbose] > │     v2                                                                       │

00:07:37 #21328 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:37 #21329 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:37 #21330 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:37 #21331 [Verbose] > │     v3                                                                       │

00:07:37 #21332 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : float, v3 : float) : struct (float │

00:07:37 #21333 [Verbose] > │ * float * float) =                                                           │

00:07:37 #21334 [Verbose] > │     let v4 : bool = v3 <= 0.0                                                │

00:07:37 #21335 [Verbose] > │     if v4 then                                                               │

00:07:37 #21336 [Verbose] > │         struct (v0, v1, v2)                                                  │

00:07:37 #21337 [Verbose] > │     else                                                                     │

00:07:37 #21338 [Verbose] > │         let v5 : float =  -v2                                                │

00:07:37 #21339 [Verbose] > │         let v6 : bool = v2 >= v5                                             │

00:07:37 #21340 [Verbose] > │         let v7 : float =                                                     │

00:07:37 #21341 [Verbose] > │             if v6 then                                                       │

00:07:37 #21342 [Verbose] > │                 v2                                                           │

00:07:37 #21343 [Verbose] > │             else                                                             │

00:07:37 #21344 [Verbose] > │                 v5                                                           │

00:07:37 #21345 [Verbose] > │         let v8 : float = -0.0030787608005179976 * v7                         │

00:07:37 #21346 [Verbose] > │         let v9 : float = v8 * v2                                             │

00:07:37 #21347 [Verbose] > │         let v10 : float = v9 / 2.0                                           │

00:07:37 #21348 [Verbose] > │         let v11 : float = -0.8 * v1                                          │

00:07:37 #21349 [Verbose] > │         let v12 : float = v11 + v10                                          │

00:07:37 #21350 [Verbose] > │         let v13 : float = v12 + -0.026477955                                 │

00:07:37 #21351 [Verbose] > │         let v14 : float = v13 / 0.0027                                       │

00:07:37 #21352 [Verbose] > │         let v15 : float = v0 + 0.001                                         │

00:07:37 #21353 [Verbose] > │         let v16 : float = v2 * 0.001                                         │

00:07:37 #21354 [Verbose] > │         let v17 : float = v1 + v16                                           │

00:07:37 #21355 [Verbose] > │         let v18 : float = v14 * 0.001                                        │

00:07:37 #21356 [Verbose] > │         let v19 : float = v2 + v18                                           │

00:07:37 #21357 [Verbose] > │         let v20 : float = v3 - 1.0                                           │

00:07:37 #21358 [Verbose] > │         method3(v15, v17, v19, v20)                                          │

00:07:37 #21359 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:37 #21360 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:37 #21361 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (301)                      │

00:07:37 #21362 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:37 #21363 [Verbose] > │     while method1(v1) do                                                     │

00:07:37 #21364 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:37 #21365 [Verbose] > │         let v4 : float = float v3                                            │

00:07:37 #21366 [Verbose] > │         let v5 : float = 0.01 * v4                                           │

00:07:37 #21367 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:37 #21368 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:37 #21369 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:37 #21370 [Verbose] > │         ()                                                                   │

00:07:37 #21371 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:37 #21372 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:37 #21373 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:37 #21374 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:37 #21375 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:37 #21376 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:37 #21377 [Verbose] > │         let v13 : float = 0.0                                                │

00:07:37 #21378 [Verbose] > │         let v14 : float = 0.1                                                │

00:07:37 #21379 [Verbose] > │         let v15 : float = 0.0                                                │

00:07:37 #21380 [Verbose] > │         let v16 : float = 0.0                                                │

00:07:37 #21381 [Verbose] > │         let struct (v17 : float, v18 : float, v19 : float) = method3(v13,    │

00:07:37 #21382 [Verbose] > │ v14, v15, v16)                                                               │

00:07:37 #21383 [Verbose] > │         let v20 : float = 0.0                                                │

00:07:37 #21384 [Verbose] > │         let v21 : float = 0.1                                                │

00:07:37 #21385 [Verbose] > │         let v22 : float = 0.0                                                │

00:07:37 #21386 [Verbose] > │         let v23 : float = 1.0                                                │

00:07:37 #21387 [Verbose] > │         let struct (v24 : float, v25 : float, v26 : float) = method3(v20,    │

00:07:37 #21388 [Verbose] > │ v21, v22, v23)                                                               │

00:07:37 #21389 [Verbose] > │         let v27 : float = v24 - v17                                          │

00:07:37 #21390 [Verbose] > │         let v28 : float = v12 / v27                                          │

00:07:37 #21391 [Verbose] > │         let v29 : float = round v28                                          │

00:07:37 #21392 [Verbose] > │         let v30 : float =  -v29                                              │

00:07:37 #21393 [Verbose] > │         let v31 : bool = v29 >= v30                                          │

00:07:37 #21394 [Verbose] > │         let v32 : float =                                                    │

00:07:37 #21395 [Verbose] > │             if v31 then                                                      │

00:07:37 #21396 [Verbose] > │                 v29                                                          │

00:07:37 #21397 [Verbose] > │             else                                                             │

00:07:37 #21398 [Verbose] > │                 v30                                                          │

00:07:37 #21399 [Verbose] > │         let v33 : float = 0.0                                                │

00:07:37 #21400 [Verbose] > │         let v34 : float = 0.1                                                │

00:07:37 #21401 [Verbose] > │         let v35 : float = 0.0                                                │

00:07:37 #21402 [Verbose] > │         let struct (v36 : float, v37 : float, v38 : float) = method3(v33,    │

00:07:37 #21403 [Verbose] > │ v34, v35, v32)                                                               │

00:07:37 #21404 [Verbose] > │         v8.[int v11] <- v38                                                  │

00:07:37 #21405 [Verbose] > │         let v39 : int32 = v11 + 1                                            │

00:07:37 #21406 [Verbose] > │         v9.l0 <- v39                                                         │

00:07:37 #21407 [Verbose] > │         ()                                                                   │

00:07:37 #21408 [Verbose] > │     let v40 : string = "velocity (m/s)"                                      │

00:07:37 #21409 [Verbose] > │     let v41 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:37 #21410 [Verbose] > │ (v40, v0, v8)|]                                                              │

00:07:37 #21411 [Verbose] > │     let v42 : string = "ping pong ball on a slinky"                          │

00:07:37 #21412 [Verbose] > │     let v43 : string = "time (s)"                                            │

00:07:37 #21413 [Verbose] > │     let v44 : string = ""                                                    │

00:07:37 #21414 [Verbose] > │     struct (v42, v43, v44, v41)                                              │

00:07:37 #21415 [Verbose] > │ method0()                                                                    │

00:07:37 #21416 [Verbose] > │                                                                              │

00:07:37 #21417 [Verbose] > │                                                                              │

00:07:37 #21418 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:37 #21419 [Verbose] >

00:07:37 #21420 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:37 #21421 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:37 #21422 [Verbose] > │ ## shift                                                                     │

00:07:37 #21423 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:37 #21424 [Verbose] >

00:07:37 #21425 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:37 #21426 [Verbose] > type update_function s = s -> s

00:07:37 #21427 [Verbose] >

00:07:37 #21428 [Verbose] > type differential_equation s ds = s -> ds

00:07:37 #21429 [Verbose] >

00:07:37 #21430 [Verbose] > type numerical_method s ds = differential_equation s ds -> update_function s

00:07:37 #21431 [Verbose] >

00:07:37 #21432 [Verbose] >

00:07:37 #21433 [Verbose] > inl solver method =

00:07:37 #21434 [Verbose] >     method >> seq.iterate

00:07:37 #21435 [Verbose] > inl solver' method =

00:07:37 #21436 [Verbose] >     method >> seq.iterate'

00:07:37 #21437 [Verbose] > inl solver_ method =

00:07:37 #21438 [Verbose] >     method >> seq.iterate_

00:07:37 #21439 [Verbose] >

00:07:37 #21440 [Verbose] >

00:07:37 #21441 [Verbose] > inl euler_cromer_1d dt deriv (state_1d (t0, x0, v0) as t) =

00:07:37 #21442 [Verbose] >     inl (rrr (_, _, dvdt)) = deriv t

00:07:37 #21443 [Verbose] >     inl t1 = t0 + dt

00:07:37 #21444 [Verbose] >     inl v1 = v0 + dvdt * dt

00:07:37 #21445 [Verbose] >     inl x1 = x0 + v1 * dt

00:07:37 #21446 [Verbose] >     state_1d (t1, x1, v1)

00:07:37 #21447 [Verbose] >

00:07:37 #21448 [Verbose] > inl update_txv_ec dt m fs =

00:07:37 #21449 [Verbose] >     euler_cromer_1d dt (newton_second_1d m fs)

00:07:37 #21450 [Verbose] >

00:07:37 #21451 [Verbose] > prototype (+++) ds : ds -> ds -> ds

00:07:37 #21452 [Verbose] > prototype scale ds : f64 -> ds -> ds

00:07:37 #21453 [Verbose] >

00:07:37 #21454 [Verbose] > instance (+++) rrr = fun (rrr (dtdt0, dxdt0, dvdt0)) (rrr (dtdt1, dxdt1, dvdt1))

00:07:37 #21455 [Verbose] > =>

00:07:37 #21456 [Verbose] >     rrr (dtdt0 + dtdt1, dxdt0 + dxdt1, dvdt0 + dvdt1)

00:07:37 #21457 [Verbose] >

00:07:37 #21458 [Verbose] > instance scale rrr = fun w (rrr (dtdt0, dxdt0, dvdt0)) =>

00:07:37 #21459 [Verbose] >     rrr (w * dtdt0, w * dxdt0, w * dvdt0)

00:07:37 #21460 [Verbose] >

00:07:37 #21461 [Verbose] > prototype shift s : forall ds. f64 -> ds -> s -> s

00:07:37 #21462 [Verbose] >

00:07:37 #21463 [Verbose] > instance shift state_1d = fun dt ds (state_1d (t, x, v)) =>

00:07:37 #21464 [Verbose] >     inl dtdt, dxdt, dvdt =

00:07:37 #21465 [Verbose] >         real

00:07:37 #21466 [Verbose] >             match ds with

00:07:37 #21467 [Verbose] >             | rrr x => x

00:07:37 #21468 [Verbose] >             | state_1d x => x

00:07:37 #21469 [Verbose] >     state_1d (t + dtdt * dt, x + dxdt * dt, v + dvdt * dt)

00:07:37 #21470 [Verbose] >

00:07:37 #21471 [Verbose] > inl euler dt deriv st0 =

00:07:37 #21472 [Verbose] >     shift dt (deriv st0) st0

00:07:37 #21473 [Verbose] >

00:07:37 #21474 [Verbose] > inl runge_kutta_4 dt deriv st0 =

00:07:37 #21475 [Verbose] >     inl m0 = deriv st0

00:07:37 #21476 [Verbose] >     inl m1 = deriv (shift (dt / 2) m0 st0)

00:07:37 #21477 [Verbose] >     inl m2 = deriv (shift (dt / 2) m1 st0)

00:07:37 #21478 [Verbose] >     inl m3 = deriv (shift dt m2 st0)

00:07:37 #21479 [Verbose] >     shift (dt / 6) (m0 +++ m1 +++ m1 +++ m2 +++ m2 +++ m3) st0

00:07:37 #21480 [Verbose] >

00:07:37 #21481 [Verbose] > inl exponential (_, x0, v0) =

00:07:37 #21482 [Verbose] >     1f64, v0, x0

00:07:37 #21483 [Verbose] >

00:07:37 #21484 [Verbose] > inl of_state_1d (state_1d (t, x, v)) =

00:07:37 #21485 [Verbose] >     t, x, v

00:07:37 #21486 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0944-4475-4931c24f62b7\main.spi

00:07:37 #21487 [Verbose] >

00:07:37 #21488 [Verbose] > ╭─[ 216.72ms - stdout ]────────────────────────────────────────────────────────╮

00:07:37 #21489 [Verbose] > │ ()                                                                           │

00:07:37 #21490 [Verbose] > │                                                                              │

00:07:37 #21491 [Verbose] > │                                                                              │

00:07:37 #21492 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:37 #21493 [Verbose] >

00:07:37 #21494 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:37 #21495 [Verbose] > // // test

00:07:37 #21496 [Verbose] >

00:07:37 #21497 [Verbose] > solver (euler 0.01) (of_state_1d >> exponential >> state_1d) (state_1d (0, 1,

00:07:37 #21498 [Verbose] > 1)) 800i32

00:07:37 #21499 [Verbose] > |> _assert_eq (state_1d (7.999999999999874, 2864.8311229272326,

00:07:37 #21500 [Verbose] > 2864.8311229272326))

00:07:37 #21501 [Verbose] >

00:07:37 #21502 [Verbose] > solver (euler_cromer_1d 0.1) (of_state_1d >> exponential >> rrr) (state_1d (0,

00:07:37 #21503 [Verbose] > 1, 1)) 80i32

00:07:37 #21504 [Verbose] > |> _assert_eq (state_1d (7.999999999999988, 3043.379244966009,

00:07:37 #21505 [Verbose] > 2895.0121485099035))

00:07:37 #21506 [Verbose] >

00:07:37 #21507 [Verbose] > solver (runge_kutta_4 1) (of_state_1d >> exponential >> rrr) (state_1d (0, 1,

00:07:37 #21508 [Verbose] > 1)) 8i32

00:07:37 #21509 [Verbose] > |> _assert_eq (state_1d (8.0, 2894.789038540849, 2894.789038540849))

00:07:37 #21510 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-0966-6653-627a7d8fe4fc\main.spi

00:07:37 #21511 [Verbose] >

00:07:37 #21512 [Verbose] > ╭─[ 373.66ms - stdout ]────────────────────────────────────────────────────────╮

00:07:37 #21513 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:37 #21514 [Verbose] > │     let v0 : string = $"%A{struct (7.999999999999874, 2864.8311229272326,    │

00:07:37 #21515 [Verbose] > │ 2864.8311229272326)}"                                                        │

00:07:37 #21516 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:37 #21517 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (7.999999999999874,     │

00:07:37 #21518 [Verbose] > │ 2864.8311229272326, 2864.8311229272326)} / expected: %A{struct               │

00:07:37 #21519 [Verbose] > │ (7.999999999999874, 2864.8311229272326, 2864.8311229272326)}"                │

00:07:37 #21520 [Verbose] > │     let v2 : string = $"%A{struct (7.999999999999988, 3043.379244966009,     │

00:07:37 #21521 [Verbose] > │ 2895.0121485099035)}"                                                        │

00:07:37 #21522 [Verbose] > │     System.Console.WriteLine v2                                              │

00:07:37 #21523 [Verbose] > │     let v3 : string = $"__expect / actual: %A{struct (7.999999999999988,     │

00:07:37 #21524 [Verbose] > │ 3043.379244966009, 2895.0121485099035)} / expected: %A{struct                │

00:07:37 #21525 [Verbose] > │ (7.999999999999988, 3043.379244966009, 2895.0121485099035)}"                 │

00:07:37 #21526 [Verbose] > │     let v4 : string = $"%A{struct (8.0, 2894.789038540849,                   │

00:07:37 #21527 [Verbose] > │ 2894.789038540849)}"                                                         │

00:07:37 #21528 [Verbose] > │     System.Console.WriteLine v4                                              │

00:07:37 #21529 [Verbose] > │     let v5 : string = $"__expect / actual: %A{struct (8.0,                   │

00:07:37 #21530 [Verbose] > │ 2894.789038540849, 2894.789038540849)} / expected: %A{struct (8.0,           │

00:07:37 #21531 [Verbose] > │ 2894.789038540849, 2894.789038540849)}"                                      │

00:07:37 #21532 [Verbose] > │     ()                                                                       │

00:07:37 #21533 [Verbose] > │ method0()                                                                    │

00:07:37 #21534 [Verbose] > │                                                                              │

00:07:37 #21535 [Verbose] > │ struct (8.0, 2864.831123, 2864.831123)                                       │

00:07:37 #21536 [Verbose] > │ struct (8.0, 3043.379245, 2895.012149)                                       │

00:07:37 #21537 [Verbose] > │ struct (8.0, 2894.789039, 2894.789039)                                       │

00:07:37 #21538 [Verbose] > │                                                                              │

00:07:37 #21539 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:37 #21540 [Verbose] >

00:07:37 #21541 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:37 #21542 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:37 #21543 [Verbose] > │ ## vec                                                                       │

00:07:37 #21544 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:37 #21545 [Verbose] >

00:07:37 #21546 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:37 #21547 [Verbose] > type vec =

00:07:37 #21548 [Verbose] >     {

00:07:37 #21549 [Verbose] >         x : f64

00:07:37 #21550 [Verbose] >         y : f64

00:07:37 #21551 [Verbose] >         z : f64

00:07:37 #21552 [Verbose] >     }

00:07:37 #21553 [Verbose] >

00:07:37 #21554 [Verbose] > inl vec x y z : vec =

00:07:37 #21555 [Verbose] >     { x y z }

00:07:37 #21556 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1005-0579-062c3304fc45\main.spi

00:07:38 #21557 [Verbose] >

00:07:38 #21558 [Verbose] > ╭─[ 297.26ms - stdout ]────────────────────────────────────────────────────────╮

00:07:38 #21559 [Verbose] > │ ()                                                                           │

00:07:38 #21560 [Verbose] > │                                                                              │

00:07:38 #21561 [Verbose] > │                                                                              │

00:07:38 #21562 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:38 #21563 [Verbose] >

00:07:38 #21564 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:38 #21565 [Verbose] > // // test

00:07:38 #21566 [Verbose] >

00:07:38 #21567 [Verbose] > vec 1 2 3 .z

00:07:38 #21568 [Verbose] > |> _assert_eq 3

00:07:38 #21569 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1035-3576-34af0f754d85\main.spi

00:07:38 #21570 [Verbose] >

00:07:38 #21571 [Verbose] > ╭─[ 220.62ms - stdout ]────────────────────────────────────────────────────────╮

00:07:38 #21572 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:38 #21573 [Verbose] > │     let v0 : string = $"%A{3.0}"                                             │

00:07:38 #21574 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:38 #21575 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.0} / expected: %A{3.0}"      │

00:07:38 #21576 [Verbose] > │     ()                                                                       │

00:07:38 #21577 [Verbose] > │ method0()                                                                    │

00:07:38 #21578 [Verbose] > │                                                                              │

00:07:38 #21579 [Verbose] > │ 3.0                                                                          │

00:07:38 #21580 [Verbose] > │                                                                              │

00:07:38 #21581 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:38 #21582 [Verbose] >

00:07:38 #21583 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:38 #21584 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:38 #21585 [Verbose] > │ ### consts                                                                   │

00:07:38 #21586 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:38 #21587 [Verbose] >

00:07:38 #21588 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:38 #21589 [Verbose] > inl i_hat () = vec 1 0 0

00:07:38 #21590 [Verbose] > inl j_hat () = vec 0 1 0

00:07:38 #21591 [Verbose] > inl k_hat () = vec 0 0 1

00:07:38 #21592 [Verbose] > inl zero_vec () = vec 0 0 0

00:07:38 #21593 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1058-5859-51b46ab0709d\main.spi

00:07:38 #21594 [Verbose] >

00:07:38 #21595 [Verbose] > ╭─[ 392.40ms - stdout ]────────────────────────────────────────────────────────╮

00:07:38 #21596 [Verbose] > │ ()                                                                           │

00:07:38 #21597 [Verbose] > │                                                                              │

00:07:38 #21598 [Verbose] > │                                                                              │

00:07:38 #21599 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:38 #21600 [Verbose] >

00:07:38 #21601 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:38 #21602 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:38 #21603 [Verbose] > │ ### ^+^                                                                      │

00:07:38 #21604 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:38 #21605 [Verbose] >

00:07:38 #21606 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:38 #21607 [Verbose] > inl (^+^) (a : vec) (b : vec) =

00:07:38 #21608 [Verbose] >     vec (a.x + b.x) (a.y + b.y) (a.z + b.z)

00:07:38 #21609 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1098-9845-9463dda1f879\main.spi

00:07:38 #21610 [Verbose] >

00:07:38 #21611 [Verbose] > ╭─[ 261.66ms - stdout ]────────────────────────────────────────────────────────╮

00:07:38 #21612 [Verbose] > │ ()                                                                           │

00:07:38 #21613 [Verbose] > │                                                                              │

00:07:38 #21614 [Verbose] > │                                                                              │

00:07:38 #21615 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:38 #21616 [Verbose] >

00:07:38 #21617 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:38 #21618 [Verbose] > // // test

00:07:38 #21619 [Verbose] >

00:07:38 #21620 [Verbose] > vec 1 2 3 ^+^ vec 4 5 6

00:07:38 #21621 [Verbose] > |> _assert_eq (vec 5 7 9)

00:07:39 #21622 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1124-2490-286f71bcabe6\main.spi

00:07:39 #21623 [Verbose] >

00:07:39 #21624 [Verbose] > ╭─[ 269.65ms - stdout ]────────────────────────────────────────────────────────╮

00:07:39 #21625 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:39 #21626 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}"                          │

00:07:39 #21627 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:39 #21628 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} /      │

00:07:39 #21629 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}"                                        │

00:07:39 #21630 [Verbose] > │     ()                                                                       │

00:07:39 #21631 [Verbose] > │ method0()                                                                    │

00:07:39 #21632 [Verbose] > │                                                                              │

00:07:39 #21633 [Verbose] > │ struct (5.0, 7.0, 9.0)                                                       │

00:07:39 #21634 [Verbose] > │                                                                              │

00:07:39 #21635 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:39 #21636 [Verbose] >

00:07:39 #21637 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:39 #21638 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:39 #21639 [Verbose] > │ ### sum_vec                                                                  │

00:07:39 #21640 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:39 #21641 [Verbose] >

00:07:39 #21642 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:39 #21643 [Verbose] > inl sum_vec vs =

00:07:39 #21644 [Verbose] >     vs |> listm.fold (^+^) (zero_vec ())

00:07:39 #21645 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1152-5275-52df8fc87147\main.spi

00:07:39 #21646 [Verbose] >

00:07:39 #21647 [Verbose] > ╭─[ 216.57ms - stdout ]────────────────────────────────────────────────────────╮

00:07:39 #21648 [Verbose] > │ ()                                                                           │

00:07:39 #21649 [Verbose] > │                                                                              │

00:07:39 #21650 [Verbose] > │                                                                              │

00:07:39 #21651 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:39 #21652 [Verbose] >

00:07:39 #21653 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:39 #21654 [Verbose] > // // test

00:07:39 #21655 [Verbose] >

00:07:39 #21656 [Verbose] > [[ vec 1 2 3; vec 4 5 6 ]]

00:07:39 #21657 [Verbose] > |> sum_vec

00:07:39 #21658 [Verbose] > |> _assert_eq (vec 5 7 9)

00:07:39 #21659 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1175-7501-79428d69be7a\main.spi

00:07:39 #21660 [Verbose] >

00:07:39 #21661 [Verbose] > ╭─[ 411.05ms - stdout ]────────────────────────────────────────────────────────╮

00:07:39 #21662 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:39 #21663 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 7.0, 9.0)}"                          │

00:07:39 #21664 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:39 #21665 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 7.0, 9.0)} /      │

00:07:39 #21666 [Verbose] > │ expected: %A{struct (5.0, 7.0, 9.0)}"                                        │

00:07:39 #21667 [Verbose] > │     ()                                                                       │

00:07:39 #21668 [Verbose] > │ method0()                                                                    │

00:07:39 #21669 [Verbose] > │                                                                              │

00:07:39 #21670 [Verbose] > │ struct (5.0, 7.0, 9.0)                                                       │

00:07:39 #21671 [Verbose] > │                                                                              │

00:07:39 #21672 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:39 #21673 [Verbose] >

00:07:39 #21674 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:39 #21675 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:39 #21676 [Verbose] > │ ### *^                                                                       │

00:07:39 #21677 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:39 #21678 [Verbose] >

00:07:39 #21679 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:39 #21680 [Verbose] > inl (*^) c { x y z } =

00:07:39 #21681 [Verbose] >     vec (c * x) (c * y) (c * z)

00:07:40 #21682 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1217-1728-1b75a857772a\main.spi

00:07:40 #21683 [Verbose] >

00:07:40 #21684 [Verbose] > ╭─[ 230.15ms - stdout ]────────────────────────────────────────────────────────╮

00:07:40 #21685 [Verbose] > │ ()                                                                           │

00:07:40 #21686 [Verbose] > │                                                                              │

00:07:40 #21687 [Verbose] > │                                                                              │

00:07:40 #21688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:40 #21689 [Verbose] >

00:07:40 #21690 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:40 #21691 [Verbose] > // // test

00:07:40 #21692 [Verbose] >

00:07:40 #21693 [Verbose] > 5 *^ vec 1 2 3

00:07:40 #21694 [Verbose] > |> _assert_eq (vec 5 10 15)

00:07:40 #21695 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1240-4043-411c263c2608\main.spi

00:07:40 #21696 [Verbose] >

00:07:40 #21697 [Verbose] > ╭─[ 270.95ms - stdout ]────────────────────────────────────────────────────────╮

00:07:40 #21698 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:40 #21699 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}"                        │

00:07:40 #21700 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:40 #21701 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} /    │

00:07:40 #21702 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}"                                      │

00:07:40 #21703 [Verbose] > │     ()                                                                       │

00:07:40 #21704 [Verbose] > │ method0()                                                                    │

00:07:40 #21705 [Verbose] > │                                                                              │

00:07:40 #21706 [Verbose] > │ struct (5.0, 10.0, 15.0)                                                     │

00:07:40 #21707 [Verbose] > │                                                                              │

00:07:40 #21708 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:40 #21709 [Verbose] >

00:07:40 #21710 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:40 #21711 [Verbose] > // // test

00:07:40 #21712 [Verbose] >

00:07:40 #21713 [Verbose] > 3 *^ i_hat () ^+^ 4 *^ k_hat ()

00:07:40 #21714 [Verbose] > |> _assert_eq (vec 3 0 4)

00:07:40 #21715 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1268-6813-645c7c9db2ff\main.spi

00:07:40 #21716 [Verbose] >

00:07:40 #21717 [Verbose] > ╭─[ 228.55ms - stdout ]────────────────────────────────────────────────────────╮

00:07:40 #21718 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:40 #21719 [Verbose] > │     let v0 : string = $"%A{struct (3.0, 0.0, 4.0)}"                          │

00:07:40 #21720 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:40 #21721 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (3.0, 0.0, 4.0)} /      │

00:07:40 #21722 [Verbose] > │ expected: %A{struct (3.0, 0.0, 4.0)}"                                        │

00:07:40 #21723 [Verbose] > │     ()                                                                       │

00:07:40 #21724 [Verbose] > │ method0()                                                                    │

00:07:40 #21725 [Verbose] > │                                                                              │

00:07:40 #21726 [Verbose] > │ struct (3.0, 0.0, 4.0)                                                       │

00:07:40 #21727 [Verbose] > │                                                                              │

00:07:40 #21728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:40 #21729 [Verbose] >

00:07:40 #21730 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:40 #21731 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:40 #21732 [Verbose] > │ ### ^*                                                                       │

00:07:40 #21733 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:40 #21734 [Verbose] >

00:07:40 #21735 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:40 #21736 [Verbose] > inl (^*) v c =

00:07:40 #21737 [Verbose] >     (*^) c v

00:07:40 #21738 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1291-9169-9bc6c31f2c2f\main.spi

00:07:40 #21739 [Verbose] >

00:07:40 #21740 [Verbose] > ╭─[ 264.33ms - stdout ]────────────────────────────────────────────────────────╮

00:07:40 #21741 [Verbose] > │ ()                                                                           │

00:07:40 #21742 [Verbose] > │                                                                              │

00:07:40 #21743 [Verbose] > │                                                                              │

00:07:40 #21744 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:40 #21745 [Verbose] >

00:07:40 #21746 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:40 #21747 [Verbose] > // // test

00:07:40 #21748 [Verbose] >

00:07:40 #21749 [Verbose] > vec 1 2 3 ^* 5

00:07:40 #21750 [Verbose] > |> _assert_eq (vec 5 10 15)

00:07:41 #21751 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1319-1911-1a358669d134\main.spi

00:07:41 #21752 [Verbose] >

00:07:41 #21753 [Verbose] > ╭─[ 216.35ms - stdout ]────────────────────────────────────────────────────────╮

00:07:41 #21754 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:41 #21755 [Verbose] > │     let v0 : string = $"%A{struct (5.0, 10.0, 15.0)}"                        │

00:07:41 #21756 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:41 #21757 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (5.0, 10.0, 15.0)} /    │

00:07:41 #21758 [Verbose] > │ expected: %A{struct (5.0, 10.0, 15.0)}"                                      │

00:07:41 #21759 [Verbose] > │     ()                                                                       │

00:07:41 #21760 [Verbose] > │ method0()                                                                    │

00:07:41 #21761 [Verbose] > │                                                                              │

00:07:41 #21762 [Verbose] > │ struct (5.0, 10.0, 15.0)                                                     │

00:07:41 #21763 [Verbose] > │                                                                              │

00:07:41 #21764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:41 #21765 [Verbose] >

00:07:41 #21766 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:41 #21767 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:41 #21768 [Verbose] > │ ### ^/                                                                       │

00:07:41 #21769 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:41 #21770 [Verbose] >

00:07:41 #21771 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:41 #21772 [Verbose] > inl (^/) { x y z } c =

00:07:41 #21773 [Verbose] >     vec (x / c) (y / c) (z / c)

00:07:41 #21774 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1341-4144-4ad111c652bf\main.spi

00:07:41 #21775 [Verbose] >

00:07:41 #21776 [Verbose] > ╭─[ 280.58ms - stdout ]────────────────────────────────────────────────────────╮

00:07:41 #21777 [Verbose] > │ ()                                                                           │

00:07:41 #21778 [Verbose] > │                                                                              │

00:07:41 #21779 [Verbose] > │                                                                              │

00:07:41 #21780 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:41 #21781 [Verbose] >

00:07:41 #21782 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:41 #21783 [Verbose] > // // test

00:07:41 #21784 [Verbose] >

00:07:41 #21785 [Verbose] > vec 1 2 3 ^/ 5

00:07:41 #21786 [Verbose] > |> _assert_eq (vec 0.2 0.4 0.6)

00:07:41 #21787 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1369-6972-6ed5bd07031e\main.spi

00:07:41 #21788 [Verbose] >

00:07:41 #21789 [Verbose] > ╭─[ 276.03ms - stdout ]────────────────────────────────────────────────────────╮

00:07:41 #21790 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:41 #21791 [Verbose] > │     let v0 : string = $"%A{struct (0.2, 0.4, 0.6)}"                          │

00:07:41 #21792 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:41 #21793 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (0.2, 0.4, 0.6)} /      │

00:07:41 #21794 [Verbose] > │ expected: %A{struct (0.2, 0.4, 0.6)}"                                        │

00:07:41 #21795 [Verbose] > │     ()                                                                       │

00:07:41 #21796 [Verbose] > │ method0()                                                                    │

00:07:41 #21797 [Verbose] > │                                                                              │

00:07:41 #21798 [Verbose] > │ struct (0.2, 0.4, 0.6)                                                       │

00:07:41 #21799 [Verbose] > │                                                                              │

00:07:41 #21800 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:41 #21801 [Verbose] >

00:07:41 #21802 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:41 #21803 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:41 #21804 [Verbose] > │ ### negate_vec                                                               │

00:07:41 #21805 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:41 #21806 [Verbose] >

00:07:41 #21807 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:41 #21808 [Verbose] > inl negate_vec v =

00:07:41 #21809 [Verbose] >     v ^* -1

00:07:41 #21810 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1398-9814-976874ea9d88\main.spi

00:07:41 #21811 [Verbose] >

00:07:41 #21812 [Verbose] > ╭─[ 260.73ms - stdout ]────────────────────────────────────────────────────────╮

00:07:41 #21813 [Verbose] > │ ()                                                                           │

00:07:41 #21814 [Verbose] > │                                                                              │

00:07:41 #21815 [Verbose] > │                                                                              │

00:07:41 #21816 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:41 #21817 [Verbose] >

00:07:41 #21818 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:41 #21819 [Verbose] > // // test

00:07:41 #21820 [Verbose] >

00:07:41 #21821 [Verbose] > vec 1 2 3

00:07:41 #21822 [Verbose] > |> negate_vec

00:07:41 #21823 [Verbose] > |> _assert_eq (vec -1 -2 -3)

00:07:42 #21824 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1424-2429-2151023398b1\main.spi

00:07:42 #21825 [Verbose] >

00:07:42 #21826 [Verbose] > ╭─[ 242.99ms - stdout ]────────────────────────────────────────────────────────╮

00:07:42 #21827 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:42 #21828 [Verbose] > │     let v0 : string = $"%A{struct (-1.0, -2.0, -3.0)}"                       │

00:07:42 #21829 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:42 #21830 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (-1.0, -2.0, -3.0)} /   │

00:07:42 #21831 [Verbose] > │ expected: %A{struct (-1.0, -2.0, -3.0)}"                                     │

00:07:42 #21832 [Verbose] > │     ()                                                                       │

00:07:42 #21833 [Verbose] > │ method0()                                                                    │

00:07:42 #21834 [Verbose] > │                                                                              │

00:07:42 #21835 [Verbose] > │ struct (-1.0, -2.0, -3.0)                                                    │

00:07:42 #21836 [Verbose] > │                                                                              │

00:07:42 #21837 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:42 #21838 [Verbose] >

00:07:42 #21839 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:42 #21840 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:42 #21841 [Verbose] > │ ### ^-^                                                                      │

00:07:42 #21842 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:42 #21843 [Verbose] >

00:07:42 #21844 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:42 #21845 [Verbose] > inl (^-^) a b =

00:07:42 #21846 [Verbose] >     a ^+^ (negate_vec b)

00:07:42 #21847 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1449-4957-4252283faf1c\main.spi

00:07:42 #21848 [Verbose] >

00:07:42 #21849 [Verbose] > ╭─[ 293.13ms - stdout ]────────────────────────────────────────────────────────╮

00:07:42 #21850 [Verbose] > │ ()                                                                           │

00:07:42 #21851 [Verbose] > │                                                                              │

00:07:42 #21852 [Verbose] > │                                                                              │

00:07:42 #21853 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:42 #21854 [Verbose] >

00:07:42 #21855 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:42 #21856 [Verbose] > // // test

00:07:42 #21857 [Verbose] >

00:07:42 #21858 [Verbose] > vec 1 2 3 ^-^ vec 4 5 6

00:07:42 #21859 [Verbose] > |> _assert_eq (vec -3 -3 -3)

00:07:42 #21860 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1479-7910-752ef8de65ee\main.spi

00:07:42 #21861 [Verbose] >

00:07:42 #21862 [Verbose] > ╭─[ 274.93ms - stdout ]────────────────────────────────────────────────────────╮

00:07:42 #21863 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:42 #21864 [Verbose] > │     let v0 : string = $"%A{struct (-3.0, -3.0, -3.0)}"                       │

00:07:42 #21865 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:42 #21866 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (-3.0, -3.0, -3.0)} /   │

00:07:42 #21867 [Verbose] > │ expected: %A{struct (-3.0, -3.0, -3.0)}"                                     │

00:07:42 #21868 [Verbose] > │     ()                                                                       │

00:07:42 #21869 [Verbose] > │ method0()                                                                    │

00:07:42 #21870 [Verbose] > │                                                                              │

00:07:42 #21871 [Verbose] > │ struct (-3.0, -3.0, -3.0)                                                    │

00:07:42 #21872 [Verbose] > │                                                                              │

00:07:42 #21873 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:42 #21874 [Verbose] >

00:07:42 #21875 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:42 #21876 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:42 #21877 [Verbose] > │ ### <.>                                                                      │

00:07:42 #21878 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:42 #21879 [Verbose] >

00:07:42 #21880 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:42 #21881 [Verbose] > inl (<.>) { x = ax y = ay z = az } { x = bx y = by z = bz } =

00:07:42 #21882 [Verbose] >     ax * bx + ay * by + az * bz

00:07:42 #21883 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1507-0767-0bcb822b08a2\main.spi

00:07:43 #21884 [Verbose] >

00:07:43 #21885 [Verbose] > ╭─[ 258.94ms - stdout ]────────────────────────────────────────────────────────╮

00:07:43 #21886 [Verbose] > │ ()                                                                           │

00:07:43 #21887 [Verbose] > │                                                                              │

00:07:43 #21888 [Verbose] > │                                                                              │

00:07:43 #21889 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:43 #21890 [Verbose] >

00:07:43 #21891 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:43 #21892 [Verbose] > // // test

00:07:43 #21893 [Verbose] >

00:07:43 #21894 [Verbose] > vec 1 2 3 <.> vec 4 5 6

00:07:43 #21895 [Verbose] > |> _assert_eq 32

00:07:43 #21896 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1533-3362-3ad7b56f9708\main.spi

00:07:43 #21897 [Verbose] >

00:07:43 #21898 [Verbose] > ╭─[ 272.28ms - stdout ]────────────────────────────────────────────────────────╮

00:07:43 #21899 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:43 #21900 [Verbose] > │     let v0 : string = $"%A{32.0}"                                            │

00:07:43 #21901 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:43 #21902 [Verbose] > │     let v1 : string = $"__expect / actual: %A{32.0} / expected: %A{32.0}"    │

00:07:43 #21903 [Verbose] > │     ()                                                                       │

00:07:43 #21904 [Verbose] > │ method0()                                                                    │

00:07:43 #21905 [Verbose] > │                                                                              │

00:07:43 #21906 [Verbose] > │ 32.0                                                                         │

00:07:43 #21907 [Verbose] > │                                                                              │

00:07:43 #21908 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:43 #21909 [Verbose] >

00:07:43 #21910 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:43 #21911 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:43 #21912 [Verbose] > │ ### \>\<                                                                     │

00:07:43 #21913 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:43 #21914 [Verbose] >

00:07:43 #21915 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:43 #21916 [Verbose] > inl (><) (a : vec) (b : vec) =

00:07:43 #21917 [Verbose] >     vec

00:07:43 #21918 [Verbose] >         (a.y * b.z - a.z * b.y)

00:07:43 #21919 [Verbose] >         (a.z * b.x - a.x * b.z)

00:07:43 #21920 [Verbose] >         (a.x * b.y - a.y * b.x)

00:07:43 #21921 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1561-6167-6cbf5b7dfe12\main.spi

00:07:43 #21922 [Verbose] >

00:07:43 #21923 [Verbose] > ╭─[ 298.52ms - stdout ]────────────────────────────────────────────────────────╮

00:07:43 #21924 [Verbose] > │ ()                                                                           │

00:07:43 #21925 [Verbose] > │                                                                              │

00:07:43 #21926 [Verbose] > │                                                                              │

00:07:43 #21927 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:43 #21928 [Verbose] >

00:07:43 #21929 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:43 #21930 [Verbose] > // // test

00:07:43 #21931 [Verbose] >

00:07:43 #21932 [Verbose] > vec 1 2 3 >< vec 4 5 6

00:07:43 #21933 [Verbose] > |> _assert_eq (vec -3 6 -3)

00:07:43 #21934 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1591-9184-92f576c62fc3\main.spi

00:07:43 #21935 [Verbose] >

00:07:43 #21936 [Verbose] > ╭─[ 221.22ms - stdout ]────────────────────────────────────────────────────────╮

00:07:43 #21937 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:43 #21938 [Verbose] > │     let v0 : string = $"%A{struct (-3.0, 6.0, -3.0)}"                        │

00:07:43 #21939 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:43 #21940 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (-3.0, 6.0, -3.0)} /    │

00:07:43 #21941 [Verbose] > │ expected: %A{struct (-3.0, 6.0, -3.0)}"                                      │

00:07:43 #21942 [Verbose] > │     ()                                                                       │

00:07:43 #21943 [Verbose] > │ method0()                                                                    │

00:07:43 #21944 [Verbose] > │                                                                              │

00:07:43 #21945 [Verbose] > │ struct (-3.0, 6.0, -3.0)                                                     │

00:07:43 #21946 [Verbose] > │                                                                              │

00:07:43 #21947 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:43 #21948 [Verbose] >

00:07:43 #21949 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:43 #21950 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:43 #21951 [Verbose] > │ ### magnitude                                                                │

00:07:43 #21952 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:43 #21953 [Verbose] >

00:07:43 #21954 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:43 #21955 [Verbose] > inl magnitude v =

00:07:43 #21956 [Verbose] >     v <.> v |> sqrt

00:07:44 #21957 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1614-1460-14893d908202\main.spi

00:07:44 #21958 [Verbose] >

00:07:44 #21959 [Verbose] > ╭─[ 285.83ms - stdout ]────────────────────────────────────────────────────────╮

00:07:44 #21960 [Verbose] > │ ()                                                                           │

00:07:44 #21961 [Verbose] > │                                                                              │

00:07:44 #21962 [Verbose] > │                                                                              │

00:07:44 #21963 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:44 #21964 [Verbose] >

00:07:44 #21965 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:44 #21966 [Verbose] > // // test

00:07:44 #21967 [Verbose] >

00:07:44 #21968 [Verbose] > vec 1 2 3

00:07:44 #21969 [Verbose] > |> magnitude

00:07:44 #21970 [Verbose] > |> _assert_approx_eq None 3.7416573867739413

00:07:44 #21971 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1643-4349-4824ff50f02f\main.spi

00:07:44 #21972 [Verbose] >

00:07:44 #21973 [Verbose] > ╭─[ 232.98ms - stdout ]────────────────────────────────────────────────────────╮

00:07:44 #21974 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:44 #21975 [Verbose] > │     let v0 : string = $"%A{3.7416573867739413}"                              │

00:07:44 #21976 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:44 #21977 [Verbose] > │     let v1 : string = $"__expect / actual: %A{3.7416573867739413} /          │

00:07:44 #21978 [Verbose] > │ expected: %A{3.7416573867739413}"                                            │

00:07:44 #21979 [Verbose] > │     ()                                                                       │

00:07:44 #21980 [Verbose] > │ method0()                                                                    │

00:07:44 #21981 [Verbose] > │                                                                              │

00:07:44 #21982 [Verbose] > │ 3.741657387                                                                  │

00:07:44 #21983 [Verbose] > │                                                                              │

00:07:44 #21984 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:44 #21985 [Verbose] >

00:07:44 #21986 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:44 #21987 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:44 #21988 [Verbose] > │ ### v1                                                                       │

00:07:44 #21989 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:44 #21990 [Verbose] >

00:07:44 #21991 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:44 #21992 [Verbose] > inl v1 t =

00:07:44 #21993 [Verbose] >     2 *^ (t ** 2 *^ i_hat () ^+^ 3 *^ (t ** 3 *^ j_hat () ^+^ t ** 4 *^ k_hat

00:07:44 #21994 [Verbose] > ()))

00:07:44 #21995 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1667-6793-63c76edca65e\main.spi

00:07:44 #21996 [Verbose] >

00:07:44 #21997 [Verbose] > ╭─[ 267.55ms - stdout ]────────────────────────────────────────────────────────╮

00:07:44 #21998 [Verbose] > │ ()                                                                           │

00:07:44 #21999 [Verbose] > │                                                                              │

00:07:44 #22000 [Verbose] > │                                                                              │

00:07:44 #22001 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:44 #22002 [Verbose] >

00:07:44 #22003 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:44 #22004 [Verbose] > // // test

00:07:44 #22005 [Verbose] >

00:07:44 #22006 [Verbose] > v1 1

00:07:44 #22007 [Verbose] > |> _assert_eq (vec 2 6 6)

00:07:44 #22008 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1694-9485-9fff3c38286d\main.spi

00:07:44 #22009 [Verbose] >

00:07:44 #22010 [Verbose] > ╭─[ 272.59ms - stdout ]────────────────────────────────────────────────────────╮

00:07:44 #22011 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:44 #22012 [Verbose] > │     let v0 : string = $"%A{struct (2.0, 6.0, 6.0)}"                          │

00:07:44 #22013 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:44 #22014 [Verbose] > │     let v1 : string = $"__expect / actual: %A{struct (2.0, 6.0, 6.0)} /      │

00:07:44 #22015 [Verbose] > │ expected: %A{struct (2.0, 6.0, 6.0)}"                                        │

00:07:44 #22016 [Verbose] > │     ()                                                                       │

00:07:44 #22017 [Verbose] > │ method0()                                                                    │

00:07:44 #22018 [Verbose] > │                                                                              │

00:07:44 #22019 [Verbose] > │ struct (2.0, 6.0, 6.0)                                                       │

00:07:44 #22020 [Verbose] > │                                                                              │

00:07:44 #22021 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:44 #22022 [Verbose] >

00:07:44 #22023 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:44 #22024 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:44 #22025 [Verbose] > │ ### vec_derivative                                                           │

00:07:44 #22026 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:44 #22027 [Verbose] >

00:07:44 #22028 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:44 #22029 [Verbose] > type vec_derivative = (f64 -> vec) -> f64 -> vec

00:07:44 #22030 [Verbose] >

00:07:44 #22031 [Verbose] > inl vec_derivative dt : vec_derivative =

00:07:44 #22032 [Verbose] >     fun v t =>

00:07:44 #22033 [Verbose] >         (v (t + dt / 2) ^-^ v (t - dt / 2)) ^/ dt

00:07:45 #22034 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1723-2303-2cf8601e26c2\main.spi

00:07:45 #22035 [Verbose] >

00:07:45 #22036 [Verbose] > ╭─[ 245.32ms - stdout ]────────────────────────────────────────────────────────╮

00:07:45 #22037 [Verbose] > │ ()                                                                           │

00:07:45 #22038 [Verbose] > │                                                                              │

00:07:45 #22039 [Verbose] > │                                                                              │

00:07:45 #22040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:45 #22041 [Verbose] >

00:07:45 #22042 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:45 #22043 [Verbose] > // // test

00:07:45 #22044 [Verbose] >

00:07:45 #22045 [Verbose] > vec_derivative 0.01 v1 3 .x

00:07:45 #22046 [Verbose] > |> _assert_approx_eq None (derivative 0.01 (v1 >> fun v => v.x) 3)

00:07:45 #22047 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1747-4765-4bc4947c4bc0\main.spi

00:07:45 #22048 [Verbose] >

00:07:45 #22049 [Verbose] > ╭─[ 349.07ms - stdout ]────────────────────────────────────────────────────────╮

00:07:45 #22050 [Verbose] > │ let rec method0 () : unit =                                                  │

00:07:45 #22051 [Verbose] > │     let v0 : string = $"%A{11.999999999999744}"                              │

00:07:45 #22052 [Verbose] > │     System.Console.WriteLine v0                                              │

00:07:45 #22053 [Verbose] > │     let v1 : string = $"__expect / actual: %A{11.999999999999744} /          │

00:07:45 #22054 [Verbose] > │ expected: %A{11.999999999999744}"                                            │

00:07:45 #22055 [Verbose] > │     ()                                                                       │

00:07:45 #22056 [Verbose] > │ method0()                                                                    │

00:07:45 #22057 [Verbose] > │                                                                              │

00:07:45 #22058 [Verbose] > │ 12.0                                                                         │

00:07:45 #22059 [Verbose] > │                                                                              │

00:07:45 #22060 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:45 #22061 [Verbose] >

00:07:45 #22062 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:45 #22063 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:45 #22064 [Verbose] > │ ## states_ps                                                                 │

00:07:45 #22065 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:45 #22066 [Verbose] >

00:07:45 #22067 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:45 #22068 [Verbose] > nominal particle_state =

00:07:45 #22069 [Verbose] >     {

00:07:45 #22070 [Verbose] >         mass : f64

00:07:45 #22071 [Verbose] >         charge : f64

00:07:45 #22072 [Verbose] >         time : f64

00:07:45 #22073 [Verbose] >         pos_vec : vec

00:07:45 #22074 [Verbose] >         velocity : vec

00:07:45 #22075 [Verbose] >     }

00:07:45 #22076 [Verbose] >

00:07:45 #22077 [Verbose] > inl default_particle_state () : particle_state =

00:07:45 #22078 [Verbose] >     particle_state {

00:07:45 #22079 [Verbose] >         mass = 1

00:07:45 #22080 [Verbose] >         charge = 0

00:07:45 #22081 [Verbose] >         time = 0

00:07:45 #22082 [Verbose] >         pos_vec = zero_vec ()

00:07:45 #22083 [Verbose] >         velocity = zero_vec ()

00:07:45 #22084 [Verbose] >     }

00:07:45 #22085 [Verbose] >

00:07:45 #22086 [Verbose] > type one_body_force = particle_state -> vec

00:07:45 #22087 [Verbose] >

00:07:45 #22088 [Verbose] > nominal d_particle_state =

00:07:45 #22089 [Verbose] >     {

00:07:45 #22090 [Verbose] >         dmdt : f64

00:07:45 #22091 [Verbose] >         dqdt : f64

00:07:45 #22092 [Verbose] >         dtdt : f64

00:07:45 #22093 [Verbose] >         drdt : vec

00:07:45 #22094 [Verbose] >         dvdt : vec

00:07:45 #22095 [Verbose] >     }

00:07:45 #22096 [Verbose] >

00:07:45 #22097 [Verbose] > inl newton_second_ps (fs : list one_body_force) (st : particle_state) :

00:07:45 #22098 [Verbose] > d_particle_state =

00:07:45 #22099 [Verbose] >     inl f_net = fs |> listm.map (fun f => f st) |> sum_vec

00:07:45 #22100 [Verbose] >     d_particle_state {

00:07:45 #22101 [Verbose] >         dmdt = 0

00:07:45 #22102 [Verbose] >         dqdt = 0

00:07:45 #22103 [Verbose] >         dtdt = 1

00:07:45 #22104 [Verbose] >         drdt = st.velocity

00:07:45 #22105 [Verbose] >         dvdt = f_net ^/ st.mass

00:07:45 #22106 [Verbose] >     }

00:07:45 #22107 [Verbose] >

00:07:45 #22108 [Verbose] > inl earth_surface_gravity (st : particle_state) =

00:07:45 #22109 [Verbose] >     inl g = 9.80665

00:07:45 #22110 [Verbose] >     -st.mass * g *^ k_hat ()

00:07:45 #22111 [Verbose] >

00:07:45 #22112 [Verbose] > inl air_resistance drag rho area (st : particle_state) =

00:07:45 #22113 [Verbose] >     -0.5 * drag * rho * area * magnitude st.velocity *^ st.velocity

00:07:45 #22114 [Verbose] >

00:07:45 #22115 [Verbose] > inl euler_cromer_ps dt (deriv : particle_state -> d_particle_state)

00:07:45 #22116 [Verbose] > (particle_state st) =

00:07:45 #22117 [Verbose] >     inl dst : d_particle_state = deriv (particle_state st)

00:07:45 #22118 [Verbose] >     inl v' = st.velocity ^+^ dst.dvdt ^* dt

00:07:45 #22119 [Verbose] >     particle_state { st with

00:07:45 #22120 [Verbose] >         time = st.time + dt

00:07:45 #22121 [Verbose] >         pos_vec = st.pos_vec ^+^ v' ^* dt

00:07:45 #22122 [Verbose] >         velocity = st.velocity ^+^ dst.dvdt ^* dt

00:07:45 #22123 [Verbose] >     }

00:07:45 #22124 [Verbose] >

00:07:45 #22125 [Verbose] > instance (+++) d_particle_state = fun (dps : d_particle_state) (dps' :

00:07:45 #22126 [Verbose] > d_particle_state) =>

00:07:45 #22127 [Verbose] >     d_particle_state {

00:07:45 #22128 [Verbose] >         dmdt = dps.dmdt + dps'.dmdt

00:07:45 #22129 [Verbose] >         dqdt = dps.dqdt + dps'.dqdt

00:07:45 #22130 [Verbose] >         dtdt = dps.dtdt + dps'.dtdt

00:07:45 #22131 [Verbose] >         drdt = dps.drdt ^+^ dps'.drdt

00:07:45 #22132 [Verbose] >         dvdt = dps.dvdt ^+^ dps'.dvdt

00:07:45 #22133 [Verbose] >     }

00:07:45 #22134 [Verbose] >

00:07:45 #22135 [Verbose] > instance scale d_particle_state = fun w (dps : d_particle_state) =>

00:07:45 #22136 [Verbose] >     d_particle_state {

00:07:45 #22137 [Verbose] >         dmdt = w * dps.dmdt

00:07:45 #22138 [Verbose] >         dqdt = w * dps.dqdt

00:07:45 #22139 [Verbose] >         dtdt = w * dps.dtdt

00:07:45 #22140 [Verbose] >         drdt = w *^ dps.drdt

00:07:45 #22141 [Verbose] >         dvdt = w *^ dps.dvdt

00:07:45 #22142 [Verbose] >     }

00:07:45 #22143 [Verbose] >

00:07:45 #22144 [Verbose] > instance shift particle_state = fun dt dps (particle_state st) =>

00:07:45 #22145 [Verbose] >     inl (d_particle_state dps) =

00:07:45 #22146 [Verbose] >         real

00:07:45 #22147 [Verbose] >             match dps with

00:07:45 #22148 [Verbose] >             | d_particle_state _ => dps

00:07:45 #22149 [Verbose] >     particle_state { st with

00:07:45 #22150 [Verbose] >         time = st.time + dps.dtdt * dt

00:07:45 #22151 [Verbose] >         pos_vec = st.pos_vec ^+^ dps.drdt ^* dt

00:07:45 #22152 [Verbose] >         velocity = st.velocity ^+^ dps.dvdt ^* dt

00:07:45 #22153 [Verbose] >     }

00:07:45 #22154 [Verbose] >

00:07:45 #22155 [Verbose] > inl states_ps (method : numerical_method particle_state d_particle_state) : _ ->

00:07:45 #22156 [Verbose] > _ -> i32 -> particle_state =

00:07:45 #22157 [Verbose] >     newton_second_ps >> method >> seq.iterate_

00:07:45 #22158 [Verbose] >

00:07:45 #22159 [Verbose] > inl z_ge0 sts =

00:07:45 #22160 [Verbose] >     sts

00:07:45 #22161 [Verbose] >     |> seq.take_while_ (fun (particle_state st) _ => st.pos_vec.z >= 0)

00:07:45 #22162 [Verbose] >

00:07:45 #22163 [Verbose] > inl trajectory sts =

00:07:45 #22164 [Verbose] >     sts |> listm.map (fun (particle_state st) => st.pos_vec.y, st.pos_vec.z)

00:07:45 #22165 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1783-8371-829cde6a7660\main.spi

00:07:45 #22166 [Verbose] >

00:07:45 #22167 [Verbose] > ╭─[ 267.78ms - stdout ]────────────────────────────────────────────────────────╮

00:07:45 #22168 [Verbose] > │ ()                                                                           │

00:07:45 #22169 [Verbose] > │                                                                              │

00:07:45 #22170 [Verbose] > │                                                                              │

00:07:45 #22171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:45 #22172 [Verbose] >

00:07:45 #22173 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:45 #22174 [Verbose] > // // test

00:07:45 #22175 [Verbose] >

00:07:45 #22176 [Verbose] > inl update_ps (method : numerical_method particle_state d_particle_state) =

00:07:45 #22177 [Verbose] >     newton_second_ps >> method

00:07:45 #22178 [Verbose] >

00:07:45 #22179 [Verbose] > inl position_ps (method : numerical_method particle_state d_particle_state) fs

00:07:45 #22180 [Verbose] > st t =

00:07:45 #22181 [Verbose] >     inl states : i32 -> particle_state = states_ps method fs st

00:07:45 #22182 [Verbose] >     inl dt = (states 1).time - (states 0).time

00:07:45 #22183 [Verbose] >     inl num_steps = t / dt |> math.round |> abs

00:07:45 #22184 [Verbose] >     inl st1 = solver' method (newton_second_ps fs) st num_steps

00:07:45 #22185 [Verbose] >     st1.pos_vec

00:07:45 #22186 [Verbose] >

00:07:45 #22187 [Verbose] > inl sun_gravity (st : particle_state) : vec =

00:07:45 #22188 [Verbose] >     inl big_g = 0.0000000000667408

00:07:45 #22189 [Verbose] >     inl sun_mass = 1988480000000000000000000000000

00:07:45 #22190 [Verbose] >     -big_g * sun_mass * st.mass *^ st.pos_vec ^/ magnitude st.pos_vec ** 3

00:07:45 #22191 [Verbose] >

00:07:45 #22192 [Verbose] > inl wind_force v_wind drag rho area (st : particle_state) =

00:07:45 #22193 [Verbose] >     inl v_rel = st.velocity ^-^ v_wind

00:07:45 #22194 [Verbose] >     -0.5 * drag * rho * area * magnitude v_rel *^ v_rel

00:07:45 #22195 [Verbose] >

00:07:45 #22196 [Verbose] > inl rock_state () =

00:07:45 #22197 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:45 #22198 [Verbose] >     particle_state { default_particle_state' with

00:07:45 #22199 [Verbose] >         mass = 2

00:07:45 #22200 [Verbose] >         velocity = vec 3 0 4

00:07:45 #22201 [Verbose] >     }

00:07:45 #22202 [Verbose] >

00:07:45 #22203 [Verbose] > inl halley_update dt =

00:07:45 #22204 [Verbose] >     update_ps (euler_cromer_ps dt) [[ sun_gravity ]]

00:07:45 #22205 [Verbose] >

00:07:45 #22206 [Verbose] > inl halley_initial () =

00:07:45 #22207 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:45 #22208 [Verbose] >     particle_state { default_particle_state' with

00:07:45 #22209 [Verbose] >         mass = 220000000000000

00:07:45 #22210 [Verbose] >         pos_vec = 87660000000 *^ i_hat ()

00:07:45 #22211 [Verbose] >         velocity = 54569 *^ j_hat ()

00:07:45 #22212 [Verbose] >     }

00:07:45 #22213 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1810-1039-131031657717\main.spi

00:07:46 #22214 [Verbose] >

00:07:46 #22215 [Verbose] > ╭─[ 279.44ms - stdout ]────────────────────────────────────────────────────────╮

00:07:46 #22216 [Verbose] > │ ()                                                                           │

00:07:46 #22217 [Verbose] > │                                                                              │

00:07:46 #22218 [Verbose] > │                                                                              │

00:07:46 #22219 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:46 #22220 [Verbose] >

00:07:46 #22221 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:46 #22222 [Verbose] > // // test

00:07:46 #22223 [Verbose] >

00:07:46 #22224 [Verbose] > inl baseball_forces () =

00:07:46 #22225 [Verbose] >     inl area = pi * (0.074 / 2) ** 2

00:07:46 #22226 [Verbose] >     [[

00:07:46 #22227 [Verbose] >         earth_surface_gravity

00:07:46 #22228 [Verbose] >         air_resistance 0.3 1.225 area

00:07:46 #22229 [Verbose] >     ]]

00:07:46 #22230 [Verbose] >

00:07:46 #22231 [Verbose] > inl baseball_trajectory dt v0 theta_deg =

00:07:46 #22232 [Verbose] >     inl theta_rad = theta_deg * pi / 180

00:07:46 #22233 [Verbose] >     inl vy0 = v0 * cos theta_rad

00:07:46 #22234 [Verbose] >     inl vz0 = v0 * sin theta_rad

00:07:46 #22235 [Verbose] >     inl initial_state =

00:07:46 #22236 [Verbose] >         particle_state {

00:07:46 #22237 [Verbose] >             mass = 0.145

00:07:46 #22238 [Verbose] >             charge = 0

00:07:46 #22239 [Verbose] >             time = 0

00:07:46 #22240 [Verbose] >             pos_vec = zero_vec ()

00:07:46 #22241 [Verbose] >             velocity = vec 0 vy0 vz0

00:07:46 #22242 [Verbose] >         }

00:07:46 #22243 [Verbose] >     states_ps (euler_cromer_ps dt) (baseball_forces ()) initial_state

00:07:46 #22244 [Verbose] >     >> Some

00:07:46 #22245 [Verbose] >     |> z_ge0

00:07:46 #22246 [Verbose] >     |> trajectory

00:07:46 #22247 [Verbose] >

00:07:46 #22248 [Verbose] > inl baseball_range dt v0 theta_deg =

00:07:46 #22249 [Verbose] >     baseball_trajectory dt v0 theta_deg

00:07:46 #22250 [Verbose] >     |> listm.fold (fun _ (y, _) => y) 0

00:07:46 #22251 [Verbose] >

00:07:46 #22252 [Verbose] > inl x : a _ f64 = am'.init_series 10 80 1

00:07:46 #22253 [Verbose] > inl y = x |> am.map (baseball_range 0.01 45)

00:07:46 #22254 [Verbose] > "range for a baseball hit at 45 m/s",

00:07:46 #22255 [Verbose] > "angle above horizontal (degrees)",

00:07:46 #22256 [Verbose] > "",

00:07:46 #22257 [Verbose] > ;[[ "horizontal range (m)", x, y ]]

00:07:46 #22258 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1838-3855-3297ba116680\main.spi

00:07:47 #22259 [Verbose] >

00:07:47 #22260 [Verbose] > ╭─[ 1.14s - return value ]─────────────────────────────────────────────────────╮

00:07:47 #22261 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:47 #22262 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:47 #22263 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:47 #22264 [Verbose] > │ stroke="none"/>                                                              │

00:07:47 #22265 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:47 #22266 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:47 #22267 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:47 #22268 [Verbose] > │ range for a baseball hit at 45 m/s                                           │

00:07:47 #22269 [Verbose] > │ </text>                                                                      │

00:07:47 #22270 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="55" y1="424" x2="55" │

00:07:47 #22271 [Verbose] > │ y2="75"/>                                                                    │

00:07:47 #22272 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │

00:07:47 #22273 [Verbose] > │ y2="75"/>                                                                    │

00:07:47 #22274 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:47 #22275 [Verbose] > │ y2="75"/>                                                                    │

00:07:47 #22276 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │

00:07:47 #22277 [Verbose] > │ y2="75"/>                                                                    │

00:07:47 #22278 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="...                         │

00:07:47 #22279 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:47 #22280 [Verbose] >

00:07:47 #22281 [Verbose] > ╭─[ 1.15s - stdout ]───────────────────────────────────────────────────────────╮

00:07:47 #22282 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:07:47 #22283 [Verbose] > │ and UH0 =                                                                    │

00:07:47 #22284 [Verbose] > │     | UH0_0                                                                  │

00:07:47 #22285 [Verbose] > │     | UH0_1 of float * float * float * float * float * float * float * float │

00:07:47 #22286 [Verbose] > │ * float * UH0                                                                │

00:07:47 #22287 [Verbose] > │ and UH1 =                                                                    │

00:07:47 #22288 [Verbose] > │     | UH1_0                                                                  │

00:07:47 #22289 [Verbose] > │     | UH1_1 of float * float * UH1                                           │

00:07:47 #22290 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:07:47 #22291 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:07:47 #22292 [Verbose] > │     let v2 : bool = v1 < 71                                                  │

00:07:47 #22293 [Verbose] > │     v2                                                                       │

00:07:47 #22294 [Verbose] > │ and method2 (v0 : int32, v1 : Mut0) : bool =                                 │

00:07:47 #22295 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:07:47 #22296 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:07:47 #22297 [Verbose] > │     v3                                                                       │

00:07:47 #22298 [Verbose] > │ and method4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5  │

00:07:47 #22299 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float *   │

00:07:47 #22300 [Verbose] > │ float * float * float * float * float * float * float * float) =             │

00:07:47 #22301 [Verbose] > │     let v10 : bool = v9 <= 0                                                 │

00:07:47 #22302 [Verbose] > │     if v10 then                                                              │

00:07:47 #22303 [Verbose] > │         struct (v0, v1, v2, v3, v4, v5, v6, v7, v8)                          │

00:07:47 #22304 [Verbose] > │     else                                                                     │

00:07:47 #22305 [Verbose] > │         let v11 : float = v6 * v6                                            │

00:07:47 #22306 [Verbose] > │         let v12 : float = v7 * v7                                            │

00:07:47 #22307 [Verbose] > │         let v13 : float = v11 + v12                                          │

00:07:47 #22308 [Verbose] > │         let v14 : float = v8 * v8                                            │

00:07:47 #22309 [Verbose] > │         let v15 : float = v13 + v14                                          │

00:07:47 #22310 [Verbose] > │         let v16 : float = sqrt v15                                           │

00:07:47 #22311 [Verbose] > │         let v17 : float = -0.0007902794129829633 * v16                       │

00:07:47 #22312 [Verbose] > │         let v18 : float = v17 * v6                                           │

00:07:47 #22313 [Verbose] > │         let v19 : float = v17 * v7                                           │

00:07:47 #22314 [Verbose] > │         let v20 : float = v17 * v8                                           │

00:07:47 #22315 [Verbose] > │         let v21 : float =  -v1                                               │

00:07:47 #22316 [Verbose] > │         let v22 : float = v21 * 9.80665                                      │

00:07:47 #22317 [Verbose] > │         let v23 : float = v22 * 0.0                                          │

00:07:47 #22318 [Verbose] > │         let v24 : float = v23 + v18                                          │

00:07:47 #22319 [Verbose] > │         let v25 : float = v23 + v19                                          │

00:07:47 #22320 [Verbose] > │         let v26 : float = v22 + v20                                          │

00:07:47 #22321 [Verbose] > │         let v27 : float = v24 / v1                                           │

00:07:47 #22322 [Verbose] > │         let v28 : float = v25 / v1                                           │

00:07:47 #22323 [Verbose] > │         let v29 : float = v26 / v1                                           │

00:07:47 #22324 [Verbose] > │         let v30 : float = 0.01 * v27                                         │

00:07:47 #22325 [Verbose] > │         let v31 : float = 0.01 * v28                                         │

00:07:47 #22326 [Verbose] > │         let v32 : float = 0.01 * v29                                         │

00:07:47 #22327 [Verbose] > │         let v33 : float = v6 + v30                                           │

00:07:47 #22328 [Verbose] > │         let v34 : float = v7 + v31                                           │

00:07:47 #22329 [Verbose] > │         let v35 : float = v8 + v32                                           │

00:07:47 #22330 [Verbose] > │         let v36 : float = v5 + 0.01                                          │

00:07:47 #22331 [Verbose] > │         let v37 : float = 0.01 * v33                                         │

00:07:47 #22332 [Verbose] > │         let v38 : float = 0.01 * v34                                         │

00:07:47 #22333 [Verbose] > │         let v39 : float = 0.01 * v35                                         │

00:07:47 #22334 [Verbose] > │         let v40 : float = v2 + v37                                           │

00:07:47 #22335 [Verbose] > │         let v41 : float = v3 + v38                                           │

00:07:47 #22336 [Verbose] > │         let v42 : float = v4 + v39                                           │

00:07:47 #22337 [Verbose] > │         let v43 : int32 = v9 - 1                                             │

00:07:47 #22338 [Verbose] > │         method4(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43)              │

00:07:47 #22339 [Verbose] > │ and method5 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:07:47 #22340 [Verbose] > │     match v0 with                                                            │

00:07:47 #22341 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:47 #22342 [Verbose] > │         let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │

00:07:47 #22343 [Verbose] > │         method5(v11, v12)                                                    │

00:07:47 #22344 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:47 #22345 [Verbose] > │         v1                                                                   │

00:07:47 #22346 [Verbose] > │ and method3 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 =           │

00:07:47 #22347 [Verbose] > │     let v4 : float = 0.0                                                     │

00:07:47 #22348 [Verbose] > │     let v5 : float = 0.145                                                   │

00:07:47 #22349 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:47 #22350 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:47 #22351 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:47 #22352 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:47 #22353 [Verbose] > │     let v10 : float = 0.0                                                    │

00:07:47 #22354 [Verbose] > │     let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 :    │

00:07:47 #22355 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method4(v4, v5, │

00:07:47 #22356 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3)                                             │

00:07:47 #22357 [Verbose] > │     let v20 : bool = v15 >= 0.0                                              │

00:07:47 #22358 [Verbose] > │     if v20 then                                                              │

00:07:47 #22359 [Verbose] > │         let v21 : UH0 = UH0_1(v11, v12, v13, v14, v15, v16, v17, v18, v19,   │

00:07:47 #22360 [Verbose] > │ v2)                                                                          │

00:07:47 #22361 [Verbose] > │         let v22 : int32 = v3 + 1                                             │

00:07:47 #22362 [Verbose] > │         method3(v0, v1, v21, v22)                                            │

00:07:47 #22363 [Verbose] > │     else                                                                     │

00:07:47 #22364 [Verbose] > │         let v24 : UH0 = UH0_0                                                │

00:07:47 #22365 [Verbose] > │         method5(v2, v24)                                                     │

00:07:47 #22366 [Verbose] > │ and method6 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:47 #22367 [Verbose] > │     match v0 with                                                            │

00:07:47 #22368 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:47 #22369 [Verbose] > │         let v12 : UH1 = method6(v11, v1)                                     │

00:07:47 #22370 [Verbose] > │         UH1_1(v5, v6, v12)                                                   │

00:07:47 #22371 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:47 #22372 [Verbose] > │         v1                                                                   │

00:07:47 #22373 [Verbose] > │ and method7 (v0 : UH1, v1 : float) : float =                                 │

00:07:47 #22374 [Verbose] > │     match v0 with                                                            │

00:07:47 #22375 [Verbose] > │     | UH1_1(v2, v3, v4) -> (* Cons *)                                        │

00:07:47 #22376 [Verbose] > │         method7(v4, v2)                                                      │

00:07:47 #22377 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:47 #22378 [Verbose] > │         v1                                                                   │

00:07:47 #22379 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:47 #22380 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:47 #22381 [Verbose] > │     let v0 : (float []) = Array.zeroCreate<float> (71)                       │

00:07:47 #22382 [Verbose] > │     let v1 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:47 #22383 [Verbose] > │     while method1(v1) do                                                     │

00:07:47 #22384 [Verbose] > │         let v3 : int32 = v1.l0                                               │

00:07:47 #22385 [Verbose] > │         let v4 : float = float v3                                            │

00:07:47 #22386 [Verbose] > │         let v5 : float = 10.0 + v4                                           │

00:07:47 #22387 [Verbose] > │         v0.[int v3] <- v5                                                    │

00:07:47 #22388 [Verbose] > │         let v6 : int32 = v3 + 1                                              │

00:07:47 #22389 [Verbose] > │         v1.l0 <- v6                                                          │

00:07:47 #22390 [Verbose] > │         ()                                                                   │

00:07:47 #22391 [Verbose] > │     let v7 : int32 = v0.Length                                               │

00:07:47 #22392 [Verbose] > │     let v8 : (float []) = Array.zeroCreate<float> (v7)                       │

00:07:47 #22393 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:07:47 #22394 [Verbose] > │     while method2(v7, v9) do                                                 │

00:07:47 #22395 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:07:47 #22396 [Verbose] > │         let v12 : float = v0.[int v11]                                       │

00:07:47 #22397 [Verbose] > │         let v13 : float = v12 * 3.141592653589793                            │

00:07:47 #22398 [Verbose] > │         let v14 : float = v13 / 180.0                                        │

00:07:47 #22399 [Verbose] > │         let v15 : float = cos v14                                            │

00:07:47 #22400 [Verbose] > │         let v16 : float = 45.0 * v15                                         │

00:07:47 #22401 [Verbose] > │         let v17 : float = sin v14                                            │

00:07:47 #22402 [Verbose] > │         let v18 : float = 45.0 * v17                                         │

00:07:47 #22403 [Verbose] > │         let v19 : UH0 = UH0_0                                                │

00:07:47 #22404 [Verbose] > │         let v20 : int32 = 0                                                  │

00:07:47 #22405 [Verbose] > │         let v21 : UH0 = method3(v16, v18, v19, v20)                          │

00:07:47 #22406 [Verbose] > │         let v22 : UH1 = UH1_0                                                │

00:07:47 #22407 [Verbose] > │         let v23 : UH1 = method6(v21, v22)                                    │

00:07:47 #22408 [Verbose] > │         let v24 : float = 0.0                                                │

00:07:47 #22409 [Verbose] > │         let v25 : float = method7(v23, v24)                                  │

00:07:47 #22410 [Verbose] > │         v8.[int v11] <- v25                                                  │

00:07:47 #22411 [Verbose] > │         let v26 : int32 = v11 + 1                                            │

00:07:47 #22412 [Verbose] > │         v9.l0 <- v26                                                         │

00:07:47 #22413 [Verbose] > │         ()                                                                   │

00:07:47 #22414 [Verbose] > │     let v27 : string = "horizontal range (m)"                                │

00:07:47 #22415 [Verbose] > │     let v28 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:47 #22416 [Verbose] > │ (v27, v0, v8)|]                                                              │

00:07:47 #22417 [Verbose] > │     let v29 : string = "range for a baseball hit at 45 m/s"                  │

00:07:47 #22418 [Verbose] > │     let v30 : string = "angle above horizontal (degrees)"                    │

00:07:47 #22419 [Verbose] > │     let v31 : string = ""                                                    │

00:07:47 #22420 [Verbose] > │     struct (v29, v30, v31, v28)                                              │

00:07:47 #22421 [Verbose] > │ method0()                                                                    │

00:07:47 #22422 [Verbose] > │                                                                              │

00:07:47 #22423 [Verbose] > │                                                                              │

00:07:47 #22424 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:47 #22425 [Verbose] >

00:07:47 #22426 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:47 #22427 [Verbose] > // // test

00:07:47 #22428 [Verbose] >

00:07:47 #22429 [Verbose] > inl best_angle (min, max) =

00:07:47 #22430 [Verbose] >     let rec loop theta_deg (best_range, best_theta_deg) =

00:07:47 #22431 [Verbose] >         if theta_deg > max

00:07:47 #22432 [Verbose] >         then best_range, best_theta_deg

00:07:47 #22433 [Verbose] >         else

00:07:47 #22434 [Verbose] >             inl range = baseball_range 0.01 45 theta_deg

00:07:47 #22435 [Verbose] >             loop

00:07:47 #22436 [Verbose] >                 (theta_deg + 1)

00:07:47 #22437 [Verbose] >                 (if range > best_range

00:07:47 #22438 [Verbose] >                     then range, theta_deg

00:07:47 #22439 [Verbose] >                     else best_range, best_theta_deg)

00:07:47 #22440 [Verbose] >     loop min (0f64, min)

00:07:47 #22441 [Verbose] >

00:07:47 #22442 [Verbose] > best_angle (30f64, 60f64)

00:07:47 #22443 [Verbose] > |> _assert_eq (116.77499158246208, 41)

00:07:47 #22444 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-1961-6153-6059132c9594\main.spi

00:07:48 #22445 [Verbose] >

00:07:48 #22446 [Verbose] > ╭─[ 828.28ms - stdout ]────────────────────────────────────────────────────────╮

00:07:48 #22447 [Verbose] > │ type UH0 =                                                                   │

00:07:48 #22448 [Verbose] > │     | UH0_0                                                                  │

00:07:48 #22449 [Verbose] > │     | UH0_1 of float * float * float * float * float * float * float * float │

00:07:48 #22450 [Verbose] > │ * float * UH0                                                                │

00:07:48 #22451 [Verbose] > │ and UH1 =                                                                    │

00:07:48 #22452 [Verbose] > │     | UH1_0                                                                  │

00:07:48 #22453 [Verbose] > │     | UH1_1 of float * float * UH1                                           │

00:07:48 #22454 [Verbose] > │ let rec method3 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, │

00:07:48 #22455 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float, v9 : int32) : struct (float  │

00:07:48 #22456 [Verbose] > │ * float * float * float * float * float * float * float * float) =           │

00:07:48 #22457 [Verbose] > │     let v10 : bool = v9 <= 0                                                 │

00:07:48 #22458 [Verbose] > │     if v10 then                                                              │

00:07:48 #22459 [Verbose] > │         struct (v0, v1, v2, v3, v4, v5, v6, v7, v8)                          │

00:07:48 #22460 [Verbose] > │     else                                                                     │

00:07:48 #22461 [Verbose] > │         let v11 : float = v6 * v6                                            │

00:07:48 #22462 [Verbose] > │         let v12 : float = v7 * v7                                            │

00:07:48 #22463 [Verbose] > │         let v13 : float = v11 + v12                                          │

00:07:48 #22464 [Verbose] > │         let v14 : float = v8 * v8                                            │

00:07:48 #22465 [Verbose] > │         let v15 : float = v13 + v14                                          │

00:07:48 #22466 [Verbose] > │         let v16 : float = sqrt v15                                           │

00:07:48 #22467 [Verbose] > │         let v17 : float = -0.0007902794129829633 * v16                       │

00:07:48 #22468 [Verbose] > │         let v18 : float = v17 * v6                                           │

00:07:48 #22469 [Verbose] > │         let v19 : float = v17 * v7                                           │

00:07:48 #22470 [Verbose] > │         let v20 : float = v17 * v8                                           │

00:07:48 #22471 [Verbose] > │         let v21 : float =  -v1                                               │

00:07:48 #22472 [Verbose] > │         let v22 : float = v21 * 9.80665                                      │

00:07:48 #22473 [Verbose] > │         let v23 : float = v22 * 0.0                                          │

00:07:48 #22474 [Verbose] > │         let v24 : float = v23 + v18                                          │

00:07:48 #22475 [Verbose] > │         let v25 : float = v23 + v19                                          │

00:07:48 #22476 [Verbose] > │         let v26 : float = v22 + v20                                          │

00:07:48 #22477 [Verbose] > │         let v27 : float = v24 / v1                                           │

00:07:48 #22478 [Verbose] > │         let v28 : float = v25 / v1                                           │

00:07:48 #22479 [Verbose] > │         let v29 : float = v26 / v1                                           │

00:07:48 #22480 [Verbose] > │         let v30 : float = 0.01 * v27                                         │

00:07:48 #22481 [Verbose] > │         let v31 : float = 0.01 * v28                                         │

00:07:48 #22482 [Verbose] > │         let v32 : float = 0.01 * v29                                         │

00:07:48 #22483 [Verbose] > │         let v33 : float = v6 + v30                                           │

00:07:48 #22484 [Verbose] > │         let v34 : float = v7 + v31                                           │

00:07:48 #22485 [Verbose] > │         let v35 : float = v8 + v32                                           │

00:07:48 #22486 [Verbose] > │         let v36 : float = v5 + 0.01                                          │

00:07:48 #22487 [Verbose] > │         let v37 : float = 0.01 * v33                                         │

00:07:48 #22488 [Verbose] > │         let v38 : float = 0.01 * v34                                         │

00:07:48 #22489 [Verbose] > │         let v39 : float = 0.01 * v35                                         │

00:07:48 #22490 [Verbose] > │         let v40 : float = v2 + v37                                           │

00:07:48 #22491 [Verbose] > │         let v41 : float = v3 + v38                                           │

00:07:48 #22492 [Verbose] > │         let v42 : float = v4 + v39                                           │

00:07:48 #22493 [Verbose] > │         let v43 : int32 = v9 - 1                                             │

00:07:48 #22494 [Verbose] > │         method3(v0, v1, v40, v41, v42, v36, v33, v34, v35, v43)              │

00:07:48 #22495 [Verbose] > │ and method4 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:07:48 #22496 [Verbose] > │     match v0 with                                                            │

00:07:48 #22497 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:48 #22498 [Verbose] > │         let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │

00:07:48 #22499 [Verbose] > │         method4(v11, v12)                                                    │

00:07:48 #22500 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:48 #22501 [Verbose] > │         v1                                                                   │

00:07:48 #22502 [Verbose] > │ and method2 (v0 : float, v1 : float, v2 : UH0, v3 : int32) : UH0 =           │

00:07:48 #22503 [Verbose] > │     let v4 : float = 0.0                                                     │

00:07:48 #22504 [Verbose] > │     let v5 : float = 0.145                                                   │

00:07:48 #22505 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:48 #22506 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:48 #22507 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:48 #22508 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:48 #22509 [Verbose] > │     let v10 : float = 0.0                                                    │

00:07:48 #22510 [Verbose] > │     let struct (v11 : float, v12 : float, v13 : float, v14 : float, v15 :    │

00:07:48 #22511 [Verbose] > │ float, v16 : float, v17 : float, v18 : float, v19 : float) = method3(v4, v5, │

00:07:48 #22512 [Verbose] > │ v6, v7, v8, v9, v10, v0, v1, v3)                                             │

00:07:48 #22513 [Verbose] > │     let v20 : bool = v15 >= 0.0                                              │

00:07:48 #22514 [Verbose] > │     if v20 then                                                              │

00:07:48 #22515 [Verbose] > │         let v21 : UH0 = UH0_1(v11, v12, v13, v14, v15, v16, v17, v18, v19,   │

00:07:48 #22516 [Verbose] > │ v2)                                                                          │

00:07:48 #22517 [Verbose] > │         let v22 : int32 = v3 + 1                                             │

00:07:48 #22518 [Verbose] > │         method2(v0, v1, v21, v22)                                            │

00:07:48 #22519 [Verbose] > │     else                                                                     │

00:07:48 #22520 [Verbose] > │         let v24 : UH0 = UH0_0                                                │

00:07:48 #22521 [Verbose] > │         method4(v2, v24)                                                     │

00:07:48 #22522 [Verbose] > │ and method5 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:48 #22523 [Verbose] > │     match v0 with                                                            │

00:07:48 #22524 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:48 #22525 [Verbose] > │         let v12 : UH1 = method5(v11, v1)                                     │

00:07:48 #22526 [Verbose] > │         UH1_1(v5, v6, v12)                                                   │

00:07:48 #22527 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:48 #22528 [Verbose] > │         v1                                                                   │

00:07:48 #22529 [Verbose] > │ and method6 (v0 : UH1, v1 : float) : float =                                 │

00:07:48 #22530 [Verbose] > │     match v0 with                                                            │

00:07:48 #22531 [Verbose] > │     | UH1_1(v2, v3, v4) -> (* Cons *)                                        │

00:07:48 #22532 [Verbose] > │         method6(v4, v2)                                                      │

00:07:48 #22533 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:48 #22534 [Verbose] > │         v1                                                                   │

00:07:48 #22535 [Verbose] > │ and method1 (v0 : float, v1 : float, v2 : float) : struct (float * float) =  │

00:07:48 #22536 [Verbose] > │     let v3 : bool = v0 > 60.0                                                │

00:07:48 #22537 [Verbose] > │     if v3 then                                                               │

00:07:48 #22538 [Verbose] > │         struct (v2, v1)                                                      │

00:07:48 #22539 [Verbose] > │     else                                                                     │

00:07:48 #22540 [Verbose] > │         let v4 : float = v0 * 3.141592653589793                              │

00:07:48 #22541 [Verbose] > │         let v5 : float = v4 / 180.0                                          │

00:07:48 #22542 [Verbose] > │         let v6 : float = cos v5                                              │

00:07:48 #22543 [Verbose] > │         let v7 : float = 45.0 * v6                                           │

00:07:48 #22544 [Verbose] > │         let v8 : float = sin v5                                              │

00:07:48 #22545 [Verbose] > │         let v9 : float = 45.0 * v8                                           │

00:07:48 #22546 [Verbose] > │         let v10 : UH0 = UH0_0                                                │

00:07:48 #22547 [Verbose] > │         let v11 : int32 = 0                                                  │

00:07:48 #22548 [Verbose] > │         let v12 : UH0 = method2(v7, v9, v10, v11)                            │

00:07:48 #22549 [Verbose] > │         let v13 : UH1 = UH1_0                                                │

00:07:48 #22550 [Verbose] > │         let v14 : UH1 = method5(v12, v13)                                    │

00:07:48 #22551 [Verbose] > │         let v15 : float = 0.0                                                │

00:07:48 #22552 [Verbose] > │         let v16 : float = method6(v14, v15)                                  │

00:07:48 #22553 [Verbose] > │         let v17 : float = v0 + 1.0                                           │

00:07:48 #22554 [Verbose] > │         let v18 : bool = v16 > v2                                            │

00:07:48 #22555 [Verbose] > │         let struct (v19 : float, v20 : float) =                              │

00:07:48 #22556 [Verbose] > │             if v18 then                                                      │

00:07:48 #22557 [Verbose] > │                 struct (v16, v0)                                             │

00:07:48 #22558 [Verbose] > │             else                                                             │

00:07:48 #22559 [Verbose] > │                 struct (v2, v1)                                              │

00:07:48 #22560 [Verbose] > │         method1(v17, v20, v19)                                               │

00:07:48 #22561 [Verbose] > │ and method7 (v0 : bool) : bool =                                             │

00:07:48 #22562 [Verbose] > │     v0                                                                       │

00:07:48 #22563 [Verbose] > │ and method0 () : unit =                                                      │

00:07:48 #22564 [Verbose] > │     let v0 : float = 30.0                                                    │

00:07:48 #22565 [Verbose] > │     let v1 : float = 0.0                                                     │

00:07:48 #22566 [Verbose] > │     let v2 : float = 30.0                                                    │

00:07:48 #22567 [Verbose] > │     let struct (v3 : float, v4 : float) = method1(v0, v2, v1)                │

00:07:48 #22568 [Verbose] > │     let v5 : string = $"%A{struct (v3, v4)}"                                 │

00:07:48 #22569 [Verbose] > │     System.Console.WriteLine v5                                              │

00:07:48 #22570 [Verbose] > │     let v6 : bool = v3 = 116.77499158246208                                  │

00:07:48 #22571 [Verbose] > │     let v8 : bool =                                                          │

00:07:48 #22572 [Verbose] > │         if v6 then                                                           │

00:07:48 #22573 [Verbose] > │             let v7 : bool = v4 = 41.0                                        │

00:07:48 #22574 [Verbose] > │             v7                                                               │

00:07:48 #22575 [Verbose] > │         else                                                                 │

00:07:48 #22576 [Verbose] > │             false                                                            │

00:07:48 #22577 [Verbose] > │     let v10 : bool =                                                         │

00:07:48 #22578 [Verbose] > │         if v8 then                                                           │

00:07:48 #22579 [Verbose] > │             true                                                             │

00:07:48 #22580 [Verbose] > │         else                                                                 │

00:07:48 #22581 [Verbose] > │             method7(v8)                                                      │

00:07:48 #22582 [Verbose] > │     let v11 : string = $"__expect / actual: %A{struct (v3, v4)} / expected:  │

00:07:48 #22583 [Verbose] > │ %A{struct (116.77499158246208, 41.0)}"                                       │

00:07:48 #22584 [Verbose] > │     let v12 : bool = v10 = false                                             │

00:07:48 #22585 [Verbose] > │     if v12 then                                                              │

00:07:48 #22586 [Verbose] > │         failwith<unit> v11                                                   │

00:07:48 #22587 [Verbose] > │ method0()                                                                    │

00:07:48 #22588 [Verbose] > │                                                                              │

00:07:48 #22589 [Verbose] > │ struct (116.7749916, 41.0)                                                   │

00:07:48 #22590 [Verbose] > │                                                                              │

00:07:48 #22591 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:48 #22592 [Verbose] >

00:07:48 #22593 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:48 #22594 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:48 #22595 [Verbose] > │ ## relativity_ps                                                             │

00:07:48 #22596 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:48 #22597 [Verbose] >

00:07:48 #22598 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:48 #22599 [Verbose] > inl relativity_ps fs (st : particle_state) =

00:07:48 #22600 [Verbose] >     inl f_net = fs |> listm.map (fun f => f st) |> sum_vec

00:07:48 #22601 [Verbose] >     inl c = 299792458

00:07:48 #22602 [Verbose] >     inl u = st.velocity ^/ c

00:07:48 #22603 [Verbose] >     inl acc = sqrt (1 - (u <.> u)) *^ (f_net ^-^ (f_net <.> u) *^ u) ^/ st.mass

00:07:48 #22604 [Verbose] >     d_particle_state {

00:07:48 #22605 [Verbose] >         dmdt = 0

00:07:48 #22606 [Verbose] >         dqdt = 0

00:07:48 #22607 [Verbose] >         dtdt = 1

00:07:48 #22608 [Verbose] >         drdt = st.velocity

00:07:48 #22609 [Verbose] >         dvdt = acc

00:07:48 #22610 [Verbose] >     }

00:07:48 #22611 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2050-5049-59722124d80b\main.spi

00:07:48 #22612 [Verbose] >

00:07:48 #22613 [Verbose] > ╭─[ 285.51ms - stdout ]────────────────────────────────────────────────────────╮

00:07:48 #22614 [Verbose] > │ ()                                                                           │

00:07:48 #22615 [Verbose] > │                                                                              │

00:07:48 #22616 [Verbose] > │                                                                              │

00:07:48 #22617 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:48 #22618 [Verbose] >

00:07:48 #22619 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:48 #22620 [Verbose] > // // test

00:07:48 #22621 [Verbose] >

00:07:48 #22622 [Verbose] > inl year = 365.25 * 24 * 60 * 60

00:07:48 #22623 [Verbose] > inl c = 299792458

00:07:48 #22624 [Verbose] > inl ~method = runge_kutta_4 100000

00:07:48 #22625 [Verbose] > inl forces = [[ fun _ => 10 *^ i_hat () ]]

00:07:48 #22626 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()

00:07:48 #22627 [Verbose] > inl initial_state =

00:07:48 #22628 [Verbose] >     particle_state { default_particle_state' with

00:07:48 #22629 [Verbose] >         mass = 1

00:07:48 #22630 [Verbose] >     }

00:07:48 #22631 [Verbose] >

00:07:48 #22632 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state

00:07:48 #22633 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state

00:07:48 #22634 [Verbose] >

00:07:48 #22635 [Verbose] > inl newton_x, newton_y =

00:07:48 #22636 [Verbose] >     newton_states

00:07:48 #22637 [Verbose] >     >> Some

00:07:48 #22638 [Verbose] >     |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)

00:07:48 #22639 [Verbose] >     |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)

00:07:48 #22640 [Verbose] >     |> listm'.unzip

00:07:48 #22641 [Verbose] >

00:07:48 #22642 [Verbose] > inl _, relativity_y =

00:07:48 #22643 [Verbose] >     relativity_states

00:07:48 #22644 [Verbose] >     >> Some

00:07:48 #22645 [Verbose] >     |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year)

00:07:48 #22646 [Verbose] >     |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c)

00:07:48 #22647 [Verbose] >     |> listm'.unzip

00:07:48 #22648 [Verbose] >

00:07:48 #22649 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray

00:07:48 #22650 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray

00:07:48 #22651 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray

00:07:48 #22652 [Verbose] >

00:07:48 #22653 [Verbose] > "response to a constant force",

00:07:48 #22654 [Verbose] > "time (years)",

00:07:48 #22655 [Verbose] > "velocity (multiples of c)",

00:07:48 #22656 [Verbose] > ;[[

00:07:48 #22657 [Verbose] >     "newtonian", newton_x, newton_y

00:07:48 #22658 [Verbose] >     "relativistic", newton_x, relativity_y

00:07:48 #22659 [Verbose] > ]]

00:07:48 #22660 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2079-7929-704e6694504b\main.spi

00:07:49 #22661 [Verbose] >

00:07:49 #22662 [Verbose] > ╭─[ 753.98ms - return value ]──────────────────────────────────────────────────╮

00:07:49 #22663 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:49 #22664 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:49 #22665 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:49 #22666 [Verbose] > │ stroke="none"/>                                                              │

00:07:49 #22667 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:49 #22668 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:49 #22669 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:49 #22670 [Verbose] > │ response to a constant force                                                 │

00:07:49 #22671 [Verbose] > │ </text>                                                                      │

00:07:49 #22672 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:49 #22673 [Verbose] > │ y2="75"/>                                                                    │

00:07:49 #22674 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:49 #22675 [Verbose] > │ y2="75"/>                                                                    │

00:07:49 #22676 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:49 #22677 [Verbose] > │ y2="75"/>                                                                    │

00:07:49 #22678 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:49 #22679 [Verbose] > │ y2="75"/>                                                                    │

00:07:49 #22680 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1=...                   │

00:07:49 #22681 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:49 #22682 [Verbose] >

00:07:49 #22683 [Verbose] > ╭─[ 769.63ms - stdout ]────────────────────────────────────────────────────────╮

00:07:49 #22684 [Verbose] > │ type UH0 =                                                                   │

00:07:49 #22685 [Verbose] > │     | UH0_0                                                                  │

00:07:49 #22686 [Verbose] > │     | UH0_1 of float * float * float * float * float * float * float * float │

00:07:49 #22687 [Verbose] > │ * float * UH0                                                                │

00:07:49 #22688 [Verbose] > │ and UH1 =                                                                    │

00:07:49 #22689 [Verbose] > │     | UH1_0                                                                  │

00:07:49 #22690 [Verbose] > │     | UH1_1 of float * float * UH1                                           │

00:07:49 #22691 [Verbose] > │ and UH2 =                                                                    │

00:07:49 #22692 [Verbose] > │     | UH2_0                                                                  │

00:07:49 #22693 [Verbose] > │     | UH2_1 of float * UH2                                                   │

00:07:49 #22694 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float *      │

00:07:49 #22695 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │

00:07:49 #22696 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3  │

00:07:49 #22697 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 :    │

00:07:49 #22698 [Verbose] > │ float) : struct (float * float * float * float * float * float * float *     │

00:07:49 #22699 [Verbose] > │ float * float) =                                                             │

00:07:49 #22700 [Verbose] > │     let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 :    │

00:07:49 #22701 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1,  │

00:07:49 #22702 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9)                                              │

00:07:49 #22703 [Verbose] > │     let v19 : float = v15 * 50000.0                                          │

00:07:49 #22704 [Verbose] > │     let v20 : float = v6 + v19                                               │

00:07:49 #22705 [Verbose] > │     let v21 : float = 50000.0 * v12                                          │

00:07:49 #22706 [Verbose] > │     let v22 : float = 50000.0 * v13                                          │

00:07:49 #22707 [Verbose] > │     let v23 : float = 50000.0 * v14                                          │

00:07:49 #22708 [Verbose] > │     let v24 : float = v3 + v21                                               │

00:07:49 #22709 [Verbose] > │     let v25 : float = v4 + v22                                               │

00:07:49 #22710 [Verbose] > │     let v26 : float = v5 + v23                                               │

00:07:49 #22711 [Verbose] > │     let v27 : float = 50000.0 * v16                                          │

00:07:49 #22712 [Verbose] > │     let v28 : float = 50000.0 * v17                                          │

00:07:49 #22713 [Verbose] > │     let v29 : float = 50000.0 * v18                                          │

00:07:49 #22714 [Verbose] > │     let v30 : float = v7 + v27                                               │

00:07:49 #22715 [Verbose] > │     let v31 : float = v8 + v28                                               │

00:07:49 #22716 [Verbose] > │     let v32 : float = v9 + v29                                               │

00:07:49 #22717 [Verbose] > │     let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 :    │

00:07:49 #22718 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1,  │

00:07:49 #22719 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32)                                       │

00:07:49 #22720 [Verbose] > │     let v42 : float = v38 * 50000.0                                          │

00:07:49 #22721 [Verbose] > │     let v43 : float = v6 + v42                                               │

00:07:49 #22722 [Verbose] > │     let v44 : float = 50000.0 * v35                                          │

00:07:49 #22723 [Verbose] > │     let v45 : float = 50000.0 * v36                                          │

00:07:49 #22724 [Verbose] > │     let v46 : float = 50000.0 * v37                                          │

00:07:49 #22725 [Verbose] > │     let v47 : float = v3 + v44                                               │

00:07:49 #22726 [Verbose] > │     let v48 : float = v4 + v45                                               │

00:07:49 #22727 [Verbose] > │     let v49 : float = v5 + v46                                               │

00:07:49 #22728 [Verbose] > │     let v50 : float = 50000.0 * v39                                          │

00:07:49 #22729 [Verbose] > │     let v51 : float = 50000.0 * v40                                          │

00:07:49 #22730 [Verbose] > │     let v52 : float = 50000.0 * v41                                          │

00:07:49 #22731 [Verbose] > │     let v53 : float = v7 + v50                                               │

00:07:49 #22732 [Verbose] > │     let v54 : float = v8 + v51                                               │

00:07:49 #22733 [Verbose] > │     let v55 : float = v9 + v52                                               │

00:07:49 #22734 [Verbose] > │     let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 :    │

00:07:49 #22735 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1,  │

00:07:49 #22736 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55)                                       │

00:07:49 #22737 [Verbose] > │     let v65 : float = v61 * 100000.0                                         │

00:07:49 #22738 [Verbose] > │     let v66 : float = v6 + v65                                               │

00:07:49 #22739 [Verbose] > │     let v67 : float = 100000.0 * v58                                         │

00:07:49 #22740 [Verbose] > │     let v68 : float = 100000.0 * v59                                         │

00:07:49 #22741 [Verbose] > │     let v69 : float = 100000.0 * v60                                         │

00:07:49 #22742 [Verbose] > │     let v70 : float = v3 + v67                                               │

00:07:49 #22743 [Verbose] > │     let v71 : float = v4 + v68                                               │

00:07:49 #22744 [Verbose] > │     let v72 : float = v5 + v69                                               │

00:07:49 #22745 [Verbose] > │     let v73 : float = 100000.0 * v62                                         │

00:07:49 #22746 [Verbose] > │     let v74 : float = 100000.0 * v63                                         │

00:07:49 #22747 [Verbose] > │     let v75 : float = 100000.0 * v64                                         │

00:07:49 #22748 [Verbose] > │     let v76 : float = v7 + v73                                               │

00:07:49 #22749 [Verbose] > │     let v77 : float = v8 + v74                                               │

00:07:49 #22750 [Verbose] > │     let v78 : float = v9 + v75                                               │

00:07:49 #22751 [Verbose] > │     let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 :    │

00:07:49 #22752 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1,  │

00:07:49 #22753 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78)                                       │

00:07:49 #22754 [Verbose] > │     let v88 : float = v10 + v33                                              │

00:07:49 #22755 [Verbose] > │     let v89 : float = v11 + v34                                              │

00:07:49 #22756 [Verbose] > │     let v90 : float = v15 + v38                                              │

00:07:49 #22757 [Verbose] > │     let v91 : float = v12 + v35                                              │

00:07:49 #22758 [Verbose] > │     let v92 : float = v13 + v36                                              │

00:07:49 #22759 [Verbose] > │     let v93 : float = v14 + v37                                              │

00:07:49 #22760 [Verbose] > │     let v94 : float = v16 + v39                                              │

00:07:49 #22761 [Verbose] > │     let v95 : float = v17 + v40                                              │

00:07:49 #22762 [Verbose] > │     let v96 : float = v18 + v41                                              │

00:07:49 #22763 [Verbose] > │     let v97 : float = v88 + v33                                              │

00:07:49 #22764 [Verbose] > │     let v98 : float = v89 + v34                                              │

00:07:49 #22765 [Verbose] > │     let v99 : float = v90 + v38                                              │

00:07:49 #22766 [Verbose] > │     let v100 : float = v91 + v35                                             │

00:07:49 #22767 [Verbose] > │     let v101 : float = v92 + v36                                             │

00:07:49 #22768 [Verbose] > │     let v102 : float = v93 + v37                                             │

00:07:49 #22769 [Verbose] > │     let v103 : float = v94 + v39                                             │

00:07:49 #22770 [Verbose] > │     let v104 : float = v95 + v40                                             │

00:07:49 #22771 [Verbose] > │     let v105 : float = v96 + v41                                             │

00:07:49 #22772 [Verbose] > │     let v106 : float = v97 + v56                                             │

00:07:49 #22773 [Verbose] > │     let v107 : float = v98 + v57                                             │

00:07:49 #22774 [Verbose] > │     let v108 : float = v99 + v61                                             │

00:07:49 #22775 [Verbose] > │     let v109 : float = v100 + v58                                            │

00:07:49 #22776 [Verbose] > │     let v110 : float = v101 + v59                                            │

00:07:49 #22777 [Verbose] > │     let v111 : float = v102 + v60                                            │

00:07:49 #22778 [Verbose] > │     let v112 : float = v103 + v62                                            │

00:07:49 #22779 [Verbose] > │     let v113 : float = v104 + v63                                            │

00:07:49 #22780 [Verbose] > │     let v114 : float = v105 + v64                                            │

00:07:49 #22781 [Verbose] > │     let v115 : float = v106 + v56                                            │

00:07:49 #22782 [Verbose] > │     let v116 : float = v107 + v57                                            │

00:07:49 #22783 [Verbose] > │     let v117 : float = v108 + v61                                            │

00:07:49 #22784 [Verbose] > │     let v118 : float = v109 + v58                                            │

00:07:49 #22785 [Verbose] > │     let v119 : float = v110 + v59                                            │

00:07:49 #22786 [Verbose] > │     let v120 : float = v111 + v60                                            │

00:07:49 #22787 [Verbose] > │     let v121 : float = v112 + v62                                            │

00:07:49 #22788 [Verbose] > │     let v122 : float = v113 + v63                                            │

00:07:49 #22789 [Verbose] > │     let v123 : float = v114 + v64                                            │

00:07:49 #22790 [Verbose] > │     let v124 : float = v115 + v79                                            │

00:07:49 #22791 [Verbose] > │     let v125 : float = v116 + v80                                            │

00:07:49 #22792 [Verbose] > │     let v126 : float = v117 + v84                                            │

00:07:49 #22793 [Verbose] > │     let v127 : float = v118 + v81                                            │

00:07:49 #22794 [Verbose] > │     let v128 : float = v119 + v82                                            │

00:07:49 #22795 [Verbose] > │     let v129 : float = v120 + v83                                            │

00:07:49 #22796 [Verbose] > │     let v130 : float = v121 + v85                                            │

00:07:49 #22797 [Verbose] > │     let v131 : float = v122 + v86                                            │

00:07:49 #22798 [Verbose] > │     let v132 : float = v123 + v87                                            │

00:07:49 #22799 [Verbose] > │     let v133 : float = v126 * 16666.666666666668                             │

00:07:49 #22800 [Verbose] > │     let v134 : float = v6 + v133                                             │

00:07:49 #22801 [Verbose] > │     let v135 : float = 16666.666666666668 * v127                             │

00:07:49 #22802 [Verbose] > │     let v136 : float = 16666.666666666668 * v128                             │

00:07:49 #22803 [Verbose] > │     let v137 : float = 16666.666666666668 * v129                             │

00:07:49 #22804 [Verbose] > │     let v138 : float = v3 + v135                                             │

00:07:49 #22805 [Verbose] > │     let v139 : float = v4 + v136                                             │

00:07:49 #22806 [Verbose] > │     let v140 : float = v5 + v137                                             │

00:07:49 #22807 [Verbose] > │     let v141 : float = 16666.666666666668 * v130                             │

00:07:49 #22808 [Verbose] > │     let v142 : float = 16666.666666666668 * v131                             │

00:07:49 #22809 [Verbose] > │     let v143 : float = 16666.666666666668 * v132                             │

00:07:49 #22810 [Verbose] > │     let v144 : float = v7 + v141                                             │

00:07:49 #22811 [Verbose] > │     let v145 : float = v8 + v142                                             │

00:07:49 #22812 [Verbose] > │     let v146 : float = v9 + v143                                             │

00:07:49 #22813 [Verbose] > │     struct (v1, v2, v138, v139, v140, v134, v144, v145, v146)                │

00:07:49 #22814 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │

00:07:49 #22815 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float *  │

00:07:49 #22816 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float *  │

00:07:49 #22817 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float *    │

00:07:49 #22818 [Verbose] > │ float * float * float * float * float * float)) =                            │

00:07:49 #22819 [Verbose] > │     closure1(v0)                                                             │

00:07:49 #22820 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │

00:07:49 #22821 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │

00:07:49 #22822 [Verbose] > │ float * float * float * float * float * float * float * float) =             │

00:07:49 #22823 [Verbose] > │     let v9 : float = 10.0 / v1                                               │

00:07:49 #22824 [Verbose] > │     let v10 : float = 0.0 / v1                                               │

00:07:49 #22825 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v9, v10, v10)                         │

00:07:49 #22826 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │

00:07:49 #22827 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │

00:07:49 #22828 [Verbose] > │ float * float * float * float * float * float * float * float) =             │

00:07:49 #22829 [Verbose] > │     let v9 : float = v6 / 299792458.0                                        │

00:07:49 #22830 [Verbose] > │     let v10 : float = v7 / 299792458.0                                       │

00:07:49 #22831 [Verbose] > │     let v11 : float = v8 / 299792458.0                                       │

00:07:49 #22832 [Verbose] > │     let v12 : float = v9 * v9                                                │

00:07:49 #22833 [Verbose] > │     let v13 : float = v10 * v10                                              │

00:07:49 #22834 [Verbose] > │     let v14 : float = v12 + v13                                              │

00:07:49 #22835 [Verbose] > │     let v15 : float = v11 * v11                                              │

00:07:49 #22836 [Verbose] > │     let v16 : float = v14 + v15                                              │

00:07:49 #22837 [Verbose] > │     let v17 : float = 1.0 - v16                                              │

00:07:49 #22838 [Verbose] > │     let v18 : float = sqrt v17                                               │

00:07:49 #22839 [Verbose] > │     let v19 : float = 10.0 * v9                                              │

00:07:49 #22840 [Verbose] > │     let v20 : float = 0.0 * v10                                              │

00:07:49 #22841 [Verbose] > │     let v21 : float = v19 + v20                                              │

00:07:49 #22842 [Verbose] > │     let v22 : float = 0.0 * v11                                              │

00:07:49 #22843 [Verbose] > │     let v23 : float = v21 + v22                                              │

00:07:49 #22844 [Verbose] > │     let v24 : float = v23 * v9                                               │

00:07:49 #22845 [Verbose] > │     let v25 : float = v23 * v10                                              │

00:07:49 #22846 [Verbose] > │     let v26 : float = v23 * v11                                              │

00:07:49 #22847 [Verbose] > │     let v27 : float = -1.0 * v24                                             │

00:07:49 #22848 [Verbose] > │     let v28 : float = -1.0 * v25                                             │

00:07:49 #22849 [Verbose] > │     let v29 : float = -1.0 * v26                                             │

00:07:49 #22850 [Verbose] > │     let v30 : float = 10.0 + v27                                             │

00:07:49 #22851 [Verbose] > │     let v31 : float = v18 * v30                                              │

00:07:49 #22852 [Verbose] > │     let v32 : float = v18 * v28                                              │

00:07:49 #22853 [Verbose] > │     let v33 : float = v18 * v29                                              │

00:07:49 #22854 [Verbose] > │     let v34 : float = v31 / v1                                               │

00:07:49 #22855 [Verbose] > │     let v35 : float = v32 / v1                                               │

00:07:49 #22856 [Verbose] > │     let v36 : float = v33 / v1                                               │

00:07:49 #22857 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v34, v35, v36)                        │

00:07:49 #22858 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float *   │

00:07:49 #22859 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │

00:07:49 #22860 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 :    │

00:07:49 #22861 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 :     │

00:07:49 #22862 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float *     │

00:07:49 #22863 [Verbose] > │ float * float) =                                                             │

00:07:49 #22864 [Verbose] > │     let v11 : bool = v10 <= 0                                                │

00:07:49 #22865 [Verbose] > │     if v11 then                                                              │

00:07:49 #22866 [Verbose] > │         struct (v1, v2, v3, v4, v5, v6, v7, v8, v9)                          │

00:07:49 #22867 [Verbose] > │     else                                                                     │

00:07:49 #22868 [Verbose] > │         let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16  │

00:07:49 #22869 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct     │

00:07:49 #22870 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9)                                         │

00:07:49 #22871 [Verbose] > │         let v21 : int32 = v10 - 1                                            │

00:07:49 #22872 [Verbose] > │         method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)        │

00:07:49 #22873 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:07:49 #22874 [Verbose] > │     match v0 with                                                            │

00:07:49 #22875 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:49 #22876 [Verbose] > │         let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │

00:07:49 #22877 [Verbose] > │         method3(v11, v12)                                                    │

00:07:49 #22878 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:49 #22879 [Verbose] > │         v1                                                                   │

00:07:49 #22880 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float *   │

00:07:49 #22881 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │

00:07:49 #22882 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │

00:07:49 #22883 [Verbose] > │     let v3 : float = 0.0                                                     │

00:07:49 #22884 [Verbose] > │     let v4 : float = 1.0                                                     │

00:07:49 #22885 [Verbose] > │     let v5 : float = 0.0                                                     │

00:07:49 #22886 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:49 #22887 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:49 #22888 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:49 #22889 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:49 #22890 [Verbose] > │     let v10 : float = 0.0                                                    │

00:07:49 #22891 [Verbose] > │     let v11 : float = 0.0                                                    │

00:07:49 #22892 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │

00:07:49 #22893 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │

00:07:49 #22894 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │

00:07:49 #22895 [Verbose] > │     let v21 : bool = v17 <= 31557600.0                                       │

00:07:49 #22896 [Verbose] > │     if v21 then                                                              │

00:07:49 #22897 [Verbose] > │         let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │

00:07:49 #22898 [Verbose] > │ v1)                                                                          │

00:07:49 #22899 [Verbose] > │         let v23 : int32 = v2 + 1                                             │

00:07:49 #22900 [Verbose] > │         method1(v0, v22, v23)                                                │

00:07:49 #22901 [Verbose] > │     else                                                                     │

00:07:49 #22902 [Verbose] > │         let v25 : UH0 = UH0_0                                                │

00:07:49 #22903 [Verbose] > │         method3(v1, v25)                                                     │

00:07:49 #22904 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:49 #22905 [Verbose] > │     match v0 with                                                            │

00:07:49 #22906 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:49 #22907 [Verbose] > │         let v12 : UH1 = method4(v11, v1)                                     │

00:07:49 #22908 [Verbose] > │         let v13 : float = v7 / 31557600.0                                    │

00:07:49 #22909 [Verbose] > │         let v14 : float = v8 / 299792458.0                                   │

00:07:49 #22910 [Verbose] > │         UH1_1(v13, v14, v12)                                                 │

00:07:49 #22911 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:49 #22912 [Verbose] > │         v1                                                                   │

00:07:49 #22913 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) =            │

00:07:49 #22914 [Verbose] > │     match v0 with                                                            │

00:07:49 #22915 [Verbose] > │     | UH1_1(v3, v4, v5) -> (* Cons *)                                        │

00:07:49 #22916 [Verbose] > │         let v6 : UH2 = UH2_1(v3, v1)                                         │

00:07:49 #22917 [Verbose] > │         let v7 : UH2 = UH2_1(v4, v2)                                         │

00:07:49 #22918 [Verbose] > │         method5(v5, v6, v7)                                                  │

00:07:49 #22919 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:49 #22920 [Verbose] > │         struct (v1, v2)                                                      │

00:07:49 #22921 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 =                                     │

00:07:49 #22922 [Verbose] > │     match v0 with                                                            │

00:07:49 #22923 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:07:49 #22924 [Verbose] > │         let v4 : UH2 = UH2_1(v2, v1)                                         │

00:07:49 #22925 [Verbose] > │         method6(v3, v4)                                                      │

00:07:49 #22926 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:49 #22927 [Verbose] > │         v1                                                                   │

00:07:49 #22928 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float *   │

00:07:49 #22929 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │

00:07:49 #22930 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │

00:07:49 #22931 [Verbose] > │     let v3 : float = 0.0                                                     │

00:07:49 #22932 [Verbose] > │     let v4 : float = 1.0                                                     │

00:07:49 #22933 [Verbose] > │     let v5 : float = 0.0                                                     │

00:07:49 #22934 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:49 #22935 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:49 #22936 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:49 #22937 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:49 #22938 [Verbose] > │     let v10 : float = 0.0                                                    │

00:07:49 #22939 [Verbose] > │     let v11 : float = 0.0                                                    │

00:07:49 #22940 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │

00:07:49 #22941 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │

00:07:49 #22942 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │

00:07:49 #22943 [Verbose] > │     let v21 : bool = v17 <= 31557600.0                                       │

00:07:49 #22944 [Verbose] > │     if v21 then                                                              │

00:07:49 #22945 [Verbose] > │         let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │

00:07:49 #22946 [Verbose] > │ v1)                                                                          │

00:07:49 #22947 [Verbose] > │         let v23 : int32 = v2 + 1                                             │

00:07:49 #22948 [Verbose] > │         method7(v0, v22, v23)                                                │

00:07:49 #22949 [Verbose] > │     else                                                                     │

00:07:49 #22950 [Verbose] > │         let v25 : UH0 = UH0_0                                                │

00:07:49 #22951 [Verbose] > │         method3(v1, v25)                                                     │

00:07:49 #22952 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:49 #22953 [Verbose] > │     match v0 with                                                            │

00:07:49 #22954 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:49 #22955 [Verbose] > │         let v12 : UH1 = method8(v11, v1)                                     │

00:07:49 #22956 [Verbose] > │         let v13 : float = v7 / 31557600.0                                    │

00:07:49 #22957 [Verbose] > │         let v14 : float = v8 / 299792458.0                                   │

00:07:49 #22958 [Verbose] > │         UH1_1(v13, v14, v12)                                                 │

00:07:49 #22959 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:49 #22960 [Verbose] > │         v1                                                                   │

00:07:49 #22961 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 =                                │

00:07:49 #22962 [Verbose] > │     match v0 with                                                            │

00:07:49 #22963 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:07:49 #22964 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:07:49 #22965 [Verbose] > │         method10(v3, v4)                                                     │

00:07:49 #22966 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:49 #22967 [Verbose] > │         v1                                                                   │

00:07:49 #22968 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 =               │

00:07:49 #22969 [Verbose] > │     match v1 with                                                            │

00:07:49 #22970 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:07:49 #22971 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:07:49 #22972 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:07:49 #22973 [Verbose] > │         method11(v0, v4, v5)                                                 │

00:07:49 #22974 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:49 #22975 [Verbose] > │         v2                                                                   │

00:07:49 #22976 [Verbose] > │ and method9 (v0 : UH2) : (float []) =                                        │

00:07:49 #22977 [Verbose] > │     let v1 : int32 = 0                                                       │

00:07:49 #22978 [Verbose] > │     let v2 : int32 = method10(v0, v1)                                        │

00:07:49 #22979 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │

00:07:49 #22980 [Verbose] > │     let v4 : int32 = 0                                                       │

00:07:49 #22981 [Verbose] > │     let v5 : int32 = method11(v3, v0, v4)                                    │

00:07:49 #22982 [Verbose] > │     v3                                                                       │

00:07:49 #22983 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:49 #22984 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:49 #22985 [Verbose] > │     let v0 : ((struct (float * float * float * float * float * float * float │

00:07:49 #22986 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:49 #22987 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float *  │

00:07:49 #22988 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │

00:07:49 #22989 [Verbose] > │ float * float * float * float * float))) = closure0()                        │

00:07:49 #22990 [Verbose] > │     let v1 : (struct (float * float * float * float * float * float * float  │

00:07:49 #22991 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:49 #22992 [Verbose] > │ float * float * float)) = closure2()                                         │

00:07:49 #22993 [Verbose] > │     let v2 : (struct (float * float * float * float * float * float * float  │

00:07:49 #22994 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:49 #22995 [Verbose] > │ float * float * float)) = v0 v1                                              │

00:07:49 #22996 [Verbose] > │     let v3 : (struct (float * float * float * float * float * float * float  │

00:07:49 #22997 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:49 #22998 [Verbose] > │ float * float * float)) = closure3()                                         │

00:07:49 #22999 [Verbose] > │     let v4 : (struct (float * float * float * float * float * float * float  │

00:07:49 #23000 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:49 #23001 [Verbose] > │ float * float * float)) = v0 v3                                              │

00:07:49 #23002 [Verbose] > │     let v5 : UH0 = UH0_0                                                     │

00:07:49 #23003 [Verbose] > │     let v6 : int32 = 0                                                       │

00:07:49 #23004 [Verbose] > │     let v7 : UH0 = method1(v2, v5, v6)                                       │

00:07:49 #23005 [Verbose] > │     let v8 : UH1 = UH1_0                                                     │

00:07:49 #23006 [Verbose] > │     let v9 : UH1 = method4(v7, v8)                                           │

00:07:49 #23007 [Verbose] > │     let v10 : UH2 = UH2_0                                                    │

00:07:49 #23008 [Verbose] > │     let v11 : UH2 = UH2_0                                                    │

00:07:49 #23009 [Verbose] > │     let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11)                │

00:07:49 #23010 [Verbose] > │     let v14 : UH2 = UH2_0                                                    │

00:07:49 #23011 [Verbose] > │     let v15 : UH2 = method6(v12, v14)                                        │

00:07:49 #23012 [Verbose] > │     let v16 : UH2 = UH2_0                                                    │

00:07:49 #23013 [Verbose] > │     let v17 : UH2 = method6(v13, v16)                                        │

00:07:49 #23014 [Verbose] > │     let v18 : UH0 = UH0_0                                                    │

00:07:49 #23015 [Verbose] > │     let v19 : int32 = 0                                                      │

00:07:49 #23016 [Verbose] > │     let v20 : UH0 = method7(v4, v18, v19)                                    │

00:07:49 #23017 [Verbose] > │     let v21 : UH1 = UH1_0                                                    │

00:07:49 #23018 [Verbose] > │     let v22 : UH1 = method8(v20, v21)                                        │

00:07:49 #23019 [Verbose] > │     let v23 : UH2 = UH2_0                                                    │

00:07:49 #23020 [Verbose] > │     let v24 : UH2 = UH2_0                                                    │

00:07:49 #23021 [Verbose] > │     let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24)               │

00:07:49 #23022 [Verbose] > │     let v27 : UH2 = UH2_0                                                    │

00:07:49 #23023 [Verbose] > │     let v28 : UH2 = method6(v25, v27)                                        │

00:07:49 #23024 [Verbose] > │     let v29 : UH2 = UH2_0                                                    │

00:07:49 #23025 [Verbose] > │     let v30 : UH2 = method6(v26, v29)                                        │

00:07:49 #23026 [Verbose] > │     let v31 : (float []) = method9(v15)                                      │

00:07:49 #23027 [Verbose] > │     let v32 : (float []) = method9(v17)                                      │

00:07:49 #23028 [Verbose] > │     let v33 : (float []) = method9(v30)                                      │

00:07:49 #23029 [Verbose] > │     let v34 : string = "newtonian"                                           │

00:07:49 #23030 [Verbose] > │     let v35 : string = "relativistic"                                        │

00:07:49 #23031 [Verbose] > │     let v36 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:49 #23032 [Verbose] > │ (v34, v31, v32); struct (v35, v31, v33)|]                                    │

00:07:49 #23033 [Verbose] > │     let v37 : string = "response to a constant force"                        │

00:07:49 #23034 [Verbose] > │     let v38 : string = "time (years)"                                        │

00:07:49 #23035 [Verbose] > │     let v39 : string = "velocity (multiples of c)"                           │

00:07:49 #23036 [Verbose] > │     struct (v37, v38, v39, v36)                                              │

00:07:49 #23037 [Verbose] > │ method0()                                                                    │

00:07:49 #23038 [Verbose] > │                                                                              │

00:07:49 #23039 [Verbose] > │                                                                              │

00:07:49 #23040 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:49 #23041 [Verbose] >

00:07:49 #23042 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:49 #23043 [Verbose] > inl uniform_lorentz_force v_e v_b (st : particle_state) =

00:07:49 #23044 [Verbose] >     st.charge *^ (v_e ^+^ st.velocity >< v_b)

00:07:49 #23045 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2176-7604-73d338611edb\main.spi

00:07:49 #23046 [Verbose] >

00:07:49 #23047 [Verbose] > ╭─[ 287.49ms - stdout ]────────────────────────────────────────────────────────╮

00:07:49 #23048 [Verbose] > │ ()                                                                           │

00:07:49 #23049 [Verbose] > │                                                                              │

00:07:49 #23050 [Verbose] > │                                                                              │

00:07:49 #23051 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:49 #23052 [Verbose] >

00:07:49 #23053 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:49 #23054 [Verbose] > // // test

00:07:49 #23055 [Verbose] >

00:07:49 #23056 [Verbose] > inl c : f64 = 299792458

00:07:49 #23057 [Verbose] > inl ~method = runge_kutta_4 0.000000001

00:07:49 #23058 [Verbose] > inl forces = [[ uniform_lorentz_force (zero_vec ()) (k_hat ()) ]]

00:07:49 #23059 [Verbose] > inl (particle_state default_particle_state') = default_particle_state ()

00:07:49 #23060 [Verbose] > inl initial_state =

00:07:49 #23061 [Verbose] >     particle_state { default_particle_state' with

00:07:49 #23062 [Verbose] >         mass = 0.000000000000000000000000001672621898

00:07:49 #23063 [Verbose] >         charge = 0.0000000000000000001602176621

00:07:49 #23064 [Verbose] >         velocity = 0.8 *^ (c *^ j_hat ())

00:07:49 #23065 [Verbose] >     }

00:07:49 #23066 [Verbose] >

00:07:49 #23067 [Verbose] > inl newton_states = solver_ method (newton_second_ps forces) initial_state

00:07:49 #23068 [Verbose] > inl relativity_states = solver_ method (relativity_ps forces) initial_state

00:07:49 #23069 [Verbose] >

00:07:49 #23070 [Verbose] > inl newton_x, newton_y =

00:07:49 #23071 [Verbose] >     newton_states

00:07:49 #23072 [Verbose] >     >> Some

00:07:49 #23073 [Verbose] >     |> seq.take_while_ (fun (particle_state st) i => i < 100i32)

00:07:49 #23074 [Verbose] >     |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)

00:07:49 #23075 [Verbose] >     |> listm'.unzip

00:07:49 #23076 [Verbose] >

00:07:49 #23077 [Verbose] > inl relativity_x, relativity_y =

00:07:49 #23078 [Verbose] >     relativity_states

00:07:49 #23079 [Verbose] >     >> Some

00:07:49 #23080 [Verbose] >     |> seq.take_while_ (fun (particle_state st) i => i < 165i32)

00:07:49 #23081 [Verbose] >     |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y)

00:07:49 #23082 [Verbose] >     |> listm'.unzip

00:07:49 #23083 [Verbose] >

00:07:49 #23084 [Verbose] > inl newton_x : a i32 _ = newton_x |> listm.toArray

00:07:49 #23085 [Verbose] > inl newton_y : a i32 _ = newton_y |> listm.toArray

00:07:49 #23086 [Verbose] >

00:07:49 #23087 [Verbose] > inl relativity_x : a i32 _ = relativity_x |> listm.toArray

00:07:49 #23088 [Verbose] > inl relativity_y : a i32 _ = relativity_y |> listm.toArray

00:07:49 #23089 [Verbose] >

00:07:49 #23090 [Verbose] > "proton in a 1-t magnetic field",

00:07:49 #23091 [Verbose] > "x (m)",

00:07:49 #23092 [Verbose] > "y (m)",

00:07:49 #23093 [Verbose] > ;[[

00:07:49 #23094 [Verbose] >     "newtonian", newton_x, newton_y

00:07:49 #23095 [Verbose] >     "relativistic", relativity_x, relativity_y

00:07:49 #23096 [Verbose] > ]]

00:07:49 #23097 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2205-0525-0a71af35de20\main.spi

00:07:50 #23098 [Verbose] >

00:07:50 #23099 [Verbose] > ╭─[ 646.55ms - return value ]──────────────────────────────────────────────────╮

00:07:50 #23100 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:50 #23101 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:50 #23102 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:50 #23103 [Verbose] > │ stroke="none"/>                                                              │

00:07:50 #23104 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:50 #23105 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:50 #23106 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:50 #23107 [Verbose] > │ proton in a 1-t magnetic field                                               │

00:07:50 #23108 [Verbose] > │ </text>                                                                      │

00:07:50 #23109 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="58" y1="424" x2="58" │

00:07:50 #23110 [Verbose] > │ y2="75"/>                                                                    │

00:07:50 #23111 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:50 #23112 [Verbose] > │ y2="75"/>                                                                    │

00:07:50 #23113 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="81" y1="424" x2="81" │

00:07:50 #23114 [Verbose] > │ y2="75"/>                                                                    │

00:07:50 #23115 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │

00:07:50 #23116 [Verbose] > │ y2="75"/>                                                                    │

00:07:50 #23117 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x...                     │

00:07:50 #23118 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:50 #23119 [Verbose] >

00:07:50 #23120 [Verbose] > ╭─[ 658.62ms - stdout ]────────────────────────────────────────────────────────╮

00:07:50 #23121 [Verbose] > │ type UH0 =                                                                   │

00:07:50 #23122 [Verbose] > │     | UH0_0                                                                  │

00:07:50 #23123 [Verbose] > │     | UH0_1 of float * float * float * float * float * float * float * float │

00:07:50 #23124 [Verbose] > │ * float * UH0                                                                │

00:07:50 #23125 [Verbose] > │ and UH1 =                                                                    │

00:07:50 #23126 [Verbose] > │     | UH1_0                                                                  │

00:07:50 #23127 [Verbose] > │     | UH1_1 of float * float * UH1                                           │

00:07:50 #23128 [Verbose] > │ and UH2 =                                                                    │

00:07:50 #23129 [Verbose] > │     | UH2_0                                                                  │

00:07:50 #23130 [Verbose] > │     | UH2_1 of float * UH2                                                   │

00:07:50 #23131 [Verbose] > │ let rec closure1 (v0 : (struct (float * float * float * float * float *      │

00:07:50 #23132 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │

00:07:50 #23133 [Verbose] > │ float * float * float * float * float))) struct (v1 : float, v2 : float, v3  │

00:07:50 #23134 [Verbose] > │ : float, v4 : float, v5 : float, v6 : float, v7 : float, v8 : float, v9 :    │

00:07:50 #23135 [Verbose] > │ float) : struct (float * float * float * float * float * float * float *     │

00:07:50 #23136 [Verbose] > │ float * float) =                                                             │

00:07:50 #23137 [Verbose] > │     let struct (v10 : float, v11 : float, v12 : float, v13 : float, v14 :    │

00:07:50 #23138 [Verbose] > │ float, v15 : float, v16 : float, v17 : float, v18 : float) = v0 struct (v1,  │

00:07:50 #23139 [Verbose] > │ v2, v3, v4, v5, v6, v7, v8, v9)                                              │

00:07:50 #23140 [Verbose] > │     let v19 : float = v15 * 5E-10                                            │

00:07:50 #23141 [Verbose] > │     let v20 : float = v6 + v19                                               │

00:07:50 #23142 [Verbose] > │     let v21 : float = 5E-10 * v12                                            │

00:07:50 #23143 [Verbose] > │     let v22 : float = 5E-10 * v13                                            │

00:07:50 #23144 [Verbose] > │     let v23 : float = 5E-10 * v14                                            │

00:07:50 #23145 [Verbose] > │     let v24 : float = v3 + v21                                               │

00:07:50 #23146 [Verbose] > │     let v25 : float = v4 + v22                                               │

00:07:50 #23147 [Verbose] > │     let v26 : float = v5 + v23                                               │

00:07:50 #23148 [Verbose] > │     let v27 : float = 5E-10 * v16                                            │

00:07:50 #23149 [Verbose] > │     let v28 : float = 5E-10 * v17                                            │

00:07:50 #23150 [Verbose] > │     let v29 : float = 5E-10 * v18                                            │

00:07:50 #23151 [Verbose] > │     let v30 : float = v7 + v27                                               │

00:07:50 #23152 [Verbose] > │     let v31 : float = v8 + v28                                               │

00:07:50 #23153 [Verbose] > │     let v32 : float = v9 + v29                                               │

00:07:50 #23154 [Verbose] > │     let struct (v33 : float, v34 : float, v35 : float, v36 : float, v37 :    │

00:07:50 #23155 [Verbose] > │ float, v38 : float, v39 : float, v40 : float, v41 : float) = v0 struct (v1,  │

00:07:50 #23156 [Verbose] > │ v2, v24, v25, v26, v20, v30, v31, v32)                                       │

00:07:50 #23157 [Verbose] > │     let v42 : float = v38 * 5E-10                                            │

00:07:50 #23158 [Verbose] > │     let v43 : float = v6 + v42                                               │

00:07:50 #23159 [Verbose] > │     let v44 : float = 5E-10 * v35                                            │

00:07:50 #23160 [Verbose] > │     let v45 : float = 5E-10 * v36                                            │

00:07:50 #23161 [Verbose] > │     let v46 : float = 5E-10 * v37                                            │

00:07:50 #23162 [Verbose] > │     let v47 : float = v3 + v44                                               │

00:07:50 #23163 [Verbose] > │     let v48 : float = v4 + v45                                               │

00:07:50 #23164 [Verbose] > │     let v49 : float = v5 + v46                                               │

00:07:50 #23165 [Verbose] > │     let v50 : float = 5E-10 * v39                                            │

00:07:50 #23166 [Verbose] > │     let v51 : float = 5E-10 * v40                                            │

00:07:50 #23167 [Verbose] > │     let v52 : float = 5E-10 * v41                                            │

00:07:50 #23168 [Verbose] > │     let v53 : float = v7 + v50                                               │

00:07:50 #23169 [Verbose] > │     let v54 : float = v8 + v51                                               │

00:07:50 #23170 [Verbose] > │     let v55 : float = v9 + v52                                               │

00:07:50 #23171 [Verbose] > │     let struct (v56 : float, v57 : float, v58 : float, v59 : float, v60 :    │

00:07:50 #23172 [Verbose] > │ float, v61 : float, v62 : float, v63 : float, v64 : float) = v0 struct (v1,  │

00:07:50 #23173 [Verbose] > │ v2, v47, v48, v49, v43, v53, v54, v55)                                       │

00:07:50 #23174 [Verbose] > │     let v65 : float = v61 * 1E-09                                            │

00:07:50 #23175 [Verbose] > │     let v66 : float = v6 + v65                                               │

00:07:50 #23176 [Verbose] > │     let v67 : float = 1E-09 * v58                                            │

00:07:50 #23177 [Verbose] > │     let v68 : float = 1E-09 * v59                                            │

00:07:50 #23178 [Verbose] > │     let v69 : float = 1E-09 * v60                                            │

00:07:50 #23179 [Verbose] > │     let v70 : float = v3 + v67                                               │

00:07:50 #23180 [Verbose] > │     let v71 : float = v4 + v68                                               │

00:07:50 #23181 [Verbose] > │     let v72 : float = v5 + v69                                               │

00:07:50 #23182 [Verbose] > │     let v73 : float = 1E-09 * v62                                            │

00:07:50 #23183 [Verbose] > │     let v74 : float = 1E-09 * v63                                            │

00:07:50 #23184 [Verbose] > │     let v75 : float = 1E-09 * v64                                            │

00:07:50 #23185 [Verbose] > │     let v76 : float = v7 + v73                                               │

00:07:50 #23186 [Verbose] > │     let v77 : float = v8 + v74                                               │

00:07:50 #23187 [Verbose] > │     let v78 : float = v9 + v75                                               │

00:07:50 #23188 [Verbose] > │     let struct (v79 : float, v80 : float, v81 : float, v82 : float, v83 :    │

00:07:50 #23189 [Verbose] > │ float, v84 : float, v85 : float, v86 : float, v87 : float) = v0 struct (v1,  │

00:07:50 #23190 [Verbose] > │ v2, v70, v71, v72, v66, v76, v77, v78)                                       │

00:07:50 #23191 [Verbose] > │     let v88 : float = v10 + v33                                              │

00:07:50 #23192 [Verbose] > │     let v89 : float = v11 + v34                                              │

00:07:50 #23193 [Verbose] > │     let v90 : float = v15 + v38                                              │

00:07:50 #23194 [Verbose] > │     let v91 : float = v12 + v35                                              │

00:07:50 #23195 [Verbose] > │     let v92 : float = v13 + v36                                              │

00:07:50 #23196 [Verbose] > │     let v93 : float = v14 + v37                                              │

00:07:50 #23197 [Verbose] > │     let v94 : float = v16 + v39                                              │

00:07:50 #23198 [Verbose] > │     let v95 : float = v17 + v40                                              │

00:07:50 #23199 [Verbose] > │     let v96 : float = v18 + v41                                              │

00:07:50 #23200 [Verbose] > │     let v97 : float = v88 + v33                                              │

00:07:50 #23201 [Verbose] > │     let v98 : float = v89 + v34                                              │

00:07:50 #23202 [Verbose] > │     let v99 : float = v90 + v38                                              │

00:07:50 #23203 [Verbose] > │     let v100 : float = v91 + v35                                             │

00:07:50 #23204 [Verbose] > │     let v101 : float = v92 + v36                                             │

00:07:50 #23205 [Verbose] > │     let v102 : float = v93 + v37                                             │

00:07:50 #23206 [Verbose] > │     let v103 : float = v94 + v39                                             │

00:07:50 #23207 [Verbose] > │     let v104 : float = v95 + v40                                             │

00:07:50 #23208 [Verbose] > │     let v105 : float = v96 + v41                                             │

00:07:50 #23209 [Verbose] > │     let v106 : float = v97 + v56                                             │

00:07:50 #23210 [Verbose] > │     let v107 : float = v98 + v57                                             │

00:07:50 #23211 [Verbose] > │     let v108 : float = v99 + v61                                             │

00:07:50 #23212 [Verbose] > │     let v109 : float = v100 + v58                                            │

00:07:50 #23213 [Verbose] > │     let v110 : float = v101 + v59                                            │

00:07:50 #23214 [Verbose] > │     let v111 : float = v102 + v60                                            │

00:07:50 #23215 [Verbose] > │     let v112 : float = v103 + v62                                            │

00:07:50 #23216 [Verbose] > │     let v113 : float = v104 + v63                                            │

00:07:50 #23217 [Verbose] > │     let v114 : float = v105 + v64                                            │

00:07:50 #23218 [Verbose] > │     let v115 : float = v106 + v56                                            │

00:07:50 #23219 [Verbose] > │     let v116 : float = v107 + v57                                            │

00:07:50 #23220 [Verbose] > │     let v117 : float = v108 + v61                                            │

00:07:50 #23221 [Verbose] > │     let v118 : float = v109 + v58                                            │

00:07:50 #23222 [Verbose] > │     let v119 : float = v110 + v59                                            │

00:07:50 #23223 [Verbose] > │     let v120 : float = v111 + v60                                            │

00:07:50 #23224 [Verbose] > │     let v121 : float = v112 + v62                                            │

00:07:50 #23225 [Verbose] > │     let v122 : float = v113 + v63                                            │

00:07:50 #23226 [Verbose] > │     let v123 : float = v114 + v64                                            │

00:07:50 #23227 [Verbose] > │     let v124 : float = v115 + v79                                            │

00:07:50 #23228 [Verbose] > │     let v125 : float = v116 + v80                                            │

00:07:50 #23229 [Verbose] > │     let v126 : float = v117 + v84                                            │

00:07:50 #23230 [Verbose] > │     let v127 : float = v118 + v81                                            │

00:07:50 #23231 [Verbose] > │     let v128 : float = v119 + v82                                            │

00:07:50 #23232 [Verbose] > │     let v129 : float = v120 + v83                                            │

00:07:50 #23233 [Verbose] > │     let v130 : float = v121 + v85                                            │

00:07:50 #23234 [Verbose] > │     let v131 : float = v122 + v86                                            │

00:07:50 #23235 [Verbose] > │     let v132 : float = v123 + v87                                            │

00:07:50 #23236 [Verbose] > │     let v133 : float = v126 * 1.6666666666666669E-10                         │

00:07:50 #23237 [Verbose] > │     let v134 : float = v6 + v133                                             │

00:07:50 #23238 [Verbose] > │     let v135 : float = 1.6666666666666669E-10 * v127                         │

00:07:50 #23239 [Verbose] > │     let v136 : float = 1.6666666666666669E-10 * v128                         │

00:07:50 #23240 [Verbose] > │     let v137 : float = 1.6666666666666669E-10 * v129                         │

00:07:50 #23241 [Verbose] > │     let v138 : float = v3 + v135                                             │

00:07:50 #23242 [Verbose] > │     let v139 : float = v4 + v136                                             │

00:07:50 #23243 [Verbose] > │     let v140 : float = v5 + v137                                             │

00:07:50 #23244 [Verbose] > │     let v141 : float = 1.6666666666666669E-10 * v130                         │

00:07:50 #23245 [Verbose] > │     let v142 : float = 1.6666666666666669E-10 * v131                         │

00:07:50 #23246 [Verbose] > │     let v143 : float = 1.6666666666666669E-10 * v132                         │

00:07:50 #23247 [Verbose] > │     let v144 : float = v7 + v141                                             │

00:07:50 #23248 [Verbose] > │     let v145 : float = v8 + v142                                             │

00:07:50 #23249 [Verbose] > │     let v146 : float = v9 + v143                                             │

00:07:50 #23250 [Verbose] > │     struct (v1, v2, v138, v139, v140, v134, v144, v145, v146)                │

00:07:50 #23251 [Verbose] > │ and closure0 () (v0 : (struct (float * float * float * float * float * float │

00:07:50 #23252 [Verbose] > │ * float * float * float) -> struct (float * float * float * float * float *  │

00:07:50 #23253 [Verbose] > │ float * float * float * float))) : (struct (float * float * float * float *  │

00:07:50 #23254 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float *    │

00:07:50 #23255 [Verbose] > │ float * float * float * float * float * float)) =                            │

00:07:50 #23256 [Verbose] > │     closure1(v0)                                                             │

00:07:50 #23257 [Verbose] > │ and closure2 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │

00:07:50 #23258 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │

00:07:50 #23259 [Verbose] > │ float * float * float * float * float * float * float * float) =             │

00:07:50 #23260 [Verbose] > │     let v9 : float = v8 * 0.0                                                │

00:07:50 #23261 [Verbose] > │     let v10 : float = v7 - v9                                                │

00:07:50 #23262 [Verbose] > │     let v11 : float = v9 - v6                                                │

00:07:50 #23263 [Verbose] > │     let v12 : float = v6 * 0.0                                               │

00:07:50 #23264 [Verbose] > │     let v13 : float = v7 * 0.0                                               │

00:07:50 #23265 [Verbose] > │     let v14 : float = v12 - v13                                              │

00:07:50 #23266 [Verbose] > │     let v15 : float = v0 * v10                                               │

00:07:50 #23267 [Verbose] > │     let v16 : float = v0 * v11                                               │

00:07:50 #23268 [Verbose] > │     let v17 : float = v0 * v14                                               │

00:07:50 #23269 [Verbose] > │     let v18 : float = v15 / v1                                               │

00:07:50 #23270 [Verbose] > │     let v19 : float = v16 / v1                                               │

00:07:50 #23271 [Verbose] > │     let v20 : float = v17 / v1                                               │

00:07:50 #23272 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v18, v19, v20)                        │

00:07:50 #23273 [Verbose] > │ and closure3 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │

00:07:50 #23274 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │

00:07:50 #23275 [Verbose] > │ float * float * float * float * float * float * float * float) =             │

00:07:50 #23276 [Verbose] > │     let v9 : float = v8 * 0.0                                                │

00:07:50 #23277 [Verbose] > │     let v10 : float = v7 - v9                                                │

00:07:50 #23278 [Verbose] > │     let v11 : float = v9 - v6                                                │

00:07:50 #23279 [Verbose] > │     let v12 : float = v6 * 0.0                                               │

00:07:50 #23280 [Verbose] > │     let v13 : float = v7 * 0.0                                               │

00:07:50 #23281 [Verbose] > │     let v14 : float = v12 - v13                                              │

00:07:50 #23282 [Verbose] > │     let v15 : float = v0 * v10                                               │

00:07:50 #23283 [Verbose] > │     let v16 : float = v0 * v11                                               │

00:07:50 #23284 [Verbose] > │     let v17 : float = v0 * v14                                               │

00:07:50 #23285 [Verbose] > │     let v18 : float = v6 / 299792458.0                                       │

00:07:50 #23286 [Verbose] > │     let v19 : float = v7 / 299792458.0                                       │

00:07:50 #23287 [Verbose] > │     let v20 : float = v8 / 299792458.0                                       │

00:07:50 #23288 [Verbose] > │     let v21 : float = v18 * v18                                              │

00:07:50 #23289 [Verbose] > │     let v22 : float = v19 * v19                                              │

00:07:50 #23290 [Verbose] > │     let v23 : float = v21 + v22                                              │

00:07:50 #23291 [Verbose] > │     let v24 : float = v20 * v20                                              │

00:07:50 #23292 [Verbose] > │     let v25 : float = v23 + v24                                              │

00:07:50 #23293 [Verbose] > │     let v26 : float = 1.0 - v25                                              │

00:07:50 #23294 [Verbose] > │     let v27 : float = sqrt v26                                               │

00:07:50 #23295 [Verbose] > │     let v28 : float = v15 * v18                                              │

00:07:50 #23296 [Verbose] > │     let v29 : float = v16 * v19                                              │

00:07:50 #23297 [Verbose] > │     let v30 : float = v28 + v29                                              │

00:07:50 #23298 [Verbose] > │     let v31 : float = v17 * v20                                              │

00:07:50 #23299 [Verbose] > │     let v32 : float = v30 + v31                                              │

00:07:50 #23300 [Verbose] > │     let v33 : float = v32 * v18                                              │

00:07:50 #23301 [Verbose] > │     let v34 : float = v32 * v19                                              │

00:07:50 #23302 [Verbose] > │     let v35 : float = v32 * v20                                              │

00:07:50 #23303 [Verbose] > │     let v36 : float = -1.0 * v33                                             │

00:07:50 #23304 [Verbose] > │     let v37 : float = -1.0 * v34                                             │

00:07:50 #23305 [Verbose] > │     let v38 : float = -1.0 * v35                                             │

00:07:50 #23306 [Verbose] > │     let v39 : float = v15 + v36                                              │

00:07:50 #23307 [Verbose] > │     let v40 : float = v16 + v37                                              │

00:07:50 #23308 [Verbose] > │     let v41 : float = v17 + v38                                              │

00:07:50 #23309 [Verbose] > │     let v42 : float = v27 * v39                                              │

00:07:50 #23310 [Verbose] > │     let v43 : float = v27 * v40                                              │

00:07:50 #23311 [Verbose] > │     let v44 : float = v27 * v41                                              │

00:07:50 #23312 [Verbose] > │     let v45 : float = v42 / v1                                               │

00:07:50 #23313 [Verbose] > │     let v46 : float = v43 / v1                                               │

00:07:50 #23314 [Verbose] > │     let v47 : float = v44 / v1                                               │

00:07:50 #23315 [Verbose] > │     struct (0.0, 0.0, v6, v7, v8, 1.0, v45, v46, v47)                        │

00:07:50 #23316 [Verbose] > │ and method2 (v0 : (struct (float * float * float * float * float * float *   │

00:07:50 #23317 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │

00:07:50 #23318 [Verbose] > │ float * float * float * float)), v1 : float, v2 : float, v3 : float, v4 :    │

00:07:50 #23319 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float, v9 : float, v10 :     │

00:07:50 #23320 [Verbose] > │ int32) : struct (float * float * float * float * float * float * float *     │

00:07:50 #23321 [Verbose] > │ float * float) =                                                             │

00:07:50 #23322 [Verbose] > │     let v11 : bool = v10 <= 0                                                │

00:07:50 #23323 [Verbose] > │     if v11 then                                                              │

00:07:50 #23324 [Verbose] > │         struct (v1, v2, v3, v4, v5, v6, v7, v8, v9)                          │

00:07:50 #23325 [Verbose] > │     else                                                                     │

00:07:50 #23326 [Verbose] > │         let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16  │

00:07:50 #23327 [Verbose] > │ : float, v17 : float, v18 : float, v19 : float, v20 : float) = v0 struct     │

00:07:50 #23328 [Verbose] > │ (v1, v2, v3, v4, v5, v6, v7, v8, v9)                                         │

00:07:50 #23329 [Verbose] > │         let v21 : int32 = v10 - 1                                            │

00:07:50 #23330 [Verbose] > │         method2(v0, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)        │

00:07:50 #23331 [Verbose] > │ and method3 (v0 : UH0, v1 : UH0) : UH0 =                                     │

00:07:50 #23332 [Verbose] > │     match v0 with                                                            │

00:07:50 #23333 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:50 #23334 [Verbose] > │         let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │

00:07:50 #23335 [Verbose] > │         method3(v11, v12)                                                    │

00:07:50 #23336 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:50 #23337 [Verbose] > │         v1                                                                   │

00:07:50 #23338 [Verbose] > │ and method1 (v0 : (struct (float * float * float * float * float * float *   │

00:07:50 #23339 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │

00:07:50 #23340 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │

00:07:50 #23341 [Verbose] > │     let v3 : float = 1.602176621E-19                                         │

00:07:50 #23342 [Verbose] > │     let v4 : float = 1.672621898E-27                                         │

00:07:50 #23343 [Verbose] > │     let v5 : float = 0.0                                                     │

00:07:50 #23344 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:50 #23345 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:50 #23346 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:50 #23347 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:50 #23348 [Verbose] > │     let v10 : float = 239833966.4                                            │

00:07:50 #23349 [Verbose] > │     let v11 : float = 0.0                                                    │

00:07:50 #23350 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │

00:07:50 #23351 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │

00:07:50 #23352 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │

00:07:50 #23353 [Verbose] > │     let v21 : bool = v2 < 100                                                │

00:07:50 #23354 [Verbose] > │     if v21 then                                                              │

00:07:50 #23355 [Verbose] > │         let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │

00:07:50 #23356 [Verbose] > │ v1)                                                                          │

00:07:50 #23357 [Verbose] > │         let v23 : int32 = v2 + 1                                             │

00:07:50 #23358 [Verbose] > │         method1(v0, v22, v23)                                                │

00:07:50 #23359 [Verbose] > │     else                                                                     │

00:07:50 #23360 [Verbose] > │         let v25 : UH0 = UH0_0                                                │

00:07:50 #23361 [Verbose] > │         method3(v1, v25)                                                     │

00:07:50 #23362 [Verbose] > │ and method4 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:50 #23363 [Verbose] > │     match v0 with                                                            │

00:07:50 #23364 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:50 #23365 [Verbose] > │         let v12 : UH1 = method4(v11, v1)                                     │

00:07:50 #23366 [Verbose] > │         UH1_1(v4, v5, v12)                                                   │

00:07:50 #23367 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:50 #23368 [Verbose] > │         v1                                                                   │

00:07:50 #23369 [Verbose] > │ and method5 (v0 : UH1, v1 : UH2, v2 : UH2) : struct (UH2 * UH2) =            │

00:07:50 #23370 [Verbose] > │     match v0 with                                                            │

00:07:50 #23371 [Verbose] > │     | UH1_1(v3, v4, v5) -> (* Cons *)                                        │

00:07:50 #23372 [Verbose] > │         let v6 : UH2 = UH2_1(v3, v1)                                         │

00:07:50 #23373 [Verbose] > │         let v7 : UH2 = UH2_1(v4, v2)                                         │

00:07:50 #23374 [Verbose] > │         method5(v5, v6, v7)                                                  │

00:07:50 #23375 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:50 #23376 [Verbose] > │         struct (v1, v2)                                                      │

00:07:50 #23377 [Verbose] > │ and method6 (v0 : UH2, v1 : UH2) : UH2 =                                     │

00:07:50 #23378 [Verbose] > │     match v0 with                                                            │

00:07:50 #23379 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:07:50 #23380 [Verbose] > │         let v4 : UH2 = UH2_1(v2, v1)                                         │

00:07:50 #23381 [Verbose] > │         method6(v3, v4)                                                      │

00:07:50 #23382 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:50 #23383 [Verbose] > │         v1                                                                   │

00:07:50 #23384 [Verbose] > │ and method7 (v0 : (struct (float * float * float * float * float * float *   │

00:07:50 #23385 [Verbose] > │ float * float * float) -> struct (float * float * float * float * float *    │

00:07:50 #23386 [Verbose] > │ float * float * float * float)), v1 : UH0, v2 : int32) : UH0 =               │

00:07:50 #23387 [Verbose] > │     let v3 : float = 1.602176621E-19                                         │

00:07:50 #23388 [Verbose] > │     let v4 : float = 1.672621898E-27                                         │

00:07:50 #23389 [Verbose] > │     let v5 : float = 0.0                                                     │

00:07:50 #23390 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:50 #23391 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:50 #23392 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:50 #23393 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:50 #23394 [Verbose] > │     let v10 : float = 239833966.4                                            │

00:07:50 #23395 [Verbose] > │     let v11 : float = 0.0                                                    │

00:07:50 #23396 [Verbose] > │     let struct (v12 : float, v13 : float, v14 : float, v15 : float, v16 :    │

00:07:50 #23397 [Verbose] > │ float, v17 : float, v18 : float, v19 : float, v20 : float) = method2(v0, v3, │

00:07:50 #23398 [Verbose] > │ v4, v5, v6, v7, v8, v9, v10, v11, v2)                                        │

00:07:50 #23399 [Verbose] > │     let v21 : bool = v2 < 165                                                │

00:07:50 #23400 [Verbose] > │     if v21 then                                                              │

00:07:50 #23401 [Verbose] > │         let v22 : UH0 = UH0_1(v12, v13, v14, v15, v16, v17, v18, v19, v20,   │

00:07:50 #23402 [Verbose] > │ v1)                                                                          │

00:07:50 #23403 [Verbose] > │         let v23 : int32 = v2 + 1                                             │

00:07:50 #23404 [Verbose] > │         method7(v0, v22, v23)                                                │

00:07:50 #23405 [Verbose] > │     else                                                                     │

00:07:50 #23406 [Verbose] > │         let v25 : UH0 = UH0_0                                                │

00:07:50 #23407 [Verbose] > │         method3(v1, v25)                                                     │

00:07:50 #23408 [Verbose] > │ and method8 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:50 #23409 [Verbose] > │     match v0 with                                                            │

00:07:50 #23410 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:50 #23411 [Verbose] > │         let v12 : UH1 = method8(v11, v1)                                     │

00:07:50 #23412 [Verbose] > │         UH1_1(v4, v5, v12)                                                   │

00:07:50 #23413 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:50 #23414 [Verbose] > │         v1                                                                   │

00:07:50 #23415 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 =                                │

00:07:50 #23416 [Verbose] > │     match v0 with                                                            │

00:07:50 #23417 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:07:50 #23418 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:07:50 #23419 [Verbose] > │         method10(v3, v4)                                                     │

00:07:50 #23420 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:50 #23421 [Verbose] > │         v1                                                                   │

00:07:50 #23422 [Verbose] > │ and method11 (v0 : (float []), v1 : UH2, v2 : int32) : int32 =               │

00:07:50 #23423 [Verbose] > │     match v1 with                                                            │

00:07:50 #23424 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:07:50 #23425 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:07:50 #23426 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:07:50 #23427 [Verbose] > │         method11(v0, v4, v5)                                                 │

00:07:50 #23428 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:50 #23429 [Verbose] > │         v2                                                                   │

00:07:50 #23430 [Verbose] > │ and method9 (v0 : UH2) : (float []) =                                        │

00:07:50 #23431 [Verbose] > │     let v1 : int32 = 0                                                       │

00:07:50 #23432 [Verbose] > │     let v2 : int32 = method10(v0, v1)                                        │

00:07:50 #23433 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │

00:07:50 #23434 [Verbose] > │     let v4 : int32 = 0                                                       │

00:07:50 #23435 [Verbose] > │     let v5 : int32 = method11(v3, v0, v4)                                    │

00:07:50 #23436 [Verbose] > │     v3                                                                       │

00:07:50 #23437 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:50 #23438 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:50 #23439 [Verbose] > │     let v0 : ((struct (float * float * float * float * float * float * float │

00:07:50 #23440 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:50 #23441 [Verbose] > │ float * float * float)) -> (struct (float * float * float * float * float *  │

00:07:50 #23442 [Verbose] > │ float * float * float * float) -> struct (float * float * float * float *    │

00:07:50 #23443 [Verbose] > │ float * float * float * float * float))) = closure0()                        │

00:07:50 #23444 [Verbose] > │     let v1 : (struct (float * float * float * float * float * float * float  │

00:07:50 #23445 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:50 #23446 [Verbose] > │ float * float * float)) = closure2()                                         │

00:07:50 #23447 [Verbose] > │     let v2 : (struct (float * float * float * float * float * float * float  │

00:07:50 #23448 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:50 #23449 [Verbose] > │ float * float * float)) = v0 v1                                              │

00:07:50 #23450 [Verbose] > │     let v3 : (struct (float * float * float * float * float * float * float  │

00:07:50 #23451 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:50 #23452 [Verbose] > │ float * float * float)) = closure3()                                         │

00:07:50 #23453 [Verbose] > │     let v4 : (struct (float * float * float * float * float * float * float  │

00:07:50 #23454 [Verbose] > │ * float * float) -> struct (float * float * float * float * float * float *  │

00:07:50 #23455 [Verbose] > │ float * float * float)) = v0 v3                                              │

00:07:50 #23456 [Verbose] > │     let v5 : UH0 = UH0_0                                                     │

00:07:50 #23457 [Verbose] > │     let v6 : int32 = 0                                                       │

00:07:50 #23458 [Verbose] > │     let v7 : UH0 = method1(v2, v5, v6)                                       │

00:07:50 #23459 [Verbose] > │     let v8 : UH1 = UH1_0                                                     │

00:07:50 #23460 [Verbose] > │     let v9 : UH1 = method4(v7, v8)                                           │

00:07:50 #23461 [Verbose] > │     let v10 : UH2 = UH2_0                                                    │

00:07:50 #23462 [Verbose] > │     let v11 : UH2 = UH2_0                                                    │

00:07:50 #23463 [Verbose] > │     let struct (v12 : UH2, v13 : UH2) = method5(v9, v10, v11)                │

00:07:50 #23464 [Verbose] > │     let v14 : UH2 = UH2_0                                                    │

00:07:50 #23465 [Verbose] > │     let v15 : UH2 = method6(v12, v14)                                        │

00:07:50 #23466 [Verbose] > │     let v16 : UH2 = UH2_0                                                    │

00:07:50 #23467 [Verbose] > │     let v17 : UH2 = method6(v13, v16)                                        │

00:07:50 #23468 [Verbose] > │     let v18 : UH0 = UH0_0                                                    │

00:07:50 #23469 [Verbose] > │     let v19 : int32 = 0                                                      │

00:07:50 #23470 [Verbose] > │     let v20 : UH0 = method7(v4, v18, v19)                                    │

00:07:50 #23471 [Verbose] > │     let v21 : UH1 = UH1_0                                                    │

00:07:50 #23472 [Verbose] > │     let v22 : UH1 = method8(v20, v21)                                        │

00:07:50 #23473 [Verbose] > │     let v23 : UH2 = UH2_0                                                    │

00:07:50 #23474 [Verbose] > │     let v24 : UH2 = UH2_0                                                    │

00:07:50 #23475 [Verbose] > │     let struct (v25 : UH2, v26 : UH2) = method5(v22, v23, v24)               │

00:07:50 #23476 [Verbose] > │     let v27 : UH2 = UH2_0                                                    │

00:07:50 #23477 [Verbose] > │     let v28 : UH2 = method6(v25, v27)                                        │

00:07:50 #23478 [Verbose] > │     let v29 : UH2 = UH2_0                                                    │

00:07:50 #23479 [Verbose] > │     let v30 : UH2 = method6(v26, v29)                                        │

00:07:50 #23480 [Verbose] > │     let v31 : (float []) = method9(v15)                                      │

00:07:50 #23481 [Verbose] > │     let v32 : (float []) = method9(v17)                                      │

00:07:50 #23482 [Verbose] > │     let v33 : (float []) = method9(v28)                                      │

00:07:50 #23483 [Verbose] > │     let v34 : (float []) = method9(v30)                                      │

00:07:50 #23484 [Verbose] > │     let v35 : string = "newtonian"                                           │

00:07:50 #23485 [Verbose] > │     let v36 : string = "relativistic"                                        │

00:07:50 #23486 [Verbose] > │     let v37 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:50 #23487 [Verbose] > │ (v35, v31, v32); struct (v36, v33, v34)|]                                    │

00:07:50 #23488 [Verbose] > │     let v38 : string = "proton in a 1-t magnetic field"                      │

00:07:50 #23489 [Verbose] > │     let v39 : string = "x (m)"                                               │

00:07:50 #23490 [Verbose] > │     let v40 : string = "y (m)"                                               │

00:07:50 #23491 [Verbose] > │     struct (v38, v39, v40, v37)                                              │

00:07:50 #23492 [Verbose] > │ method0()                                                                    │

00:07:50 #23493 [Verbose] > │                                                                              │

00:07:50 #23494 [Verbose] > │                                                                              │

00:07:50 #23495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:50 #23496 [Verbose] >

00:07:50 #23497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:50 #23498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:50 #23499 [Verbose] > │ ### system kinetic energy versus time 1                                      │

00:07:50 #23500 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:50 #23501 [Verbose] >

00:07:50 #23502 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:50 #23503 [Verbose] > // // test

00:07:50 #23504 [Verbose] >

00:07:50 #23505 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =

00:07:50 #23506 [Verbose] >     inl r1 = st1.pos_vec

00:07:50 #23507 [Verbose] >     inl r2 = st2.pos_vec

00:07:50 #23508 [Verbose] >     inl r21 = r2 ^-^ r1

00:07:50 #23509 [Verbose] >     inl r21mag = magnitude r21

00:07:50 #23510 [Verbose] >     f r21mag *^ r21 ^/ r21mag

00:07:50 #23511 [Verbose] >

00:07:50 #23512 [Verbose] > inl billiard_force k re =

00:07:50 #23513 [Verbose] >     inl f r =

00:07:50 #23514 [Verbose] >         if r >= re

00:07:50 #23515 [Verbose] >         then 0

00:07:50 #23516 [Verbose] >         else -k * (r - re)

00:07:50 #23517 [Verbose] >     central_force f

00:07:50 #23518 [Verbose] >

00:07:50 #23519 [Verbose] > type force_vector = vec

00:07:50 #23520 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector

00:07:50 #23521 [Verbose] >

00:07:50 #23522 [Verbose] > union force =

00:07:50 #23523 [Verbose] >     | ExternalForce : i32 * one_body_force

00:07:50 #23524 [Verbose] >     | InternalForce : i32 * i32 * two_body_force

00:07:50 #23525 [Verbose] >

00:07:50 #23526 [Verbose] > nominal multi_particle_state = list particle_state

00:07:50 #23527 [Verbose] >

00:07:50 #23528 [Verbose] > nominal d_multi_particle_state = list d_particle_state

00:07:50 #23529 [Verbose] >

00:07:50 #23530 [Verbose] > inl force_on n sts force =

00:07:50 #23531 [Verbose] >     match force with

00:07:50 #23532 [Verbose] >     | ExternalForce (n0, f_one_body) =>

00:07:50 #23533 [Verbose] >         if n = n0

00:07:50 #23534 [Verbose] >         then f_one_body

00:07:50 #23535 [Verbose] >         else fun _ => zero_vec ()

00:07:50 #23536 [Verbose] >     | InternalForce (n0, n1, f_two_body) =>

00:07:50 #23537 [Verbose] >         if n = n0

00:07:50 #23538 [Verbose] >         then f_two_body (sts |> listm'.item n1)

00:07:50 #23539 [Verbose] >         elif n = n1

00:07:50 #23540 [Verbose] >         then f_two_body (sts |> listm'.item n0)

00:07:50 #23541 [Verbose] >         else fun _ => zero_vec ()

00:07:50 #23542 [Verbose] >

00:07:50 #23543 [Verbose] > inl forces_on n (multi_particle_state sts) fs =

00:07:50 #23544 [Verbose] >     fs |> listm.map (force_on n sts)

00:07:50 #23545 [Verbose] >

00:07:50 #23546 [Verbose] > inl newton_second_mps fs (multi_particle_state sts) : d_multi_particle_state =

00:07:50 #23547 [Verbose] >     inl deriv (n, st) =

00:07:50 #23548 [Verbose] >         newton_second_ps (forces_on n (multi_particle_state sts) fs) st

00:07:50 #23549 [Verbose] >     sts |> listm'.indexed |> listm.map deriv |> d_multi_particle_state

00:07:50 #23550 [Verbose] >

00:07:50 #23551 [Verbose] > instance (+++) d_multi_particle_state = fun (d_multi_particle_state dsts1)

00:07:50 #23552 [Verbose] > (d_multi_particle_state dsts2) =>

00:07:50 #23553 [Verbose] >     d_multi_particle_state (listm'.zip_with_ (+++) dsts1 dsts2)

00:07:50 #23554 [Verbose] >

00:07:50 #23555 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>

00:07:50 #23556 [Verbose] >     d_multi_particle_state (dsts |> listm.map (scale w))

00:07:50 #23557 [Verbose] >

00:07:50 #23558 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>

00:07:50 #23559 [Verbose] >     inl (d_multi_particle_state dsts) =

00:07:50 #23560 [Verbose] >         real

00:07:50 #23561 [Verbose] >             match dsts with

00:07:50 #23562 [Verbose] >             | d_multi_particle_state _ => dsts

00:07:50 #23563 [Verbose] >     listm'.zip_with_ (shift dt) dsts sts |> multi_particle_state

00:07:50 #23564 [Verbose] >

00:07:50 #23565 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state

00:07:50 #23566 [Verbose] > d_multi_particle_state =

00:07:50 #23567 [Verbose] >     fun deriv mpst0 =>

00:07:50 #23568 [Verbose] >         inl mpst1 = euler dt deriv mpst0

00:07:50 #23569 [Verbose] >         inl (multi_particle_state sts0) = mpst0

00:07:50 #23570 [Verbose] >         inl (multi_particle_state sts1) = mpst1

00:07:50 #23571 [Verbose] >         sts1

00:07:50 #23572 [Verbose] >         |> listm'.zip_ sts0

00:07:50 #23573 [Verbose] >         |> listm.map (fun ((particle_state st0), (particle_state st1)) =>

00:07:50 #23574 [Verbose] >             particle_state {

00:07:50 #23575 [Verbose] >                 st1 with

00:07:50 #23576 [Verbose] >                     pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt

00:07:50 #23577 [Verbose] >             }

00:07:50 #23578 [Verbose] >         )

00:07:50 #23579 [Verbose] >         |> multi_particle_state

00:07:50 #23580 [Verbose] >

00:07:50 #23581 [Verbose] > inl update_mps (method : numerical_method multi_particle_state

00:07:50 #23582 [Verbose] > d_multi_particle_state) =

00:07:50 #23583 [Verbose] >     newton_second_mps >> method

00:07:50 #23584 [Verbose] >

00:07:50 #23585 [Verbose] > inl states_mps (method : numerical_method multi_particle_state

00:07:50 #23586 [Verbose] > d_multi_particle_state) =

00:07:50 #23587 [Verbose] >     newton_second_mps >> method >> seq.iterate_

00:07:50 #23588 [Verbose] >

00:07:50 #23589 [Verbose] >

00:07:50 #23590 [Verbose] > inl kinetic_energy (particle_state st) =

00:07:50 #23591 [Verbose] >     inl m = st.mass

00:07:50 #23592 [Verbose] >     inl v = magnitude st.velocity

00:07:50 #23593 [Verbose] >     0.5 * m * v ** 2

00:07:50 #23594 [Verbose] >

00:07:50 #23595 [Verbose] > inl system_ke (multi_particle_state sts) =

00:07:50 #23596 [Verbose] >     sts |> listm.map kinetic_energy |> listm'.sum

00:07:50 #23597 [Verbose] >

00:07:50 #23598 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =

00:07:50 #23599 [Verbose] >     inl r1 = st1.pos_vec

00:07:50 #23600 [Verbose] >     inl r2 = st2.pos_vec

00:07:50 #23601 [Verbose] >     inl r21 = r2 ^-^ r1

00:07:50 #23602 [Verbose] >     inl r21mag = magnitude r21

00:07:50 #23603 [Verbose] >     k * (r21mag - re) ** 2 / 2

00:07:50 #23604 [Verbose] >

00:07:50 #23605 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =

00:07:50 #23606 [Verbose] >     inl g = 9.80665

00:07:50 #23607 [Verbose] >     inl m = st.mass

00:07:50 #23608 [Verbose] >     inl z = st.pos_vec.z

00:07:50 #23609 [Verbose] >     m * g * z

00:07:50 #23610 [Verbose] >

00:07:50 #23611 [Verbose] > inl two_springs_pe (multi_particle_state sts) =

00:07:50 #23612 [Verbose] >     inl st0 = sts |> listm'.item 0i32

00:07:50 #23613 [Verbose] >     inl st1 = sts |> listm'.item 1i32

00:07:50 #23614 [Verbose] >     linear_spring_pe 100 0.5 (default_particle_state ()) st0

00:07:50 #23615 [Verbose] >     + linear_spring_pe 100 0.5 st0 st1

00:07:50 #23616 [Verbose] >     + earth_surface_gravity_pe st0

00:07:50 #23617 [Verbose] >     + earth_surface_gravity_pe st1

00:07:50 #23618 [Verbose] >

00:07:50 #23619 [Verbose] > inl two_springs_me mpst =

00:07:50 #23620 [Verbose] >     system_ke mpst + two_springs_pe mpst

00:07:50 #23621 [Verbose] >

00:07:50 #23622 [Verbose] > inl ball_radius () = 0.03

00:07:50 #23623 [Verbose] >

00:07:50 #23624 [Verbose] > inl billiard_forces k =

00:07:50 #23625 [Verbose] >     [[ InternalForce (0, 1, billiard_force k (2 * ball_radius ())) ]]

00:07:50 #23626 [Verbose] >

00:07:50 #23627 [Verbose] > inl billiard_update n_method k dt =

00:07:50 #23628 [Verbose] >     update_mps (n_method dt) (billiard_forces k)

00:07:50 #23629 [Verbose] >

00:07:50 #23630 [Verbose] > inl billiard_initial () =

00:07:50 #23631 [Verbose] >     inl ball_mass = 0.160

00:07:50 #23632 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:50 #23633 [Verbose] >     multi_particle_state [[

00:07:50 #23634 [Verbose] >         particle_state {

00:07:50 #23635 [Verbose] >             default_particle_state' with

00:07:50 #23636 [Verbose] >                 mass = ball_mass

00:07:50 #23637 [Verbose] >                 pos_vec = zero_vec ()

00:07:50 #23638 [Verbose] >                 velocity = 0.2 *^ i_hat ()

00:07:50 #23639 [Verbose] >         }

00:07:50 #23640 [Verbose] >         particle_state {

00:07:50 #23641 [Verbose] >             default_particle_state' with

00:07:50 #23642 [Verbose] >                 mass = ball_mass

00:07:50 #23643 [Verbose] >                 pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()

00:07:50 #23644 [Verbose] >                 velocity = zero_vec ()

00:07:50 #23645 [Verbose] >         }

00:07:50 #23646 [Verbose] >     ]]

00:07:50 #23647 [Verbose] >

00:07:50 #23648 [Verbose] > inl billiard_states ~n_method k dt =

00:07:50 #23649 [Verbose] >     states_mps (n_method dt) (billiard_forces k) (billiard_initial ())

00:07:50 #23650 [Verbose] >

00:07:50 #23651 [Verbose] > inl billiard_states_finite n_method k dt =

00:07:50 #23652 [Verbose] >     billiard_states n_method k dt

00:07:50 #23653 [Verbose] >     >> Some

00:07:50 #23654 [Verbose] >     |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>

00:07:50 #23655 [Verbose] >         (mpst |> listm'.item 0i32).time <= 10

00:07:50 #23656 [Verbose] >     )

00:07:50 #23657 [Verbose] >

00:07:50 #23658 [Verbose] > inl momentum (particle_state st) =

00:07:50 #23659 [Verbose] >     inl m = st.mass

00:07:50 #23660 [Verbose] >     inl v = st.velocity

00:07:50 #23661 [Verbose] >     m *^ v

00:07:50 #23662 [Verbose] >

00:07:50 #23663 [Verbose] > inl system_p (multi_particle_state sts) =

00:07:50 #23664 [Verbose] >     sts |> listm.map momentum |> sum_vec

00:07:50 #23665 [Verbose] >

00:07:50 #23666 [Verbose] >

00:07:50 #23667 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =

00:07:50 #23668 [Verbose] >     billiard_states_finite euler_cromer_mps 30 0.03

00:07:50 #23669 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>

00:07:50 #23670 [Verbose] >         (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)

00:07:50 #23671 [Verbose] >     )

00:07:50 #23672 [Verbose] >     |> listm'.unzip

00:07:50 #23673 [Verbose] >

00:07:50 #23674 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =

00:07:50 #23675 [Verbose] >     billiard_states_finite runge_kutta_4 30 0.03

00:07:50 #23676 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>

00:07:50 #23677 [Verbose] >         (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst)

00:07:50 #23678 [Verbose] >     )

00:07:50 #23679 [Verbose] >     |> listm'.unzip

00:07:50 #23680 [Verbose] >

00:07:50 #23681 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray

00:07:50 #23682 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray

00:07:50 #23683 [Verbose] >

00:07:50 #23684 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray

00:07:50 #23685 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray

00:07:50 #23686 [Verbose] >

00:07:50 #23687 [Verbose] > "system kinetic energy versus time",

00:07:50 #23688 [Verbose] > "time (s)",

00:07:50 #23689 [Verbose] > "system kinetic energy (j)",

00:07:50 #23690 [Verbose] > ;[[

00:07:50 #23691 [Verbose] >     "euler-cromer", time_ke_ec_x, time_ke_ec_y

00:07:50 #23692 [Verbose] >     "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y

00:07:50 #23693 [Verbose] > ]]

00:07:50 #23694 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2291-9184-984a4da2ad3e\main.spi

00:07:53 #23695 [Verbose] >

00:07:53 #23696 [Verbose] > ╭─[ 2.83s - return value ]─────────────────────────────────────────────────────╮

00:07:53 #23697 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:53 #23698 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:53 #23699 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:53 #23700 [Verbose] > │ stroke="none"/>                                                              │

00:07:53 #23701 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:53 #23702 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:53 #23703 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:53 #23704 [Verbose] > │ system kinetic energy versus time                                            │

00:07:53 #23705 [Verbose] > │ </text>                                                                      │

00:07:53 #23706 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:53 #23707 [Verbose] > │ y2="75"/>                                                                    │

00:07:53 #23708 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:53 #23709 [Verbose] > │ y2="75"/>                                                                    │

00:07:53 #23710 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:53 #23711 [Verbose] > │ y2="75"/>                                                                    │

00:07:53 #23712 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:53 #23713 [Verbose] > │ y2="75"/>                                                                    │

00:07:53 #23714 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1...                        │

00:07:53 #23715 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:53 #23716 [Verbose] >

00:07:53 #23717 [Verbose] > ╭─[ 2.85s - stdout ]───────────────────────────────────────────────────────────╮

00:07:53 #23718 [Verbose] > │ type UH0 =                                                                   │

00:07:53 #23719 [Verbose] > │     | UH0_0                                                                  │

00:07:53 #23720 [Verbose] > │     | UH0_1 of float * float * float * float * float * float * float * float │

00:07:53 #23721 [Verbose] > │ * float * UH0                                                                │

00:07:53 #23722 [Verbose] > │ and UH1 =                                                                    │

00:07:53 #23723 [Verbose] > │     | UH1_0                                                                  │

00:07:53 #23724 [Verbose] > │     | UH1_1 of float * float * float * float * float * float * float * float │

00:07:53 #23725 [Verbose] > │ * float * UH1                                                                │

00:07:53 #23726 [Verbose] > │ and UH2 =                                                                    │

00:07:53 #23727 [Verbose] > │     | UH2_0                                                                  │

00:07:53 #23728 [Verbose] > │     | UH2_1 of float * float * float * float * float * float * float * float │

00:07:53 #23729 [Verbose] > │ * float * float * float * float * float * float * float * float * float *    │

00:07:53 #23730 [Verbose] > │ float * UH2                                                                  │

00:07:53 #23731 [Verbose] > │ and UH3 =                                                                    │

00:07:53 #23732 [Verbose] > │     | UH3_0                                                                  │

00:07:53 #23733 [Verbose] > │     | UH3_1 of int32 * float * float * float * float * float * float * float │

00:07:53 #23734 [Verbose] > │ * float * float * UH3                                                        │

00:07:53 #23735 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:07:53 #23736 [Verbose] > │     | US0_0 of f0_0 : float * f0_1 : float * f0_2 : float * f0_3 : float *   │

00:07:53 #23737 [Verbose] > │ f0_4 : float * f0_5 : float * f0_6 : float * f0_7 : float * f0_8 : float     │

00:07:53 #23738 [Verbose] > │     | US0_1                                                                  │

00:07:53 #23739 [Verbose] > │ and UH4 =                                                                    │

00:07:53 #23740 [Verbose] > │     | UH4_0                                                                  │

00:07:53 #23741 [Verbose] > │     | UH4_1 of UH0 * UH4                                                     │

00:07:53 #23742 [Verbose] > │ and UH5 =                                                                    │

00:07:53 #23743 [Verbose] > │     | UH5_0                                                                  │

00:07:53 #23744 [Verbose] > │     | UH5_1 of float * float * UH5                                           │

00:07:53 #23745 [Verbose] > │ and UH6 =                                                                    │

00:07:53 #23746 [Verbose] > │     | UH6_0                                                                  │

00:07:53 #23747 [Verbose] > │     | UH6_1 of float * UH6                                                   │

00:07:53 #23748 [Verbose] > │ let rec method2 (v0 : UH0, v1 : UH0) : UH0 =                                 │

00:07:53 #23749 [Verbose] > │     match v0 with                                                            │

00:07:53 #23750 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:53 #23751 [Verbose] > │         let v12 : UH0 = UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │

00:07:53 #23752 [Verbose] > │         method2(v11, v12)                                                    │

00:07:53 #23753 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:53 #23754 [Verbose] > │         v1                                                                   │

00:07:53 #23755 [Verbose] > │ and method1 (v0 : float, v1 : UH0, v2 : UH1, v3 : UH0) : UH0 =               │

00:07:53 #23756 [Verbose] > │     match v2 with                                                            │

00:07:53 #23757 [Verbose] > │     | UH1_1(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *)        │

00:07:53 #23758 [Verbose] > │         match v3 with                                                        │

00:07:53 #23759 [Verbose] > │         | UH0_1(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (* Cons │

00:07:53 #23760 [Verbose] > │ *)                                                                           │

00:07:53 #23761 [Verbose] > │             let v24 : float = v9 * v0                                        │

00:07:53 #23762 [Verbose] > │             let v25 : float = v19 + v24                                      │

00:07:53 #23763 [Verbose] > │             let v26 : float = v0 * v6                                        │

00:07:53 #23764 [Verbose] > │             let v27 : float = v0 * v7                                        │

00:07:53 #23765 [Verbose] > │             let v28 : float = v0 * v8                                        │

00:07:53 #23766 [Verbose] > │             let v29 : float = v16 + v26                                      │

00:07:53 #23767 [Verbose] > │             let v30 : float = v17 + v27                                      │

00:07:53 #23768 [Verbose] > │             let v31 : float = v18 + v28                                      │

00:07:53 #23769 [Verbose] > │             let v32 : float = v0 * v10                                       │

00:07:53 #23770 [Verbose] > │             let v33 : float = v0 * v11                                       │

00:07:53 #23771 [Verbose] > │             let v34 : float = v0 * v12                                       │

00:07:53 #23772 [Verbose] > │             let v35 : float = v20 + v32                                      │

00:07:53 #23773 [Verbose] > │             let v36 : float = v21 + v33                                      │

00:07:53 #23774 [Verbose] > │             let v37 : float = v22 + v34                                      │

00:07:53 #23775 [Verbose] > │             let v38 : UH0 = UH0_1(v14, v15, v29, v30, v31, v25, v35, v36,    │

00:07:53 #23776 [Verbose] > │ v37, v1)                                                                     │

00:07:53 #23777 [Verbose] > │             method1(v0, v38, v13, v23)                                       │

00:07:53 #23778 [Verbose] > │         | _ ->                                                               │

00:07:53 #23779 [Verbose] > │             let v40 : UH0 = UH0_0                                            │

00:07:53 #23780 [Verbose] > │             method2(v1, v40)                                                 │

00:07:53 #23781 [Verbose] > │     | _ ->                                                                   │

00:07:53 #23782 [Verbose] > │         let v43 : UH0 = UH0_0                                                │

00:07:53 #23783 [Verbose] > │         method2(v1, v43)                                                     │

00:07:53 #23784 [Verbose] > │ and method4 (v0 : UH2, v1 : UH2) : UH2 =                                     │

00:07:53 #23785 [Verbose] > │     match v0 with                                                            │

00:07:53 #23786 [Verbose] > │     | UH2_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,    │

00:07:53 #23787 [Verbose] > │ v16, v17, v18, v19, v20) -> (* Cons *)                                       │

00:07:53 #23788 [Verbose] > │         let v21 : UH2 = UH2_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, │

00:07:53 #23789 [Verbose] > │ v13, v14, v15, v16, v17, v18, v19, v1)                                       │

00:07:53 #23790 [Verbose] > │         method4(v20, v21)                                                    │

00:07:53 #23791 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:53 #23792 [Verbose] > │         v1                                                                   │

00:07:53 #23793 [Verbose] > │ and method3 (v0 : UH2, v1 : UH0, v2 : UH0) : UH2 =                           │

00:07:53 #23794 [Verbose] > │     match v1 with                                                            │

00:07:53 #23795 [Verbose] > │     | UH0_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)         │

00:07:53 #23796 [Verbose] > │         match v2 with                                                        │

00:07:53 #23797 [Verbose] > │         | UH0_1(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │

00:07:53 #23798 [Verbose] > │ *)                                                                           │

00:07:53 #23799 [Verbose] > │             let v23 : UH2 = UH2_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v13, │

00:07:53 #23800 [Verbose] > │ v14, v15, v16, v17, v18, v19, v20, v21, v0)                                  │

00:07:53 #23801 [Verbose] > │             method3(v23, v12, v22)                                           │

00:07:53 #23802 [Verbose] > │         | _ ->                                                               │

00:07:53 #23803 [Verbose] > │             let v25 : UH2 = UH2_0                                            │

00:07:53 #23804 [Verbose] > │             method4(v0, v25)                                                 │

00:07:53 #23805 [Verbose] > │     | _ ->                                                                   │

00:07:53 #23806 [Verbose] > │         let v28 : UH2 = UH2_0                                                │

00:07:53 #23807 [Verbose] > │         method4(v0, v28)                                                     │

00:07:53 #23808 [Verbose] > │ and method5 (v0 : float, v1 : UH2, v2 : UH0) : UH0 =                         │

00:07:53 #23809 [Verbose] > │     match v1 with                                                            │

00:07:53 #23810 [Verbose] > │     | UH2_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16,   │

00:07:53 #23811 [Verbose] > │ v17, v18, v19, v20, v21) -> (* Cons *)                                       │

00:07:53 #23812 [Verbose] > │         let v22 : UH0 = method5(v0, v21, v2)                                 │

00:07:53 #23813 [Verbose] > │         let v23 : float = v0 * v18                                           │

00:07:53 #23814 [Verbose] > │         let v24 : float = v0 * v19                                           │

00:07:53 #23815 [Verbose] > │         let v25 : float = v0 * v20                                           │

00:07:53 #23816 [Verbose] > │         let v26 : float = v5 + v23                                           │

00:07:53 #23817 [Verbose] > │         let v27 : float = v6 + v24                                           │

00:07:53 #23818 [Verbose] > │         let v28 : float = v7 + v25                                           │

00:07:53 #23819 [Verbose] > │         UH0_1(v12, v13, v26, v27, v28, v17, v18, v19, v20, v22)              │

00:07:53 #23820 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:07:53 #23821 [Verbose] > │         v2                                                                   │

00:07:53 #23822 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =              │

00:07:53 #23823 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │

00:07:53 #23824 [Verbose] > │     let v4 : UH0 = UH0_0                                                     │

00:07:53 #23825 [Verbose] > │     let v5 : UH0 = method1(v0, v4, v3, v2)                                   │

00:07:53 #23826 [Verbose] > │     let v6 : UH2 = UH2_0                                                     │

00:07:53 #23827 [Verbose] > │     let v7 : UH2 = method3(v6, v2, v5)                                       │

00:07:53 #23828 [Verbose] > │     let v8 : UH0 = UH0_0                                                     │

00:07:53 #23829 [Verbose] > │     let v9 : UH0 = method5(v0, v7, v8)                                       │

00:07:53 #23830 [Verbose] > │     v9                                                                       │

00:07:53 #23831 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =               │

00:07:53 #23832 [Verbose] > │     closure2(v0, v1)                                                         │

00:07:53 #23833 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =              │

00:07:53 #23834 [Verbose] > │     closure1(v0)                                                             │

00:07:53 #23835 [Verbose] > │ and method6 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) =        │

00:07:53 #23836 [Verbose] > │     match v0 with                                                            │

00:07:53 #23837 [Verbose] > │     | UH0_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)         │

00:07:53 #23838 [Verbose] > │         let v13 : int32 = v2 + 1                                             │

00:07:53 #23839 [Verbose] > │         let v14 : UH3 = UH3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1)  │

00:07:53 #23840 [Verbose] > │         method6(v12, v14, v13)                                               │

00:07:53 #23841 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:53 #23842 [Verbose] > │         struct (v1, v2)                                                      │

00:07:53 #23843 [Verbose] > │ and method7 (v0 : UH3, v1 : UH3) : UH3 =                                     │

00:07:53 #23844 [Verbose] > │     match v0 with                                                            │

00:07:53 #23845 [Verbose] > │     | UH3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)     │

00:07:53 #23846 [Verbose] > │         let v13 : UH3 = UH3_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v1)  │

00:07:53 #23847 [Verbose] > │         method7(v12, v13)                                                    │

00:07:53 #23848 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:07:53 #23849 [Verbose] > │         v1                                                                   │

00:07:53 #23850 [Verbose] > │ and closure4 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │

00:07:53 #23851 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 :       │

00:07:53 #23852 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16  │

00:07:53 #23853 [Verbose] > │ : float, v17 : float) : struct (float * float * float) =                     │

00:07:53 #23854 [Verbose] > │     let v18 : float = -1.0 * v2                                              │

00:07:53 #23855 [Verbose] > │     let v19 : float = -1.0 * v3                                              │

00:07:53 #23856 [Verbose] > │     let v20 : float = -1.0 * v4                                              │

00:07:53 #23857 [Verbose] > │     let v21 : float = v11 + v18                                              │

00:07:53 #23858 [Verbose] > │     let v22 : float = v12 + v19                                              │

00:07:53 #23859 [Verbose] > │     let v23 : float = v13 + v20                                              │

00:07:53 #23860 [Verbose] > │     let v24 : float = v21 * v21                                              │

00:07:53 #23861 [Verbose] > │     let v25 : float = v22 * v22                                              │

00:07:53 #23862 [Verbose] > │     let v26 : float = v24 + v25                                              │

00:07:53 #23863 [Verbose] > │     let v27 : float = v23 * v23                                              │

00:07:53 #23864 [Verbose] > │     let v28 : float = v26 + v27                                              │

00:07:53 #23865 [Verbose] > │     let v29 : float = sqrt v28                                               │

00:07:53 #23866 [Verbose] > │     let v30 : bool = v29 >= 0.06                                             │

00:07:53 #23867 [Verbose] > │     let v33 : float =                                                        │

00:07:53 #23868 [Verbose] > │         if v30 then                                                          │

00:07:53 #23869 [Verbose] > │             0.0                                                              │

00:07:53 #23870 [Verbose] > │         else                                                                 │

00:07:53 #23871 [Verbose] > │             let v31 : float = v29 - 0.06                                     │

00:07:53 #23872 [Verbose] > │             let v32 : float = -30.0 * v31                                    │

00:07:53 #23873 [Verbose] > │             v32                                                              │

00:07:53 #23874 [Verbose] > │     let v34 : float = v33 * v21                                              │

00:07:53 #23875 [Verbose] > │     let v35 : float = v33 * v22                                              │

00:07:53 #23876 [Verbose] > │     let v36 : float = v33 * v23                                              │

00:07:53 #23877 [Verbose] > │     let v37 : float = v34 / v29                                              │

00:07:53 #23878 [Verbose] > │     let v38 : float = v35 / v29                                              │

00:07:53 #23879 [Verbose] > │     let v39 : float = v36 / v29                                              │

00:07:53 #23880 [Verbose] > │     struct (v37, v38, v39)                                                   │

00:07:53 #23881 [Verbose] > │ and closure5 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 : │

00:07:53 #23882 [Verbose] > │ float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *     │

00:07:53 #23883 [Verbose] > │ float * float) =                                                             │

00:07:53 #23884 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │

00:07:53 #23885 [Verbose] > │ and method8 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 =                           │

00:07:53 #23886 [Verbose] > │     match v1 with                                                            │

00:07:53 #23887 [Verbose] > │     | UH3_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* Cons *)    │

00:07:53 #23888 [Verbose] > │         let v14 : UH1 = method8(v0, v13, v2)                                 │

00:07:53 #23889 [Verbose] > │         let v15 : bool = v3 = 0                                              │

00:07:53 #23890 [Verbose] > │         let v134 : (struct (float * float * float * float * float * float *  │

00:07:53 #23891 [Verbose] > │ float * float * float) -> struct (float * float * float)) =                  │

00:07:53 #23892 [Verbose] > │             if v15 then                                                      │

00:07:53 #23893 [Verbose] > │                 let v42 : US0 =                                              │

00:07:53 #23894 [Verbose] > │                     match v0 with                                            │

00:07:53 #23895 [Verbose] > │                     | UH0_1(v16, v17, v18, v19, v20, v21, v22, v23, v24,     │

00:07:53 #23896 [Verbose] > │ v25) -> (* Cons *)                                                           │

00:07:53 #23897 [Verbose] > │                         match v25 with                                       │

00:07:53 #23898 [Verbose] > │                         | UH0_1(v26, v27, v28, v29, v30, v31, v32, v33, v34, │

00:07:53 #23899 [Verbose] > │ v35) -> (* Cons *)                                                           │

00:07:53 #23900 [Verbose] > │                             US0_0(v26, v27, v28, v29, v30, v31, v32, v33,    │

00:07:53 #23901 [Verbose] > │ v34)                                                                         │

00:07:53 #23902 [Verbose] > │                         | UH0_0 -> (* Nil *)                                 │

00:07:53 #23903 [Verbose] > │                             US0_1                                            │

00:07:53 #23904 [Verbose] > │                     | UH0_0 -> (* Nil *)                                     │

00:07:53 #23905 [Verbose] > │                         US0_1                                                │

00:07:53 #23906 [Verbose] > │                 let struct (v70 : float, v71 : float, v72 : float, v73 :     │

00:07:53 #23907 [Verbose] > │ float, v74 : float, v75 : float, v76 : float, v77 : float, v78 : float) =    │

00:07:53 #23908 [Verbose] > │                     match v42 with                                           │

00:07:53 #23909 [Verbose] > │                     | US0_1 -> (* None *)                                    │

00:07:53 #23910 [Verbose] > │                         failwith<struct (float * float * float * float *     │

00:07:53 #23911 [Verbose] > │ float * float * float * float * float)> "Option does not have a value."      │

00:07:53 #23912 [Verbose] > │                     | US0_0(v43, v44, v45, v46, v47, v48, v49, v50, v51) ->  │

00:07:53 #23913 [Verbose] > │ (* Some *)                                                                   │

00:07:53 #23914 [Verbose] > │                         struct (v43, v44, v45, v46, v47, v48, v49, v50, v51) │

00:07:53 #23915 [Verbose] > │                 closure4(v70, v71, v72, v73, v74, v75, v76, v77, v78)        │

00:07:53 #23916 [Verbose] > │             else                                                             │

00:07:53 #23917 [Verbose] > │                 let v80 : bool = v3 = 1                                      │

00:07:53 #23918 [Verbose] > │                 if v80 then                                                  │

00:07:53 #23919 [Verbose] > │                     let v94 : US0 =                                          │

00:07:53 #23920 [Verbose] > │                         match v0 with                                        │

00:07:53 #23921 [Verbose] > │                         | UH0_1(v81, v82, v83, v84, v85, v86, v87, v88, v89, │

00:07:53 #23922 [Verbose] > │ v90) -> (* Cons *)                                                           │

00:07:53 #23923 [Verbose] > │                             US0_0(v81, v82, v83, v84, v85, v86, v87, v88,    │

00:07:53 #23924 [Verbose] > │ v89)                                                                         │

00:07:53 #23925 [Verbose] > │                         | UH0_0 -> (* Nil *)                                 │

00:07:53 #23926 [Verbose] > │                             US0_1                                            │

00:07:53 #23927 [Verbose] > │                     let struct (v122 : float, v123 : float, v124 : float,    │

00:07:53 #23928 [Verbose] > │ v125 : float, v126 : float, v127 : float, v128 : float, v129 : float, v130 : │

00:07:53 #23929 [Verbose] > │ float) =                                                                     │

00:07:53 #23930 [Verbose] > │                         match v94 with                                       │

00:07:53 #23931 [Verbose] > │                         | US0_1 -> (* None *)                                │

00:07:53 #23932 [Verbose] > │                             failwith<struct (float * float * float * float * │

00:07:53 #23933 [Verbose] > │ float * float * float * float * float)> "Option does not have a value."      │

00:07:53 #23934 [Verbose] > │                         | US0_0(v95, v96, v97, v98, v99, v100, v101, v102,   │

00:07:53 #23935 [Verbose] > │ v103) -> (* Some *)                                                          │

00:07:53 #23936 [Verbose] > │                             struct (v95, v96, v97, v98, v99, v100, v101,     │

00:07:53 #23937 [Verbose] > │ v102, v103)                                                                  │

00:07:53 #23938 [Verbose] > │                     closure4(v122, v123, v124, v125, v126, v127, v128, v129, │

00:07:53 #23939 [Verbose] > │ v130)                                                                        │

00:07:53 #23940 [Verbose] > │                 else                                                         │

00:07:53 #23941 [Verbose] > │                     closure5()                                               │

00:07:53 #23942 [Verbose] > │         let struct (v135 : float, v136 : float, v137 : float) = v134 struct  │

00:07:53 #23943 [Verbose] > │ (v4, v5, v6, v7, v8, v9, v10, v11, v12)                                      │

00:07:53 #23944 [Verbose] > │         let v138 : float = v135 / v5                                         │

00:07:53 #23945 [Verbose] > │         let v139 : float = v136 / v5                                         │

00:07:53 #23946 [Verbose] > │         let v140 : float = v137 / v5                                         │

00:07:53 #23947 [Verbose] > │         UH1_1(0.0, 0.0, v10, v11, v12, 1.0, v138, v139, v140, v14)           │

00:07:53 #23948 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:07:53 #23949 [Verbose] > │         v2                                                                   │

00:07:53 #23950 [Verbose] > │ and closure3 () (v0 : UH0) : UH1 =                                           │

00:07:53 #23951 [Verbose] > │     let v1 : UH3 = UH3_0                                                     │

00:07:53 #23952 [Verbose] > │     let v2 : int32 = 0                                                       │

00:07:53 #23953 [Verbose] > │     let struct (v3 : UH3, v4 : int32) = method6(v0, v1, v2)                  │

00:07:53 #23954 [Verbose] > │     let v5 : UH3 = UH3_0                                                     │

00:07:53 #23955 [Verbose] > │     let v6 : UH3 = method7(v3, v5)                                           │

00:07:53 #23956 [Verbose] > │     let v7 : UH1 = UH1_0                                                     │

00:07:53 #23957 [Verbose] > │     let v8 : UH1 = method8(v0, v6, v7)                                       │

00:07:53 #23958 [Verbose] > │     v8                                                                       │

00:07:53 #23959 [Verbose] > │ and method10 (v0 : (UH0 -> UH0), v1 : UH0, v2 : int32) : UH0 =               │

00:07:53 #23960 [Verbose] > │     let v3 : bool = v2 <= 0                                                  │

00:07:53 #23961 [Verbose] > │     if v3 then                                                               │

00:07:53 #23962 [Verbose] > │         v1                                                                   │

00:07:53 #23963 [Verbose] > │     else                                                                     │

00:07:53 #23964 [Verbose] > │         let v4 : UH0 = v0 v1                                                 │

00:07:53 #23965 [Verbose] > │         let v5 : int32 = v2 - 1                                              │

00:07:53 #23966 [Verbose] > │         method10(v0, v4, v5)                                                 │

00:07:53 #23967 [Verbose] > │ and method11 (v0 : UH4, v1 : UH4) : UH4 =                                    │

00:07:53 #23968 [Verbose] > │     match v0 with                                                            │

00:07:53 #23969 [Verbose] > │     | UH4_1(v2, v3) -> (* Cons *)                                            │

00:07:53 #23970 [Verbose] > │         let v4 : UH4 = UH4_1(v2, v1)                                         │

00:07:53 #23971 [Verbose] > │         method11(v3, v4)                                                     │

00:07:53 #23972 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:07:53 #23973 [Verbose] > │         v1                                                                   │

00:07:53 #23974 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 =                │

00:07:53 #23975 [Verbose] > │     let v3 : float = 0.0                                                     │

00:07:53 #23976 [Verbose] > │     let v4 : float = 0.16                                                    │

00:07:53 #23977 [Verbose] > │     let v5 : float = 0.0                                                     │

00:07:53 #23978 [Verbose] > │     let v6 : float = 0.0                                                     │

00:07:53 #23979 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:53 #23980 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:53 #23981 [Verbose] > │     let v9 : float = 0.2                                                     │

00:07:53 #23982 [Verbose] > │     let v10 : float = 0.0                                                    │

00:07:53 #23983 [Verbose] > │     let v11 : float = 0.0                                                    │

00:07:53 #23984 [Verbose] > │     let v12 : float = 1.0                                                    │

00:07:53 #23985 [Verbose] > │     let v13 : float = 0.02                                                   │

00:07:53 #23986 [Verbose] > │     let v14 : float = 0.0                                                    │

00:07:53 #23987 [Verbose] > │     let v15 : float = 0.0                                                    │

00:07:53 #23988 [Verbose] > │     let v16 : float = 0.0                                                    │

00:07:53 #23989 [Verbose] > │     let v17 : float = 0.0                                                    │

00:07:53 #23990 [Verbose] > │     let v18 : UH0 = UH0_0                                                    │

00:07:53 #23991 [Verbose] > │     let v19 : UH0 = UH0_1(v3, v4, v12, v13, v14, v8, v15, v16, v17, v18)     │

00:07:53 #23992 [Verbose] > │     let v20 : UH0 = UH0_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v19)         │

00:07:53 #23993 [Verbose] > │     let v21 : UH0 = method10(v0, v20, v2)                                    │

00:07:53 #23994 [Verbose] > │     let v35 : US0 =                                                          │

00:07:53 #23995 [Verbose] > │         match v21 with                                                       │

00:07:53 #23996 [Verbose] > │         | UH0_1(v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) -> (* Cons │

00:07:53 #23997 [Verbose] > │ *)                                                                           │

00:07:53 #23998 [Verbose] > │             US0_0(v22, v23, v24, v25, v26, v27, v28, v29, v30)               │

00:07:53 #23999 [Verbose] > │         | UH0_0 -> (* Nil *)                                                 │

00:07:53 #24000 [Verbose] > │             US0_1                                                            │

00:07:53 #24001 [Verbose] > │     let struct (v63 : float, v64 : float, v65 : float, v66 : float, v67 :    │

00:07:53 #24002 [Verbose] > │ float, v68 : float, v69 : float, v70 : float, v71 : float) =                 │

00:07:53 #24003 [Verbose] > │         match v35 with                                                       │

00:07:53 #24004 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:07:53 #24005 [Verbose] > │             failwith<struct (float * float * float * float * float * float * │

00:07:53 #24006 [Verbose] > │ float * float * float)> "Option does not have a value."                      │

00:07:53 #24007 [Verbose] > │         | US0_0(v36, v37, v38, v39, v40, v41, v42, v43, v44) -> (* Some *)   │

00:07:53 #24008 [Verbose] > │             struct (v36, v37, v38, v39, v40, v41, v42, v43, v44)             │

00:07:53 #24009 [Verbose] > │     let v72 : bool = v68 <= 10.0                                             │

00:07:53 #24010 [Verbose] > │     if v72 then                                                              │

00:07:53 #24011 [Verbose] > │         let v73 : UH4 = UH4_1(v21, v1)                                       │

00:07:53 #24012 [Verbose] > │         let v74 : int32 = v2 + 1                                             │

00:07:53 #24013 [Verbose] > │         method9(v0, v73, v74)                                                │

00:07:53 #24014 [Verbose] > │     else                                                                     │

00:07:53 #24015 [Verbose] > │         let v76 : UH4 = UH4_0                                                │

00:07:53 #24016 [Verbose] > │         method11(v1, v76)                                                    │

00:07:53 #24017 [Verbose] > │ and method13 (v0 : UH0, v1 : UH6) : UH6 =                                    │

00:07:53 #24018 [Verbose] > │     match v0 with                                                            │

00:07:53 #24019 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:53 #24020 [Verbose] > │         let v12 : UH6 = method13(v11, v1)                                    │

00:07:53 #24021 [Verbose] > │         let v13 : float = v8 * v8                                            │

00:07:53 #24022 [Verbose] > │         let v14 : float = v9 * v9                                            │

00:07:53 #24023 [Verbose] > │         let v15 : float = v13 + v14                                          │

00:07:53 #24024 [Verbose] > │         let v16 : float = v10 * v10                                          │

00:07:53 #24025 [Verbose] > │         let v17 : float = v15 + v16                                          │

00:07:53 #24026 [Verbose] > │         let v18 : float = sqrt v17                                           │

00:07:53 #24027 [Verbose] > │         let v19 : float = 0.5 * v3                                           │

00:07:53 #24028 [Verbose] > │         let v20 : float = v18 ** 2.0                                         │

00:07:53 #24029 [Verbose] > │         let v21 : float = v19 * v20                                          │

00:07:53 #24030 [Verbose] > │         UH6_1(v21, v12)                                                      │

00:07:53 #24031 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:53 #24032 [Verbose] > │         v1                                                                   │

00:07:53 #24033 [Verbose] > │ and method14 (v0 : UH6, v1 : float) : float =                                │

00:07:53 #24034 [Verbose] > │     match v0 with                                                            │

00:07:53 #24035 [Verbose] > │     | UH6_1(v2, v3) -> (* Cons *)                                            │

00:07:53 #24036 [Verbose] > │         let v4 : float = v1 + v2                                             │

00:07:53 #24037 [Verbose] > │         method14(v3, v4)                                                     │

00:07:53 #24038 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:07:53 #24039 [Verbose] > │         v1                                                                   │

00:07:53 #24040 [Verbose] > │ and method12 (v0 : UH4, v1 : UH5) : UH5 =                                    │

00:07:53 #24041 [Verbose] > │     match v0 with                                                            │

00:07:53 #24042 [Verbose] > │     | UH4_1(v2, v3) -> (* Cons *)                                            │

00:07:53 #24043 [Verbose] > │         let v4 : UH5 = method12(v3, v1)                                      │

00:07:53 #24044 [Verbose] > │         let v18 : US0 =                                                      │

00:07:53 #24045 [Verbose] > │             match v2 with                                                    │

00:07:53 #24046 [Verbose] > │             | UH0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons  │

00:07:53 #24047 [Verbose] > │ *)                                                                           │

00:07:53 #24048 [Verbose] > │                 US0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13)                │

00:07:53 #24049 [Verbose] > │             | UH0_0 -> (* Nil *)                                             │

00:07:53 #24050 [Verbose] > │                 US0_1                                                        │

00:07:53 #24051 [Verbose] > │         let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50  │

00:07:53 #24052 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) =               │

00:07:53 #24053 [Verbose] > │             match v18 with                                                   │

00:07:53 #24054 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:07:53 #24055 [Verbose] > │                 failwith<struct (float * float * float * float * float *     │

00:07:53 #24056 [Verbose] > │ float * float * float * float)> "Option does not have a value."              │

00:07:53 #24057 [Verbose] > │             | US0_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some  │

00:07:53 #24058 [Verbose] > │ *)                                                                           │

00:07:53 #24059 [Verbose] > │                 struct (v19, v20, v21, v22, v23, v24, v25, v26, v27)         │

00:07:53 #24060 [Verbose] > │         let v55 : UH6 = UH6_0                                                │

00:07:53 #24061 [Verbose] > │         let v56 : UH6 = method13(v2, v55)                                    │

00:07:53 #24062 [Verbose] > │         let v57 : float = 0.0                                                │

00:07:53 #24063 [Verbose] > │         let v58 : float = method14(v56, v57)                                 │

00:07:53 #24064 [Verbose] > │         UH5_1(v51, v58, v4)                                                  │

00:07:53 #24065 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:07:53 #24066 [Verbose] > │         v1                                                                   │

00:07:53 #24067 [Verbose] > │ and method15 (v0 : UH5, v1 : UH6, v2 : UH6) : struct (UH6 * UH6) =           │

00:07:53 #24068 [Verbose] > │     match v0 with                                                            │

00:07:53 #24069 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:07:53 #24070 [Verbose] > │         let v6 : UH6 = UH6_1(v3, v1)                                         │

00:07:53 #24071 [Verbose] > │         let v7 : UH6 = UH6_1(v4, v2)                                         │

00:07:53 #24072 [Verbose] > │         method15(v5, v6, v7)                                                 │

00:07:53 #24073 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:07:53 #24074 [Verbose] > │         struct (v1, v2)                                                      │

00:07:53 #24075 [Verbose] > │ and method16 (v0 : UH6, v1 : UH6) : UH6 =                                    │

00:07:53 #24076 [Verbose] > │     match v0 with                                                            │

00:07:53 #24077 [Verbose] > │     | UH6_1(v2, v3) -> (* Cons *)                                            │

00:07:53 #24078 [Verbose] > │         let v4 : UH6 = UH6_1(v2, v1)                                         │

00:07:53 #24079 [Verbose] > │         method16(v3, v4)                                                     │

00:07:53 #24080 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:07:53 #24081 [Verbose] > │         v1                                                                   │

00:07:53 #24082 [Verbose] > │ and method18 (v0 : UH1, v1 : UH1) : UH1 =                                    │

00:07:53 #24083 [Verbose] > │     match v0 with                                                            │

00:07:53 #24084 [Verbose] > │     | UH1_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* Cons *)          │

00:07:53 #24085 [Verbose] > │         let v12 : UH1 = UH1_1(v2, v3, v4, v5, v6, v7, v8, v9, v10, v1)       │

00:07:53 #24086 [Verbose] > │         method18(v11, v12)                                                   │

00:07:53 #24087 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:53 #24088 [Verbose] > │         v1                                                                   │

00:07:53 #24089 [Verbose] > │ and method17 (v0 : UH1, v1 : UH1, v2 : UH1) : UH1 =                          │

00:07:53 #24090 [Verbose] > │     match v1 with                                                            │

00:07:53 #24091 [Verbose] > │     | UH1_1(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* Cons *)         │

00:07:53 #24092 [Verbose] > │         match v2 with                                                        │

00:07:53 #24093 [Verbose] > │         | UH1_1(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (* Cons │

00:07:53 #24094 [Verbose] > │ *)                                                                           │

00:07:53 #24095 [Verbose] > │             let v23 : float = v3 + v13                                       │

00:07:53 #24096 [Verbose] > │             let v24 : float = v4 + v14                                       │

00:07:53 #24097 [Verbose] > │             let v25 : float = v8 + v18                                       │

00:07:53 #24098 [Verbose] > │             let v26 : float = v5 + v15                                       │

00:07:53 #24099 [Verbose] > │             let v27 : float = v6 + v16                                       │

00:07:53 #24100 [Verbose] > │             let v28 : float = v7 + v17                                       │

00:07:53 #24101 [Verbose] > │             let v29 : float = v9 + v19                                       │

00:07:53 #24102 [Verbose] > │             let v30 : float = v10 + v20                                      │

00:07:53 #24103 [Verbose] > │             let v31 : float = v11 + v21                                      │

00:07:53 #24104 [Verbose] > │             let v32 : UH1 = UH1_1(v23, v24, v26, v27, v28, v25, v29, v30,    │

00:07:53 #24105 [Verbose] > │ v31, v0)                                                                     │

00:07:53 #24106 [Verbose] > │             method17(v32, v12, v22)                                          │

00:07:53 #24107 [Verbose] > │         | _ ->                                                               │

00:07:53 #24108 [Verbose] > │             let v34 : UH1 = UH1_0                                            │

00:07:53 #24109 [Verbose] > │             method18(v0, v34)                                                │

00:07:53 #24110 [Verbose] > │     | _ ->                                                                   │

00:07:53 #24111 [Verbose] > │         let v37 : UH1 = UH1_0                                                │

00:07:53 #24112 [Verbose] > │         method18(v0, v37)                                                    │

00:07:53 #24113 [Verbose] > │ and closure8 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =              │

00:07:53 #24114 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │

00:07:53 #24115 [Verbose] > │     let v4 : float = v0 / 2.0                                                │

00:07:53 #24116 [Verbose] > │     let v5 : UH0 = UH0_0                                                     │

00:07:53 #24117 [Verbose] > │     let v6 : UH0 = method1(v4, v5, v3, v2)                                   │

00:07:53 #24118 [Verbose] > │     let v7 : UH1 = v1 v6                                                     │

00:07:53 #24119 [Verbose] > │     let v8 : UH0 = UH0_0                                                     │

00:07:53 #24120 [Verbose] > │     let v9 : UH0 = method1(v4, v8, v7, v2)                                   │

00:07:53 #24121 [Verbose] > │     let v10 : UH1 = v1 v9                                                    │

00:07:53 #24122 [Verbose] > │     let v11 : UH0 = UH0_0                                                    │

00:07:53 #24123 [Verbose] > │     let v12 : UH0 = method1(v0, v11, v10, v2)                                │

00:07:53 #24124 [Verbose] > │     let v13 : UH1 = v1 v12                                                   │

00:07:53 #24125 [Verbose] > │     let v14 : float = v0 / 6.0                                               │

00:07:53 #24126 [Verbose] > │     let v15 : UH1 = UH1_0                                                    │

00:07:53 #24127 [Verbose] > │     let v16 : UH1 = method17(v15, v3, v7)                                    │

00:07:53 #24128 [Verbose] > │     let v17 : UH1 = UH1_0                                                    │

00:07:53 #24129 [Verbose] > │     let v18 : UH1 = method17(v17, v16, v7)                                   │

00:07:53 #24130 [Verbose] > │     let v19 : UH1 = UH1_0                                                    │

00:07:53 #24131 [Verbose] > │     let v20 : UH1 = method17(v19, v18, v10)                                  │

00:07:53 #24132 [Verbose] > │     let v21 : UH1 = UH1_0                                                    │

00:07:53 #24133 [Verbose] > │     let v22 : UH1 = method17(v21, v20, v10)                                  │

00:07:53 #24134 [Verbose] > │     let v23 : UH1 = UH1_0                                                    │

00:07:53 #24135 [Verbose] > │     let v24 : UH1 = method17(v23, v22, v13)                                  │

00:07:53 #24136 [Verbose] > │     let v25 : UH0 = UH0_0                                                    │

00:07:53 #24137 [Verbose] > │     let v26 : UH0 = method1(v14, v25, v24, v2)                               │

00:07:53 #24138 [Verbose] > │     v26                                                                      │

00:07:53 #24139 [Verbose] > │ and closure7 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =               │

00:07:53 #24140 [Verbose] > │     closure8(v0, v1)                                                         │

00:07:53 #24141 [Verbose] > │ and closure6 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =              │

00:07:53 #24142 [Verbose] > │     closure7(v0)                                                             │

00:07:53 #24143 [Verbose] > │ and method19 (v0 : UH4, v1 : UH5) : UH5 =                                    │

00:07:53 #24144 [Verbose] > │     match v0 with                                                            │

00:07:53 #24145 [Verbose] > │     | UH4_1(v2, v3) -> (* Cons *)                                            │

00:07:53 #24146 [Verbose] > │         let v4 : UH5 = method19(v3, v1)                                      │

00:07:53 #24147 [Verbose] > │         let v18 : US0 =                                                      │

00:07:53 #24148 [Verbose] > │             match v2 with                                                    │

00:07:53 #24149 [Verbose] > │             | UH0_1(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* Cons  │

00:07:53 #24150 [Verbose] > │ *)                                                                           │

00:07:53 #24151 [Verbose] > │                 US0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13)                │

00:07:53 #24152 [Verbose] > │             | UH0_0 -> (* Nil *)                                             │

00:07:53 #24153 [Verbose] > │                 US0_1                                                        │

00:07:53 #24154 [Verbose] > │         let struct (v46 : float, v47 : float, v48 : float, v49 : float, v50  │

00:07:53 #24155 [Verbose] > │ : float, v51 : float, v52 : float, v53 : float, v54 : float) =               │

00:07:53 #24156 [Verbose] > │             match v18 with                                                   │

00:07:53 #24157 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:07:53 #24158 [Verbose] > │                 failwith<struct (float * float * float * float * float *     │

00:07:53 #24159 [Verbose] > │ float * float * float * float)> "Option does not have a value."              │

00:07:53 #24160 [Verbose] > │             | US0_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some  │

00:07:53 #24161 [Verbose] > │ *)                                                                           │

00:07:53 #24162 [Verbose] > │                 struct (v19, v20, v21, v22, v23, v24, v25, v26, v27)         │

00:07:53 #24163 [Verbose] > │         let v55 : UH6 = UH6_0                                                │

00:07:53 #24164 [Verbose] > │         let v56 : UH6 = method13(v2, v55)                                    │

00:07:53 #24165 [Verbose] > │         let v57 : float = 0.0                                                │

00:07:53 #24166 [Verbose] > │         let v58 : float = method14(v56, v57)                                 │

00:07:53 #24167 [Verbose] > │         UH5_1(v51, v58, v4)                                                  │

00:07:53 #24168 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:07:53 #24169 [Verbose] > │         v1                                                                   │

00:07:53 #24170 [Verbose] > │ and method21 (v0 : UH6, v1 : int32) : int32 =                                │

00:07:53 #24171 [Verbose] > │     match v0 with                                                            │

00:07:53 #24172 [Verbose] > │     | UH6_1(v2, v3) -> (* Cons *)                                            │

00:07:53 #24173 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:07:53 #24174 [Verbose] > │         method21(v3, v4)                                                     │

00:07:53 #24175 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:07:53 #24176 [Verbose] > │         v1                                                                   │

00:07:53 #24177 [Verbose] > │ and method22 (v0 : (float []), v1 : UH6, v2 : int32) : int32 =               │

00:07:53 #24178 [Verbose] > │     match v1 with                                                            │

00:07:53 #24179 [Verbose] > │     | UH6_1(v3, v4) -> (* Cons *)                                            │

00:07:53 #24180 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:07:53 #24181 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:07:53 #24182 [Verbose] > │         method22(v0, v4, v5)                                                 │

00:07:53 #24183 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:07:53 #24184 [Verbose] > │         v2                                                                   │

00:07:53 #24185 [Verbose] > │ and method20 (v0 : UH6) : (float []) =                                       │

00:07:53 #24186 [Verbose] > │     let v1 : int32 = 0                                                       │

00:07:53 #24187 [Verbose] > │     let v2 : int32 = method21(v0, v1)                                        │

00:07:53 #24188 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │

00:07:53 #24189 [Verbose] > │     let v4 : int32 = 0                                                       │

00:07:53 #24190 [Verbose] > │     let v5 : int32 = method22(v3, v0, v4)                                    │

00:07:53 #24191 [Verbose] > │     v3                                                                       │

00:07:53 #24192 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:53 #24193 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:53 #24194 [Verbose] > │     let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0()          │

00:07:53 #24195 [Verbose] > │     let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03                        │

00:07:53 #24196 [Verbose] > │     let v2 : (UH0 -> UH1) = closure3()                                       │

00:07:53 #24197 [Verbose] > │     let v3 : (UH0 -> UH0) = v1 v2                                            │

00:07:53 #24198 [Verbose] > │     let v4 : UH4 = UH4_0                                                     │

00:07:53 #24199 [Verbose] > │     let v5 : int32 = 0                                                       │

00:07:53 #24200 [Verbose] > │     let v6 : UH4 = method9(v3, v4, v5)                                       │

00:07:53 #24201 [Verbose] > │     let v7 : UH5 = UH5_0                                                     │

00:07:53 #24202 [Verbose] > │     let v8 : UH5 = method12(v6, v7)                                          │

00:07:53 #24203 [Verbose] > │     let v9 : UH6 = UH6_0                                                     │

00:07:53 #24204 [Verbose] > │     let v10 : UH6 = UH6_0                                                    │

00:07:53 #24205 [Verbose] > │     let struct (v11 : UH6, v12 : UH6) = method15(v8, v9, v10)                │

00:07:53 #24206 [Verbose] > │     let v13 : UH6 = UH6_0                                                    │

00:07:53 #24207 [Verbose] > │     let v14 : UH6 = method16(v11, v13)                                       │

00:07:53 #24208 [Verbose] > │     let v15 : UH6 = UH6_0                                                    │

00:07:53 #24209 [Verbose] > │     let v16 : UH6 = method16(v12, v15)                                       │

00:07:53 #24210 [Verbose] > │     let v17 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure6()         │

00:07:53 #24211 [Verbose] > │     let v18 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v17 0.03                      │

00:07:53 #24212 [Verbose] > │     let v19 : (UH0 -> UH0) = v18 v2                                          │

00:07:53 #24213 [Verbose] > │     let v20 : UH4 = UH4_0                                                    │

00:07:53 #24214 [Verbose] > │     let v21 : int32 = 0                                                      │

00:07:53 #24215 [Verbose] > │     let v22 : UH4 = method9(v19, v20, v21)                                   │

00:07:53 #24216 [Verbose] > │     let v23 : UH5 = UH5_0                                                    │

00:07:53 #24217 [Verbose] > │     let v24 : UH5 = method19(v22, v23)                                       │

00:07:53 #24218 [Verbose] > │     let v25 : UH6 = UH6_0                                                    │

00:07:53 #24219 [Verbose] > │     let v26 : UH6 = UH6_0                                                    │

00:07:53 #24220 [Verbose] > │     let struct (v27 : UH6, v28 : UH6) = method15(v24, v25, v26)              │

00:07:53 #24221 [Verbose] > │     let v29 : UH6 = UH6_0                                                    │

00:07:53 #24222 [Verbose] > │     let v30 : UH6 = method16(v27, v29)                                       │

00:07:53 #24223 [Verbose] > │     let v31 : UH6 = UH6_0                                                    │

00:07:53 #24224 [Verbose] > │     let v32 : UH6 = method16(v28, v31)                                       │

00:07:53 #24225 [Verbose] > │     let v33 : (float []) = method20(v14)                                     │

00:07:53 #24226 [Verbose] > │     let v34 : (float []) = method20(v16)                                     │

00:07:53 #24227 [Verbose] > │     let v35 : (float []) = method20(v30)                                     │

00:07:53 #24228 [Verbose] > │     let v36 : (float []) = method20(v32)                                     │

00:07:53 #24229 [Verbose] > │     let v37 : string = "euler-cromer"                                        │

00:07:53 #24230 [Verbose] > │     let v38 : string = "runge-kutta 4"                                       │

00:07:53 #24231 [Verbose] > │     let v39 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:53 #24232 [Verbose] > │ (v37, v33, v34); struct (v38, v35, v36)|]                                    │

00:07:53 #24233 [Verbose] > │     let v40 : string = "system kinetic energy versus time"                   │

00:07:53 #24234 [Verbose] > │     let v41 : string = "time (s)"                                            │

00:07:53 #24235 [Verbose] > │     let v42 : string = "system kinetic energy (j)"                           │

00:07:53 #24236 [Verbose] > │     struct (v40, v41, v42, v39)                                              │

00:07:53 #24237 [Verbose] > │ method0()                                                                    │

00:07:53 #24238 [Verbose] > │                                                                              │

00:07:53 #24239 [Verbose] > │                                                                              │

00:07:53 #24240 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:53 #24241 [Verbose] >

00:07:53 #24242 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:53 #24243 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:53 #24244 [Verbose] > │ ### wave 1                                                                   │

00:07:53 #24245 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:53 #24246 [Verbose] >

00:07:53 #24247 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:53 #24248 [Verbose] > // // test

00:07:53 #24249 [Verbose] >

00:07:53 #24250 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =

00:07:53 #24251 [Verbose] >     inl r1 = st1.pos_vec

00:07:53 #24252 [Verbose] >     inl r2 = st2.pos_vec

00:07:53 #24253 [Verbose] >     inl r21 = r2 ^-^ r1

00:07:53 #24254 [Verbose] >     inl r21mag = magnitude r21

00:07:53 #24255 [Verbose] >     -k * (r21mag - re) *^ r21 ^/ r21mag

00:07:53 #24256 [Verbose] >

00:07:53 #24257 [Verbose] > inl fixed_linear_spring k re r1 =

00:07:53 #24258 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:53 #24259 [Verbose] >     linear_spring k re (particle_state { default_particle_state' with pos_vec =

00:07:53 #24260 [Verbose] > r1 })

00:07:53 #24261 [Verbose] >

00:07:53 #24262 [Verbose] > inl forces_string () =

00:07:53 #24263 [Verbose] >     [[

00:07:53 #24264 [Verbose] >         ExternalForce (0, fixed_linear_spring 5384 0 (zero_vec ()))

00:07:53 #24265 [Verbose] >         ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))

00:07:53 #24266 [Verbose] >     ]] /@ (

00:07:53 #24267 [Verbose] >         listm'.init_series 0 59 1

00:07:53 #24268 [Verbose] >         |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))

00:07:53 #24269 [Verbose] >     )

00:07:53 #24270 [Verbose] >

00:07:53 #24271 [Verbose] > inl string_update dt =

00:07:53 #24272 [Verbose] >     update_mps (runge_kutta_4 dt) (forces_string ())

00:07:53 #24273 [Verbose] >

00:07:53 #24274 [Verbose] > inl string_initial_overtone n =

00:07:53 #24275 [Verbose] >     inl ball_mass = 0.0008293 * 0.65 / 64

00:07:53 #24276 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:53 #24277 [Verbose] >     listm'.init_series 0.01 0.64 0.01

00:07:53 #24278 [Verbose] >     |> listm.map (fun x =>

00:07:53 #24279 [Verbose] >         inl y = 0.005 * sin (conv n * pi * x / 0.65)

00:07:53 #24280 [Verbose] >         particle_state {

00:07:53 #24281 [Verbose] >             default_particle_state' with

00:07:53 #24282 [Verbose] >                 mass = ball_mass

00:07:53 #24283 [Verbose] >                 pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()

00:07:53 #24284 [Verbose] >                 velocity = zero_vec ()

00:07:53 #24285 [Verbose] >         }

00:07:53 #24286 [Verbose] >     )

00:07:53 #24287 [Verbose] >     |> multi_particle_state

00:07:53 #24288 [Verbose] >

00:07:53 #24289 [Verbose] > inl string_initial_pluck () =

00:07:53 #24290 [Verbose] >     inl ball_mass = 0.0008293 * 0.65 / 64

00:07:53 #24291 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:53 #24292 [Verbose] >     listm'.init_series 0.01 0.64 0.01

00:07:53 #24293 [Verbose] >     |> listm.map (fun x =>

00:07:53 #24294 [Verbose] >         inl y =

00:07:53 #24295 [Verbose] >             inl n = if x <= 0.51 then 0 else 0.65

00:07:53 #24296 [Verbose] >             0.005 / (0.51 - n) * (x - n)

00:07:53 #24297 [Verbose] >         particle_state {

00:07:53 #24298 [Verbose] >             default_particle_state' with

00:07:53 #24299 [Verbose] >                 mass = ball_mass

00:07:53 #24300 [Verbose] >                 pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()

00:07:53 #24301 [Verbose] >                 velocity = zero_vec ()

00:07:53 #24302 [Verbose] >         }

00:07:53 #24303 [Verbose] >     )

00:07:53 #24304 [Verbose] >     |> multi_particle_state

00:07:53 #24305 [Verbose] >

00:07:53 #24306 [Verbose] > let main () =

00:07:53 #24307 [Verbose] >     inl ~frames = listm'.init_series 0 9 1f64

00:07:53 #24308 [Verbose] >     inl initial_state = string_initial_overtone 3i32

00:07:53 #24309 [Verbose] >     inl frames =

00:07:53 #24310 [Verbose] >         frames

00:07:53 #24311 [Verbose] >         |> listm.map (fun n =>

00:07:53 #24312 [Verbose] >             inl (multi_particle_state sts) =

00:07:53 #24313 [Verbose] >                 seq.iterate' (string_update 0.000025) initial_state |> fun f =>

00:07:53 #24314 [Verbose] > f 0f64

00:07:53 #24315 [Verbose] >             inl rs =

00:07:53 #24316 [Verbose] >                 [[ zero_vec () ]]

00:07:53 #24317 [Verbose] >                 /@ (sts |> listm.map (fun (particle_state st) => st.pos_vec))

00:07:53 #24318 [Verbose] >                 /@ [[ 0.65 *^ i_hat () ]]

00:07:53 #24319 [Verbose] >             inl x, y =

00:07:53 #24320 [Verbose] >                 rs

00:07:53 #24321 [Verbose] >                 |> listm.map (fun r => r.x, r.y)

00:07:53 #24322 [Verbose] >                 |> listm'.unzip

00:07:53 #24323 [Verbose] >             inl x : a i32 _ = x |> listm.toArray

00:07:53 #24324 [Verbose] >             inl y : a i32 _ = y |> listm.toArray

00:07:53 #24325 [Verbose] >             x, y

00:07:53 #24326 [Verbose] >         )

00:07:53 #24327 [Verbose] >         |> listm.toArray : a i32 _

00:07:53 #24328 [Verbose] >

00:07:53 #24329 [Verbose] >     inl n = 0i32

00:07:53 #24330 [Verbose] >

00:07:53 #24331 [Verbose] >     inl x, y = index frames n

00:07:53 #24332 [Verbose] >

00:07:53 #24333 [Verbose] >     "wave",

00:07:53 #24334 [Verbose] >     "position (m)",

00:07:53 #24335 [Verbose] >     "displacement (m)",

00:07:53 #24336 [Verbose] >     ;[[

00:07:53 #24337 [Verbose] >         ($"$\"{!n}\"" : string), x, y

00:07:53 #24338 [Verbose] >     ]]

00:07:54 #24339 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2609-0997-068973236328\main.spi

00:07:54 #24340 [Verbose] >

00:07:54 #24341 [Verbose] > ╭─[ 649.90ms - return value ]──────────────────────────────────────────────────╮

00:07:54 #24342 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:54 #24343 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:54 #24344 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:54 #24345 [Verbose] > │ stroke="none"/>                                                              │

00:07:54 #24346 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:54 #24347 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:54 #24348 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:54 #24349 [Verbose] > │ wave                                                                         │

00:07:54 #24350 [Verbose] > │ </text>                                                                      │

00:07:54 #24351 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │

00:07:54 #24352 [Verbose] > │ y2="75"/>                                                                    │

00:07:54 #24353 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:54 #24354 [Verbose] > │ y2="75"/>                                                                    │

00:07:54 #24355 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │

00:07:54 #24356 [Verbose] > │ y2="75"/>                                                                    │

00:07:54 #24357 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424" x2="85" │

00:07:54 #24358 [Verbose] > │ y2="75"/>                                                                    │

00:07:54 #24359 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" y1="424" x2="93" │

00:07:54 #24360 [Verbose] > │ y2...                                                                        │

00:07:54 #24361 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:54 #24362 [Verbose] >

00:07:54 #24363 [Verbose] > ╭─[ 671.39ms - stdout ]────────────────────────────────────────────────────────╮

00:07:54 #24364 [Verbose] > │ type UH0 =                                                                   │

00:07:54 #24365 [Verbose] > │     | UH0_0                                                                  │

00:07:54 #24366 [Verbose] > │     | UH0_1 of float * UH0                                                   │

00:07:54 #24367 [Verbose] > │ and UH1 =                                                                    │

00:07:54 #24368 [Verbose] > │     | UH1_0                                                                  │

00:07:54 #24369 [Verbose] > │     | UH1_1 of (float []) * (float []) * UH1                                 │

00:07:54 #24370 [Verbose] > │ let rec method3 (v0 : UH0, v1 : int32) : int32 =                             │

00:07:54 #24371 [Verbose] > │     match v0 with                                                            │

00:07:54 #24372 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:07:54 #24373 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:07:54 #24374 [Verbose] > │         method3(v3, v4)                                                      │

00:07:54 #24375 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:54 #24376 [Verbose] > │         v1                                                                   │

00:07:54 #24377 [Verbose] > │ and method4 (v0 : (float []), v1 : UH0, v2 : int32) : int32 =                │

00:07:54 #24378 [Verbose] > │     match v1 with                                                            │

00:07:54 #24379 [Verbose] > │     | UH0_1(v3, v4) -> (* Cons *)                                            │

00:07:54 #24380 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:07:54 #24381 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:07:54 #24382 [Verbose] > │         method4(v0, v4, v5)                                                  │

00:07:54 #24383 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:54 #24384 [Verbose] > │         v2                                                                   │

00:07:54 #24385 [Verbose] > │ and method2 (v0 : UH0) : (float []) =                                        │

00:07:54 #24386 [Verbose] > │     let v1 : int32 = 0                                                       │

00:07:54 #24387 [Verbose] > │     let v2 : int32 = method3(v0, v1)                                         │

00:07:54 #24388 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │

00:07:54 #24389 [Verbose] > │     let v4 : int32 = 0                                                       │

00:07:54 #24390 [Verbose] > │     let v5 : int32 = method4(v3, v0, v4)                                     │

00:07:54 #24391 [Verbose] > │     v3                                                                       │

00:07:54 #24392 [Verbose] > │ and method1 (v0 : UH0, v1 : UH1) : UH1 =                                     │

00:07:54 #24393 [Verbose] > │     match v0 with                                                            │

00:07:54 #24394 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:07:54 #24395 [Verbose] > │         let v4 : UH1 = method1(v3, v1)                                       │

00:07:54 #24396 [Verbose] > │         let v5 : float = 0.0                                                 │

00:07:54 #24397 [Verbose] > │         let v6 : float = 0.01                                                │

00:07:54 #24398 [Verbose] > │         let v7 : float = 0.02                                                │

00:07:54 #24399 [Verbose] > │         let v8 : float = 0.03                                                │

00:07:54 #24400 [Verbose] > │         let v9 : float = 0.04                                                │

00:07:54 #24401 [Verbose] > │         let v10 : float = 0.05                                               │

00:07:54 #24402 [Verbose] > │         let v11 : float = 0.060000000000000005                               │

00:07:54 #24403 [Verbose] > │         let v12 : float = 0.06999999999999999                                │

00:07:54 #24404 [Verbose] > │         let v13 : float = 0.08                                               │

00:07:54 #24405 [Verbose] > │         let v14 : float = 0.09                                               │

00:07:54 #24406 [Verbose] > │         let v15 : float = 0.09999999999999999                                │

00:07:54 #24407 [Verbose] > │         let v16 : float = 0.11                                               │

00:07:54 #24408 [Verbose] > │         let v17 : float = 0.12                                               │

00:07:54 #24409 [Verbose] > │         let v18 : float = 0.13                                               │

00:07:54 #24410 [Verbose] > │         let v19 : float = 0.14                                               │

00:07:54 #24411 [Verbose] > │         let v20 : float = 0.15000000000000002                                │

00:07:54 #24412 [Verbose] > │         let v21 : float = 0.16                                               │

00:07:54 #24413 [Verbose] > │         let v22 : float = 0.17                                               │

00:07:54 #24414 [Verbose] > │         let v23 : float = 0.18000000000000002                                │

00:07:54 #24415 [Verbose] > │         let v24 : float = 0.19                                               │

00:07:54 #24416 [Verbose] > │         let v25 : float = 0.2                                                │

00:07:54 #24417 [Verbose] > │         let v26 : float = 0.21000000000000002                                │

00:07:54 #24418 [Verbose] > │         let v27 : float = 0.22                                               │

00:07:54 #24419 [Verbose] > │         let v28 : float = 0.23                                               │

00:07:54 #24420 [Verbose] > │         let v29 : float = 0.24000000000000002                                │

00:07:54 #24421 [Verbose] > │         let v30 : float = 0.25                                               │

00:07:54 #24422 [Verbose] > │         let v31 : float = 0.26                                               │

00:07:54 #24423 [Verbose] > │         let v32 : float = 0.27                                               │

00:07:54 #24424 [Verbose] > │         let v33 : float = 0.28                                               │

00:07:54 #24425 [Verbose] > │         let v34 : float = 0.29000000000000004                                │

00:07:54 #24426 [Verbose] > │         let v35 : float = 0.3                                                │

00:07:54 #24427 [Verbose] > │         let v36 : float = 0.31                                               │

00:07:54 #24428 [Verbose] > │         let v37 : float = 0.32                                               │

00:07:54 #24429 [Verbose] > │         let v38 : float = 0.33                                               │

00:07:54 #24430 [Verbose] > │         let v39 : float = 0.34                                               │

00:07:54 #24431 [Verbose] > │         let v40 : float = 0.35000000000000003                                │

00:07:54 #24432 [Verbose] > │         let v41 : float = 0.36000000000000004                                │

00:07:54 #24433 [Verbose] > │         let v42 : float = 0.37                                               │

00:07:54 #24434 [Verbose] > │         let v43 : float = 0.38                                               │

00:07:54 #24435 [Verbose] > │         let v44 : float = 0.39                                               │

00:07:54 #24436 [Verbose] > │         let v45 : float = 0.4                                                │

00:07:54 #24437 [Verbose] > │         let v46 : float = 0.41000000000000003                                │

00:07:54 #24438 [Verbose] > │         let v47 : float = 0.42000000000000004                                │

00:07:54 #24439 [Verbose] > │         let v48 : float = 0.43                                               │

00:07:54 #24440 [Verbose] > │         let v49 : float = 0.44                                               │

00:07:54 #24441 [Verbose] > │         let v50 : float = 0.45                                               │

00:07:54 #24442 [Verbose] > │         let v51 : float = 0.46                                               │

00:07:54 #24443 [Verbose] > │         let v52 : float = 0.47000000000000003                                │

00:07:54 #24444 [Verbose] > │         let v53 : float = 0.48000000000000004                                │

00:07:54 #24445 [Verbose] > │         let v54 : float = 0.49                                               │

00:07:54 #24446 [Verbose] > │         let v55 : float = 0.5                                                │

00:07:54 #24447 [Verbose] > │         let v56 : float = 0.51                                               │

00:07:54 #24448 [Verbose] > │         let v57 : float = 0.52                                               │

00:07:54 #24449 [Verbose] > │         let v58 : float = 0.53                                               │

00:07:54 #24450 [Verbose] > │         let v59 : float = 0.54                                               │

00:07:54 #24451 [Verbose] > │         let v60 : float = 0.55                                               │

00:07:54 #24452 [Verbose] > │         let v61 : float = 0.56                                               │

00:07:54 #24453 [Verbose] > │         let v62 : float = 0.5700000000000001                                 │

00:07:54 #24454 [Verbose] > │         let v63 : float = 0.5800000000000001                                 │

00:07:54 #24455 [Verbose] > │         let v64 : float = 0.59                                               │

00:07:54 #24456 [Verbose] > │         let v65 : float = 0.6                                                │

00:07:54 #24457 [Verbose] > │         let v66 : float = 0.61                                               │

00:07:54 #24458 [Verbose] > │         let v67 : float = 0.62                                               │

00:07:54 #24459 [Verbose] > │         let v68 : float = 0.63                                               │

00:07:54 #24460 [Verbose] > │         let v69 : float = 0.64                                               │

00:07:54 #24461 [Verbose] > │         let v70 : float = 0.65                                               │

00:07:54 #24462 [Verbose] > │         let v71 : UH0 = UH0_0                                                │

00:07:54 #24463 [Verbose] > │         let v72 : UH0 = UH0_1(v70, v71)                                      │

00:07:54 #24464 [Verbose] > │         let v73 : UH0 = UH0_1(v69, v72)                                      │

00:07:54 #24465 [Verbose] > │         let v74 : UH0 = UH0_1(v68, v73)                                      │

00:07:54 #24466 [Verbose] > │         let v75 : UH0 = UH0_1(v67, v74)                                      │

00:07:54 #24467 [Verbose] > │         let v76 : UH0 = UH0_1(v66, v75)                                      │

00:07:54 #24468 [Verbose] > │         let v77 : UH0 = UH0_1(v65, v76)                                      │

00:07:54 #24469 [Verbose] > │         let v78 : UH0 = UH0_1(v64, v77)                                      │

00:07:54 #24470 [Verbose] > │         let v79 : UH0 = UH0_1(v63, v78)                                      │

00:07:54 #24471 [Verbose] > │         let v80 : UH0 = UH0_1(v62, v79)                                      │

00:07:54 #24472 [Verbose] > │         let v81 : UH0 = UH0_1(v61, v80)                                      │

00:07:54 #24473 [Verbose] > │         let v82 : UH0 = UH0_1(v60, v81)                                      │

00:07:54 #24474 [Verbose] > │         let v83 : UH0 = UH0_1(v59, v82)                                      │

00:07:54 #24475 [Verbose] > │         let v84 : UH0 = UH0_1(v58, v83)                                      │

00:07:54 #24476 [Verbose] > │         let v85 : UH0 = UH0_1(v57, v84)                                      │

00:07:54 #24477 [Verbose] > │         let v86 : UH0 = UH0_1(v56, v85)                                      │

00:07:54 #24478 [Verbose] > │         let v87 : UH0 = UH0_1(v55, v86)                                      │

00:07:54 #24479 [Verbose] > │         let v88 : UH0 = UH0_1(v54, v87)                                      │

00:07:54 #24480 [Verbose] > │         let v89 : UH0 = UH0_1(v53, v88)                                      │

00:07:54 #24481 [Verbose] > │         let v90 : UH0 = UH0_1(v52, v89)                                      │

00:07:54 #24482 [Verbose] > │         let v91 : UH0 = UH0_1(v51, v90)                                      │

00:07:54 #24483 [Verbose] > │         let v92 : UH0 = UH0_1(v50, v91)                                      │

00:07:54 #24484 [Verbose] > │         let v93 : UH0 = UH0_1(v49, v92)                                      │

00:07:54 #24485 [Verbose] > │         let v94 : UH0 = UH0_1(v48, v93)                                      │

00:07:54 #24486 [Verbose] > │         let v95 : UH0 = UH0_1(v47, v94)                                      │

00:07:54 #24487 [Verbose] > │         let v96 : UH0 = UH0_1(v46, v95)                                      │

00:07:54 #24488 [Verbose] > │         let v97 : UH0 = UH0_1(v45, v96)                                      │

00:07:54 #24489 [Verbose] > │         let v98 : UH0 = UH0_1(v44, v97)                                      │

00:07:54 #24490 [Verbose] > │         let v99 : UH0 = UH0_1(v43, v98)                                      │

00:07:54 #24491 [Verbose] > │         let v100 : UH0 = UH0_1(v42, v99)                                     │

00:07:54 #24492 [Verbose] > │         let v101 : UH0 = UH0_1(v41, v100)                                    │

00:07:54 #24493 [Verbose] > │         let v102 : UH0 = UH0_1(v40, v101)                                    │

00:07:54 #24494 [Verbose] > │         let v103 : UH0 = UH0_1(v39, v102)                                    │

00:07:54 #24495 [Verbose] > │         let v104 : UH0 = UH0_1(v38, v103)                                    │

00:07:54 #24496 [Verbose] > │         let v105 : UH0 = UH0_1(v37, v104)                                    │

00:07:54 #24497 [Verbose] > │         let v106 : UH0 = UH0_1(v36, v105)                                    │

00:07:54 #24498 [Verbose] > │         let v107 : UH0 = UH0_1(v35, v106)                                    │

00:07:54 #24499 [Verbose] > │         let v108 : UH0 = UH0_1(v34, v107)                                    │

00:07:54 #24500 [Verbose] > │         let v109 : UH0 = UH0_1(v33, v108)                                    │

00:07:54 #24501 [Verbose] > │         let v110 : UH0 = UH0_1(v32, v109)                                    │

00:07:54 #24502 [Verbose] > │         let v111 : UH0 = UH0_1(v31, v110)                                    │

00:07:54 #24503 [Verbose] > │         let v112 : UH0 = UH0_1(v30, v111)                                    │

00:07:54 #24504 [Verbose] > │         let v113 : UH0 = UH0_1(v29, v112)                                    │

00:07:54 #24505 [Verbose] > │         let v114 : UH0 = UH0_1(v28, v113)                                    │

00:07:54 #24506 [Verbose] > │         let v115 : UH0 = UH0_1(v27, v114)                                    │

00:07:54 #24507 [Verbose] > │         let v116 : UH0 = UH0_1(v26, v115)                                    │

00:07:54 #24508 [Verbose] > │         let v117 : UH0 = UH0_1(v25, v116)                                    │

00:07:54 #24509 [Verbose] > │         let v118 : UH0 = UH0_1(v24, v117)                                    │

00:07:54 #24510 [Verbose] > │         let v119 : UH0 = UH0_1(v23, v118)                                    │

00:07:54 #24511 [Verbose] > │         let v120 : UH0 = UH0_1(v22, v119)                                    │

00:07:54 #24512 [Verbose] > │         let v121 : UH0 = UH0_1(v21, v120)                                    │

00:07:54 #24513 [Verbose] > │         let v122 : UH0 = UH0_1(v20, v121)                                    │

00:07:54 #24514 [Verbose] > │         let v123 : UH0 = UH0_1(v19, v122)                                    │

00:07:54 #24515 [Verbose] > │         let v124 : UH0 = UH0_1(v18, v123)                                    │

00:07:54 #24516 [Verbose] > │         let v125 : UH0 = UH0_1(v17, v124)                                    │

00:07:54 #24517 [Verbose] > │         let v126 : UH0 = UH0_1(v16, v125)                                    │

00:07:54 #24518 [Verbose] > │         let v127 : UH0 = UH0_1(v15, v126)                                    │

00:07:54 #24519 [Verbose] > │         let v128 : UH0 = UH0_1(v14, v127)                                    │

00:07:54 #24520 [Verbose] > │         let v129 : UH0 = UH0_1(v13, v128)                                    │

00:07:54 #24521 [Verbose] > │         let v130 : UH0 = UH0_1(v12, v129)                                    │

00:07:54 #24522 [Verbose] > │         let v131 : UH0 = UH0_1(v11, v130)                                    │

00:07:54 #24523 [Verbose] > │         let v132 : UH0 = UH0_1(v10, v131)                                    │

00:07:54 #24524 [Verbose] > │         let v133 : UH0 = UH0_1(v9, v132)                                     │

00:07:54 #24525 [Verbose] > │         let v134 : UH0 = UH0_1(v8, v133)                                     │

00:07:54 #24526 [Verbose] > │         let v135 : UH0 = UH0_1(v7, v134)                                     │

00:07:54 #24527 [Verbose] > │         let v136 : UH0 = UH0_1(v6, v135)                                     │

00:07:54 #24528 [Verbose] > │         let v137 : UH0 = UH0_1(v5, v136)                                     │

00:07:54 #24529 [Verbose] > │         let v138 : (float []) = method2(v137)                                │

00:07:54 #24530 [Verbose] > │         let v139 : float = 0.0                                               │

00:07:54 #24531 [Verbose] > │         let v140 : float = 0.0007224452478461068                             │

00:07:54 #24532 [Verbose] > │         let v141 : float = 0.0014297283919934465                             │

00:07:54 #24533 [Verbose] > │         let v142 : float = 0.0021070055388626454                             │

00:07:54 #24534 [Verbose] > │         let v143 : float = 0.00274006253677335                               │

00:07:54 #24535 [Verbose] > │         let v144 : float = 0.0033156132912039757                             │

00:07:54 #24536 [Verbose] > │         let v145 : float = 0.0038215786027292415                             │

00:07:54 #24537 [Verbose] > │         let v146 : float = 0.004247339675607605                              │

00:07:54 #24538 [Verbose] > │         let v147 : float = 0.004583960976582912                              │

00:07:54 #24539 [Verbose] > │         let v148 : float = 0.004824377766717757                              │

00:07:54 #24540 [Verbose] > │         let v149 : float = 0.00496354437049027                               │

00:07:54 #24541 [Verbose] > │         let v150 : float = 0.004998540070400965                              │

00:07:54 #24542 [Verbose] > │         let v151 : float = 0.004928630404658255                              │

00:07:54 #24543 [Verbose] > │         let v152 : float = 0.004755282581475768                              │

00:07:54 #24544 [Verbose] > │         let v153 : float = 0.004482134686478519                              │

00:07:54 #24545 [Verbose] > │         let v154 : float = 0.0041149193294682815                             │

00:07:54 #24546 [Verbose] > │         let v155 : float = 0.0036613433329888666                             │

00:07:54 #24547 [Verbose] > │         let v156 : float = 0.0031309259876915697                             │

00:07:54 #24548 [Verbose] > │         let v157 : float = 0.002534799269067951                              │

00:07:54 #24549 [Verbose] > │         let v158 : float = 0.0018854742084416015                             │

00:07:54 #24550 [Verbose] > │         let v159 : float = 0.0011965783214377905                             │

00:07:54 #24551 [Verbose] > │         let v160 : float = 0.00048256960457257535                            │

00:07:54 #24552 [Verbose] > │         let v161 : float = -0.00024156689762753317                           │

00:07:54 #24553 [Verbose] > │         let v162 : float = -0.0009606335867685418                            │

00:07:54 #24554 [Verbose] > │         let v163 : float = -0.001659539265642642                             │

00:07:54 #24555 [Verbose] > │         let v164 : float = -0.002323615860218842                             │

00:07:54 #24556 [Verbose] > │         let v165 : float = -0.0029389262614623636                            │

00:07:54 #24557 [Verbose] > │         let v166 : float = -0.003492556826244686                             │

00:07:54 #24558 [Verbose] > │         let v167 : float = -0.003972888398568771                             │

00:07:54 #24559 [Verbose] > │         let v168 : float = -0.00436984016313259                              │

00:07:54 #24560 [Verbose] > │         let v169 : float = -0.004675081213427074                             │

00:07:54 #24561 [Verbose] > │         let v170 : float = -0.004882205394146359                             │

00:07:54 #24562 [Verbose] > │         let v171 : float = -0.004986865748457456                             │

00:07:54 #24563 [Verbose] > │         let v172 : float = -0.004986865748457456                             │

00:07:54 #24564 [Verbose] > │         let v173 : float = -0.004882205394146361                             │

00:07:54 #24565 [Verbose] > │         let v174 : float = -0.004675081213427074                             │

00:07:54 #24566 [Verbose] > │         let v175 : float = -0.004369840163132589                             │

00:07:54 #24567 [Verbose] > │         let v176 : float = -0.003972888398568774                             │

00:07:54 #24568 [Verbose] > │         let v177 : float = -0.0034925568262446837                            │

00:07:54 #24569 [Verbose] > │         let v178 : float = -0.002938926261462367                             │

00:07:54 #24570 [Verbose] > │         let v179 : float = -0.002323615860218846                             │

00:07:54 #24571 [Verbose] > │         let v180 : float = -0.0016595392656426435                            │

00:07:54 #24572 [Verbose] > │         let v181 : float = -0.0009606335867685414                            │

00:07:54 #24573 [Verbose] > │         let v182 : float = -0.00024156689762753724                           │

00:07:54 #24574 [Verbose] > │         let v183 : float = 0.0004825696045725713                             │

00:07:54 #24575 [Verbose] > │         let v184 : float = 0.0011965783214377866                             │

00:07:54 #24576 [Verbose] > │         let v185 : float = 0.0018854742084416021                             │

00:07:54 #24577 [Verbose] > │         let v186 : float = 0.002534799269067953                              │

00:07:54 #24578 [Verbose] > │         let v187 : float = 0.003130925987691568                              │

00:07:54 #24579 [Verbose] > │         let v188 : float = 0.0036613433329888622                             │

00:07:54 #24580 [Verbose] > │         let v189 : float = 0.0041149193294682815                             │

00:07:54 #24581 [Verbose] > │         let v190 : float = 0.0044821346864785195                             │

00:07:54 #24582 [Verbose] > │         let v191 : float = 0.004755282581475766                              │

00:07:54 #24583 [Verbose] > │         let v192 : float = 0.004928630404658255                              │

00:07:54 #24584 [Verbose] > │         let v193 : float = 0.004998540070400965                              │

00:07:54 #24585 [Verbose] > │         let v194 : float = 0.004963544370490271                              │

00:07:54 #24586 [Verbose] > │         let v195 : float = 0.004824377766717758                              │

00:07:54 #24587 [Verbose] > │         let v196 : float = 0.004583960976582912                              │

00:07:54 #24588 [Verbose] > │         let v197 : float = 0.004247339675607605                              │

00:07:54 #24589 [Verbose] > │         let v198 : float = 0.003821578602729245                              │

00:07:54 #24590 [Verbose] > │         let v199 : float = 0.0033156132912039783                             │

00:07:54 #24591 [Verbose] > │         let v200 : float = 0.0027400625367733585                             │

00:07:54 #24592 [Verbose] > │         let v201 : float = 0.0021070055388626528                             │

00:07:54 #24593 [Verbose] > │         let v202 : float = 0.001429728391993452                              │

00:07:54 #24594 [Verbose] > │         let v203 : float = 0.0007224452478461016                             │

00:07:54 #24595 [Verbose] > │         let v204 : float = 0.0                                               │

00:07:54 #24596 [Verbose] > │         let v205 : UH0 = UH0_0                                               │

00:07:54 #24597 [Verbose] > │         let v206 : UH0 = UH0_1(v204, v205)                                   │

00:07:54 #24598 [Verbose] > │         let v207 : UH0 = UH0_1(v203, v206)                                   │

00:07:54 #24599 [Verbose] > │         let v208 : UH0 = UH0_1(v202, v207)                                   │

00:07:54 #24600 [Verbose] > │         let v209 : UH0 = UH0_1(v201, v208)                                   │

00:07:54 #24601 [Verbose] > │         let v210 : UH0 = UH0_1(v200, v209)                                   │

00:07:54 #24602 [Verbose] > │         let v211 : UH0 = UH0_1(v199, v210)                                   │

00:07:54 #24603 [Verbose] > │         let v212 : UH0 = UH0_1(v198, v211)                                   │

00:07:54 #24604 [Verbose] > │         let v213 : UH0 = UH0_1(v197, v212)                                   │

00:07:54 #24605 [Verbose] > │         let v214 : UH0 = UH0_1(v196, v213)                                   │

00:07:54 #24606 [Verbose] > │         let v215 : UH0 = UH0_1(v195, v214)                                   │

00:07:54 #24607 [Verbose] > │         let v216 : UH0 = UH0_1(v194, v215)                                   │

00:07:54 #24608 [Verbose] > │         let v217 : UH0 = UH0_1(v193, v216)                                   │

00:07:54 #24609 [Verbose] > │         let v218 : UH0 = UH0_1(v192, v217)                                   │

00:07:54 #24610 [Verbose] > │         let v219 : UH0 = UH0_1(v191, v218)                                   │

00:07:54 #24611 [Verbose] > │         let v220 : UH0 = UH0_1(v190, v219)                                   │

00:07:54 #24612 [Verbose] > │         let v221 : UH0 = UH0_1(v189, v220)                                   │

00:07:54 #24613 [Verbose] > │         let v222 : UH0 = UH0_1(v188, v221)                                   │

00:07:54 #24614 [Verbose] > │         let v223 : UH0 = UH0_1(v187, v222)                                   │

00:07:54 #24615 [Verbose] > │         let v224 : UH0 = UH0_1(v186, v223)                                   │

00:07:54 #24616 [Verbose] > │         let v225 : UH0 = UH0_1(v185, v224)                                   │

00:07:54 #24617 [Verbose] > │         let v226 : UH0 = UH0_1(v184, v225)                                   │

00:07:54 #24618 [Verbose] > │         let v227 : UH0 = UH0_1(v183, v226)                                   │

00:07:54 #24619 [Verbose] > │         let v228 : UH0 = UH0_1(v182, v227)                                   │

00:07:54 #24620 [Verbose] > │         let v229 : UH0 = UH0_1(v181, v228)                                   │

00:07:54 #24621 [Verbose] > │         let v230 : UH0 = UH0_1(v180, v229)                                   │

00:07:54 #24622 [Verbose] > │         let v231 : UH0 = UH0_1(v179, v230)                                   │

00:07:54 #24623 [Verbose] > │         let v232 : UH0 = UH0_1(v178, v231)                                   │

00:07:54 #24624 [Verbose] > │         let v233 : UH0 = UH0_1(v177, v232)                                   │

00:07:54 #24625 [Verbose] > │         let v234 : UH0 = UH0_1(v176, v233)                                   │

00:07:54 #24626 [Verbose] > │         let v235 : UH0 = UH0_1(v175, v234)                                   │

00:07:54 #24627 [Verbose] > │         let v236 : UH0 = UH0_1(v174, v235)                                   │

00:07:54 #24628 [Verbose] > │         let v237 : UH0 = UH0_1(v173, v236)                                   │

00:07:54 #24629 [Verbose] > │         let v238 : UH0 = UH0_1(v172, v237)                                   │

00:07:54 #24630 [Verbose] > │         let v239 : UH0 = UH0_1(v171, v238)                                   │

00:07:54 #24631 [Verbose] > │         let v240 : UH0 = UH0_1(v170, v239)                                   │

00:07:54 #24632 [Verbose] > │         let v241 : UH0 = UH0_1(v169, v240)                                   │

00:07:54 #24633 [Verbose] > │         let v242 : UH0 = UH0_1(v168, v241)                                   │

00:07:54 #24634 [Verbose] > │         let v243 : UH0 = UH0_1(v167, v242)                                   │

00:07:54 #24635 [Verbose] > │         let v244 : UH0 = UH0_1(v166, v243)                                   │

00:07:54 #24636 [Verbose] > │         let v245 : UH0 = UH0_1(v165, v244)                                   │

00:07:54 #24637 [Verbose] > │         let v246 : UH0 = UH0_1(v164, v245)                                   │

00:07:54 #24638 [Verbose] > │         let v247 : UH0 = UH0_1(v163, v246)                                   │

00:07:54 #24639 [Verbose] > │         let v248 : UH0 = UH0_1(v162, v247)                                   │

00:07:54 #24640 [Verbose] > │         let v249 : UH0 = UH0_1(v161, v248)                                   │

00:07:54 #24641 [Verbose] > │         let v250 : UH0 = UH0_1(v160, v249)                                   │

00:07:54 #24642 [Verbose] > │         let v251 : UH0 = UH0_1(v159, v250)                                   │

00:07:54 #24643 [Verbose] > │         let v252 : UH0 = UH0_1(v158, v251)                                   │

00:07:54 #24644 [Verbose] > │         let v253 : UH0 = UH0_1(v157, v252)                                   │

00:07:54 #24645 [Verbose] > │         let v254 : UH0 = UH0_1(v156, v253)                                   │

00:07:54 #24646 [Verbose] > │         let v255 : UH0 = UH0_1(v155, v254)                                   │

00:07:54 #24647 [Verbose] > │         let v256 : UH0 = UH0_1(v154, v255)                                   │

00:07:54 #24648 [Verbose] > │         let v257 : UH0 = UH0_1(v153, v256)                                   │

00:07:54 #24649 [Verbose] > │         let v258 : UH0 = UH0_1(v152, v257)                                   │

00:07:54 #24650 [Verbose] > │         let v259 : UH0 = UH0_1(v151, v258)                                   │

00:07:54 #24651 [Verbose] > │         let v260 : UH0 = UH0_1(v150, v259)                                   │

00:07:54 #24652 [Verbose] > │         let v261 : UH0 = UH0_1(v149, v260)                                   │

00:07:54 #24653 [Verbose] > │         let v262 : UH0 = UH0_1(v148, v261)                                   │

00:07:54 #24654 [Verbose] > │         let v263 : UH0 = UH0_1(v147, v262)                                   │

00:07:54 #24655 [Verbose] > │         let v264 : UH0 = UH0_1(v146, v263)                                   │

00:07:54 #24656 [Verbose] > │         let v265 : UH0 = UH0_1(v145, v264)                                   │

00:07:54 #24657 [Verbose] > │         let v266 : UH0 = UH0_1(v144, v265)                                   │

00:07:54 #24658 [Verbose] > │         let v267 : UH0 = UH0_1(v143, v266)                                   │

00:07:54 #24659 [Verbose] > │         let v268 : UH0 = UH0_1(v142, v267)                                   │

00:07:54 #24660 [Verbose] > │         let v269 : UH0 = UH0_1(v141, v268)                                   │

00:07:54 #24661 [Verbose] > │         let v270 : UH0 = UH0_1(v140, v269)                                   │

00:07:54 #24662 [Verbose] > │         let v271 : UH0 = UH0_1(v139, v270)                                   │

00:07:54 #24663 [Verbose] > │         let v272 : (float []) = method2(v271)                                │

00:07:54 #24664 [Verbose] > │         UH1_1(v138, v272, v4)                                                │

00:07:54 #24665 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:07:54 #24666 [Verbose] > │         v1                                                                   │

00:07:54 #24667 [Verbose] > │ and method6 (v0 : UH1, v1 : int32) : int32 =                                 │

00:07:54 #24668 [Verbose] > │     match v0 with                                                            │

00:07:54 #24669 [Verbose] > │     | UH1_1(v2, v3, v4) -> (* Cons *)                                        │

00:07:54 #24670 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:07:54 #24671 [Verbose] > │         method6(v4, v5)                                                      │

00:07:54 #24672 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:54 #24673 [Verbose] > │         v1                                                                   │

00:07:54 #24674 [Verbose] > │ and method7 (v0 : (struct ((float []) * (float [])) []), v1 : UH1, v2 :      │

00:07:54 #24675 [Verbose] > │ int32) : int32 =                                                             │

00:07:54 #24676 [Verbose] > │     match v1 with                                                            │

00:07:54 #24677 [Verbose] > │     | UH1_1(v3, v4, v5) -> (* Cons *)                                        │

00:07:54 #24678 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:07:54 #24679 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:07:54 #24680 [Verbose] > │         method7(v0, v5, v6)                                                  │

00:07:54 #24681 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:07:54 #24682 [Verbose] > │         v2                                                                   │

00:07:54 #24683 [Verbose] > │ and method5 (v0 : UH1) : (struct ((float []) * (float [])) []) =             │

00:07:54 #24684 [Verbose] > │     let v1 : int32 = 0                                                       │

00:07:54 #24685 [Verbose] > │     let v2 : int32 = method6(v0, v1)                                         │

00:07:54 #24686 [Verbose] > │     let v3 : (struct ((float []) * (float [])) []) = Array.zeroCreate<struct │

00:07:54 #24687 [Verbose] > │ ((float []) * (float []))> (v2)                                              │

00:07:54 #24688 [Verbose] > │     let v4 : int32 = 0                                                       │

00:07:54 #24689 [Verbose] > │     let v5 : int32 = method7(v3, v0, v4)                                     │

00:07:54 #24690 [Verbose] > │     v3                                                                       │

00:07:54 #24691 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:54 #24692 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:54 #24693 [Verbose] > │     let v0 : float = 0.0                                                     │

00:07:54 #24694 [Verbose] > │     let v1 : float = 1.0                                                     │

00:07:54 #24695 [Verbose] > │     let v2 : float = 2.0                                                     │

00:07:54 #24696 [Verbose] > │     let v3 : float = 3.0                                                     │

00:07:54 #24697 [Verbose] > │     let v4 : float = 4.0                                                     │

00:07:54 #24698 [Verbose] > │     let v5 : float = 5.0                                                     │

00:07:54 #24699 [Verbose] > │     let v6 : float = 6.0                                                     │

00:07:54 #24700 [Verbose] > │     let v7 : float = 7.0                                                     │

00:07:54 #24701 [Verbose] > │     let v8 : float = 8.0                                                     │

00:07:54 #24702 [Verbose] > │     let v9 : float = 9.0                                                     │

00:07:54 #24703 [Verbose] > │     let v10 : UH0 = UH0_0                                                    │

00:07:54 #24704 [Verbose] > │     let v11 : UH0 = UH0_1(v9, v10)                                           │

00:07:54 #24705 [Verbose] > │     let v12 : UH0 = UH0_1(v8, v11)                                           │

00:07:54 #24706 [Verbose] > │     let v13 : UH0 = UH0_1(v7, v12)                                           │

00:07:54 #24707 [Verbose] > │     let v14 : UH0 = UH0_1(v6, v13)                                           │

00:07:54 #24708 [Verbose] > │     let v15 : UH0 = UH0_1(v5, v14)                                           │

00:07:54 #24709 [Verbose] > │     let v16 : UH0 = UH0_1(v4, v15)                                           │

00:07:54 #24710 [Verbose] > │     let v17 : UH0 = UH0_1(v3, v16)                                           │

00:07:54 #24711 [Verbose] > │     let v18 : UH0 = UH0_1(v2, v17)                                           │

00:07:54 #24712 [Verbose] > │     let v19 : UH0 = UH0_1(v1, v18)                                           │

00:07:54 #24713 [Verbose] > │     let v20 : UH0 = UH0_1(v0, v19)                                           │

00:07:54 #24714 [Verbose] > │     let v21 : UH1 = UH1_0                                                    │

00:07:54 #24715 [Verbose] > │     let v22 : UH1 = method1(v20, v21)                                        │

00:07:54 #24716 [Verbose] > │     let v23 : (struct ((float []) * (float [])) []) = method5(v22)           │

00:07:54 #24717 [Verbose] > │     let struct (v24 : (float []), v25 : (float [])) = v23.[int 0]            │

00:07:54 #24718 [Verbose] > │     let v26 : string = $"{0}"                                                │

00:07:54 #24719 [Verbose] > │     let v27 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:54 #24720 [Verbose] > │ (v26, v24, v25)|]                                                            │

00:07:54 #24721 [Verbose] > │     let v28 : string = "wave"                                                │

00:07:54 #24722 [Verbose] > │     let v29 : string = "position (m)"                                        │

00:07:54 #24723 [Verbose] > │     let v30 : string = "displacement (m)"                                    │

00:07:54 #24724 [Verbose] > │     struct (v28, v29, v30, v27)                                              │

00:07:54 #24725 [Verbose] > │ method0()                                                                    │

00:07:54 #24726 [Verbose] > │                                                                              │

00:07:54 #24727 [Verbose] > │                                                                              │

00:07:54 #24728 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:54 #24729 [Verbose] >

00:07:54 #24730 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:54 #24731 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:54 #24732 [Verbose] > │ ### system kinetic energy versus time 2                                      │

00:07:54 #24733 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:54 #24734 [Verbose] >

00:07:54 #24735 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:54 #24736 [Verbose] > // // test

00:07:54 #24737 [Verbose] >

00:07:54 #24738 [Verbose] > inl central_force f (particle_state st1) (particle_state st2) =

00:07:54 #24739 [Verbose] >     inl r1 = st1.pos_vec

00:07:54 #24740 [Verbose] >     inl r2 = st2.pos_vec

00:07:54 #24741 [Verbose] >     inl r21 = r2 ^-^ r1

00:07:54 #24742 [Verbose] >     inl r21mag = magnitude r21

00:07:54 #24743 [Verbose] >     f r21mag *^ r21 ^/ r21mag

00:07:54 #24744 [Verbose] >

00:07:54 #24745 [Verbose] > inl billiard_force k re =

00:07:54 #24746 [Verbose] >     inl f r =

00:07:54 #24747 [Verbose] >         if r >= re

00:07:54 #24748 [Verbose] >         then 0

00:07:54 #24749 [Verbose] >         else -k * (r - re)

00:07:54 #24750 [Verbose] >     central_force f

00:07:54 #24751 [Verbose] >

00:07:54 #24752 [Verbose] > type force_vector = vec

00:07:54 #24753 [Verbose] > type two_body_force = particle_state -> particle_state -> force_vector

00:07:54 #24754 [Verbose] >

00:07:54 #24755 [Verbose] > union force t =

00:07:54 #24756 [Verbose] >     | ExternalForce : t * one_body_force

00:07:54 #24757 [Verbose] >     | InternalForce : t * t * two_body_force

00:07:54 #24758 [Verbose] >

00:07:54 #24759 [Verbose] > nominal multi_particle_state = stream.stream particle_state

00:07:54 #24760 [Verbose] >

00:07:54 #24761 [Verbose] > nominal d_multi_particle_state = stream.stream d_particle_state

00:07:54 #24762 [Verbose] >

00:07:54 #24763 [Verbose] > inl force_on n s force =

00:07:54 #24764 [Verbose] >     match force with

00:07:54 #24765 [Verbose] >     | ExternalForce (n0, f_one_body) =>

00:07:54 #24766 [Verbose] >         if n = n0

00:07:54 #24767 [Verbose] >         then f_one_body

00:07:54 #24768 [Verbose] >         else fun _ => zero_vec ()

00:07:54 #24769 [Verbose] >     | InternalForce (n0, n1, f_two_body) =>

00:07:54 #24770 [Verbose] >         if n = n0

00:07:54 #24771 [Verbose] >         then s |> stream.try_item n1 |> optionm.map f_two_body

00:07:54 #24772 [Verbose] >         elif n = n1

00:07:54 #24773 [Verbose] >         then s |> stream.try_item n0 |> optionm.map f_two_body

00:07:54 #24774 [Verbose] >         else None

00:07:54 #24775 [Verbose] >         |> optionm'.default_value (fun _ => zero_vec ())

00:07:54 #24776 [Verbose] >

00:07:54 #24777 [Verbose] > inl forces_on n (multi_particle_state sts) fs =

00:07:54 #24778 [Verbose] >     fs

00:07:54 #24779 [Verbose] >     |> listm.map (force_on n sts)

00:07:54 #24780 [Verbose] >

00:07:54 #24781 [Verbose] > inl newton_second_mps fs ((multi_particle_state sts) as mpst) =

00:07:54 #24782 [Verbose] >     inl deriv (n, st) =

00:07:54 #24783 [Verbose] >         newton_second_ps (forces_on n mpst fs) st

00:07:54 #24784 [Verbose] >     sts |> stream.indexed |> stream.map deriv |> d_multi_particle_state

00:07:54 #24785 [Verbose] >

00:07:54 #24786 [Verbose] > instance (+++) d_multi_particle_state =

00:07:54 #24787 [Verbose] >     fun (d_multi_particle_state dsts1) (d_multi_particle_state dsts2) =>

00:07:54 #24788 [Verbose] >         (dsts1, dsts2)

00:07:54 #24789 [Verbose] >         ||> stream.zip_with (+++)

00:07:54 #24790 [Verbose] >         |> d_multi_particle_state

00:07:54 #24791 [Verbose] >

00:07:54 #24792 [Verbose] > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) =>

00:07:54 #24793 [Verbose] >     dsts

00:07:54 #24794 [Verbose] >     |> stream.map (scale w)

00:07:54 #24795 [Verbose] >     |> d_multi_particle_state

00:07:54 #24796 [Verbose] >

00:07:54 #24797 [Verbose] > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) =>

00:07:54 #24798 [Verbose] >     inl (d_multi_particle_state dsts) =

00:07:54 #24799 [Verbose] >         real

00:07:54 #24800 [Verbose] >             match dsts with

00:07:54 #24801 [Verbose] >             | d_multi_particle_state _ => dsts

00:07:54 #24802 [Verbose] >     (dsts, sts)

00:07:54 #24803 [Verbose] >     ||> stream.zip_with (shift dt)

00:07:54 #24804 [Verbose] >     |> stream.memoize

00:07:54 #24805 [Verbose] >     |> fun x => x ()

00:07:54 #24806 [Verbose] >     |> multi_particle_state

00:07:54 #24807 [Verbose] >

00:07:54 #24808 [Verbose] > inl euler_cromer_mps dt : numerical_method multi_particle_state

00:07:54 #24809 [Verbose] > d_multi_particle_state =

00:07:54 #24810 [Verbose] >     fun deriv ((multi_particle_state sts0) as mpst0) =>

00:07:54 #24811 [Verbose] >         inl (multi_particle_state sts1) = euler dt deriv mpst0

00:07:54 #24812 [Verbose] >         (sts0, sts1)

00:07:54 #24813 [Verbose] >         ||> stream.zip

00:07:54 #24814 [Verbose] >         |> stream.map (fun ((particle_state st0), (particle_state st1)) =>

00:07:54 #24815 [Verbose] >             particle_state {

00:07:54 #24816 [Verbose] >                 st1 with

00:07:54 #24817 [Verbose] >                     pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt

00:07:54 #24818 [Verbose] >             }

00:07:54 #24819 [Verbose] >         )

00:07:54 #24820 [Verbose] >         |> multi_particle_state

00:07:54 #24821 [Verbose] >

00:07:54 #24822 [Verbose] > inl update_mps (method : numerical_method multi_particle_state

00:07:54 #24823 [Verbose] > d_multi_particle_state) =

00:07:54 #24824 [Verbose] >     newton_second_mps >> method

00:07:54 #24825 [Verbose] >

00:07:54 #24826 [Verbose] > inl states_mps (method : numerical_method multi_particle_state

00:07:54 #24827 [Verbose] > d_multi_particle_state) =

00:07:54 #24828 [Verbose] >     newton_second_mps

00:07:54 #24829 [Verbose] >     >> method

00:07:54 #24830 [Verbose] >     >> (fun x (multi_particle_state y) =>

00:07:54 #24831 [Verbose] >         y

00:07:54 #24832 [Verbose] >         |> stream.memoize

00:07:54 #24833 [Verbose] >         |> (fun x => x ())

00:07:54 #24834 [Verbose] >         |> multi_particle_state |> x

00:07:54 #24835 [Verbose] >     )

00:07:54 #24836 [Verbose] >     // >> stream.iterate

00:07:54 #24837 [Verbose] >     >> seq.iterate'

00:07:54 #24838 [Verbose] >

00:07:54 #24839 [Verbose] > inl kinetic_energy (particle_state st) =

00:07:54 #24840 [Verbose] >     inl m = st.mass

00:07:54 #24841 [Verbose] >     inl v = magnitude st.velocity

00:07:54 #24842 [Verbose] >     0.5 * m * v ** 2

00:07:54 #24843 [Verbose] >

00:07:54 #24844 [Verbose] > inl system_ke (multi_particle_state sts) =

00:07:54 #24845 [Verbose] >     sts

00:07:54 #24846 [Verbose] >     |> stream.map kinetic_energy

00:07:54 #24847 [Verbose] >     |> stream.sum

00:07:54 #24848 [Verbose] >

00:07:54 #24849 [Verbose] > inl linear_spring_pe k re (particle_state st1) (particle_state st2) =

00:07:54 #24850 [Verbose] >     inl r1 = st1.pos_vec

00:07:54 #24851 [Verbose] >     inl r2 = st2.pos_vec

00:07:54 #24852 [Verbose] >     inl r21 = r2 ^-^ r1

00:07:54 #24853 [Verbose] >     inl r21mag = magnitude r21

00:07:54 #24854 [Verbose] >     k * (r21mag - re) ** 2 / 2

00:07:54 #24855 [Verbose] >

00:07:54 #24856 [Verbose] > inl earth_surface_gravity_pe (particle_state st) =

00:07:54 #24857 [Verbose] >     inl g = 9.80665

00:07:54 #24858 [Verbose] >     inl m = st.mass

00:07:54 #24859 [Verbose] >     inl z = st.pos_vec.z

00:07:54 #24860 [Verbose] >     m * g * z

00:07:54 #24861 [Verbose] >

00:07:54 #24862 [Verbose] > inl ball_radius () = 0.03

00:07:54 #24863 [Verbose] >

00:07:54 #24864 [Verbose] > inl billiard_forces k =

00:07:54 #24865 [Verbose] >     [[ InternalForce (0i32, 1, billiard_force k (2 * ball_radius ())) ]]

00:07:54 #24866 [Verbose] >

00:07:54 #24867 [Verbose] > inl billiard_initial () =

00:07:54 #24868 [Verbose] >     inl ball_mass = 0.160

00:07:54 #24869 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:54 #24870 [Verbose] >     [[

00:07:54 #24871 [Verbose] >         particle_state {

00:07:54 #24872 [Verbose] >             default_particle_state' with

00:07:54 #24873 [Verbose] >                 mass = ball_mass

00:07:54 #24874 [Verbose] >                 pos_vec = zero_vec ()

00:07:54 #24875 [Verbose] >                 velocity = 0.2 *^ i_hat ()

00:07:54 #24876 [Verbose] >         }

00:07:54 #24877 [Verbose] >         particle_state {

00:07:54 #24878 [Verbose] >             default_particle_state' with

00:07:54 #24879 [Verbose] >                 mass = ball_mass

00:07:54 #24880 [Verbose] >                 pos_vec = i_hat () ^+^ 0.02 *^ j_hat ()

00:07:54 #24881 [Verbose] >                 velocity = zero_vec ()

00:07:54 #24882 [Verbose] >         }

00:07:54 #24883 [Verbose] >     ]]

00:07:54 #24884 [Verbose] >     |> stream.from_list

00:07:54 #24885 [Verbose] >     |> multi_particle_state

00:07:54 #24886 [Verbose] >

00:07:54 #24887 [Verbose] > inl billiard_states ~n_method k dt =

00:07:54 #24888 [Verbose] >     states_mps (n_method dt) (billiard_forces k) (billiard_initial ())

00:07:54 #24889 [Verbose] >

00:07:54 #24890 [Verbose] > inl billiard_states_finite n_method k dt =

00:07:54 #24891 [Verbose] >     billiard_states n_method k dt

00:07:54 #24892 [Verbose] >     >> Some

00:07:54 #24893 [Verbose] >     |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) =>

00:07:54 #24894 [Verbose] >         match mpst |> stream.try_item 0i32 with

00:07:54 #24895 [Verbose] >         | Some st =>

00:07:54 #24896 [Verbose] >             st.time <= 10

00:07:54 #24897 [Verbose] >         | None => false

00:07:54 #24898 [Verbose] >     )

00:07:54 #24899 [Verbose] >

00:07:54 #24900 [Verbose] > inl momentum (particle_state st) =

00:07:54 #24901 [Verbose] >     inl m = st.mass

00:07:54 #24902 [Verbose] >     inl v = st.velocity

00:07:54 #24903 [Verbose] >     m *^ v

00:07:54 #24904 [Verbose] >

00:07:54 #24905 [Verbose] > inl system_p (multi_particle_state sts) =

00:07:54 #24906 [Verbose] >     sts

00:07:54 #24907 [Verbose] >     |> stream.map momentum

00:07:54 #24908 [Verbose] >     |> stream.fold (^+^) (zero_vec ())

00:07:54 #24909 [Verbose] >

00:07:54 #24910 [Verbose] > inl time_ke_ec_x, time_ke_ec_y =

00:07:54 #24911 [Verbose] >     billiard_states_finite euler_cromer_mps 30 0.03

00:07:54 #24912 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>

00:07:54 #24913 [Verbose] >         mpst |> stream.try_item 0i32

00:07:54 #24914 [Verbose] >         |> optionm.map (fun st =>

00:07:54 #24915 [Verbose] >             st.time, system_ke (multi_particle_state mpst)

00:07:54 #24916 [Verbose] >         )

00:07:54 #24917 [Verbose] >     )

00:07:54 #24918 [Verbose] >     // |> stream.to_list

00:07:54 #24919 [Verbose] >     |> listm'.choose id

00:07:54 #24920 [Verbose] >     |> listm'.unzip

00:07:54 #24921 [Verbose] >

00:07:54 #24922 [Verbose] > inl time_ke_rk4_x, time_ke_rk4_y =

00:07:54 #24923 [Verbose] >     billiard_states_finite runge_kutta_4 30 0.03

00:07:54 #24924 [Verbose] >     |> listm.map (fun (multi_particle_state mpst) =>

00:07:54 #24925 [Verbose] >         mpst |> stream.try_item 0i32

00:07:54 #24926 [Verbose] >         |> optionm.map (fun st =>

00:07:54 #24927 [Verbose] >             st.time, system_ke (multi_particle_state mpst)

00:07:54 #24928 [Verbose] >         )

00:07:54 #24929 [Verbose] >     )

00:07:54 #24930 [Verbose] >     // |> stream.to_list

00:07:54 #24931 [Verbose] >     |> listm'.choose id

00:07:54 #24932 [Verbose] >     |> listm'.unzip

00:07:54 #24933 [Verbose] >

00:07:54 #24934 [Verbose] > inl time_ke_ec_x : a i32 _ = time_ke_ec_x |> listm.toArray

00:07:54 #24935 [Verbose] > inl time_ke_ec_y : a i32 _ = time_ke_ec_y |> listm.toArray

00:07:54 #24936 [Verbose] >

00:07:54 #24937 [Verbose] > inl time_ke_rk4_x : a i32 _ = time_ke_rk4_x |> listm.toArray

00:07:54 #24938 [Verbose] > inl time_ke_rk4_y : a i32 _ = time_ke_rk4_y |> listm.toArray

00:07:54 #24939 [Verbose] >

00:07:54 #24940 [Verbose] > "system kinetic energy versus time",

00:07:54 #24941 [Verbose] > "time (s)",

00:07:54 #24942 [Verbose] > "system kinetic energy (j)",

00:07:54 #24943 [Verbose] > ;[[

00:07:54 #24944 [Verbose] >     "euler-cromer", time_ke_ec_x, time_ke_ec_y

00:07:54 #24945 [Verbose] >     "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y

00:07:54 #24946 [Verbose] > ]]

00:07:54 #24947 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-2699-9964-9ff4dc9f7144\main.spi

00:07:57 #24948 [Verbose] >

00:07:57 #24949 [Verbose] > ╭─[ 2.95s - return value ]─────────────────────────────────────────────────────╮

00:07:57 #24950 [Verbose] > │ <svg width="640" height="480" viewBox="0 0 640 480"                          │

00:07:57 #24951 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:07:57 #24952 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:07:57 #24953 [Verbose] > │ stroke="none"/>                                                              │

00:07:57 #24954 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:07:57 #24955 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:07:57 #24956 [Verbose] > │ fill="#FFFFFF">                                                              │

00:07:57 #24957 [Verbose] > │ system kinetic energy versus time                                            │

00:07:57 #24958 [Verbose] > │ </text>                                                                      │

00:07:57 #24959 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" y1="424" x2="59" │

00:07:57 #24960 [Verbose] > │ y2="75"/>                                                                    │

00:07:57 #24961 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:07:57 #24962 [Verbose] > │ y2="75"/>                                                                    │

00:07:57 #24963 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" y1="424" x2="79" │

00:07:57 #24964 [Verbose] > │ y2="75"/>                                                                    │

00:07:57 #24965 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" y1="424" x2="89" │

00:07:57 #24966 [Verbose] > │ y2="75"/>                                                                    │

00:07:57 #24967 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1...                        │

00:07:57 #24968 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:57 #24969 [Verbose] >

00:07:57 #24970 [Verbose] > ╭─[ 3.07s - stdout ]───────────────────────────────────────────────────────────╮

00:07:57 #24971 [Verbose] > │ type UH0 =                                                                   │

00:07:57 #24972 [Verbose] > │     | UH0_0 of float * float * float * float * float * float * float * float │

00:07:57 #24973 [Verbose] > │ * float * (unit -> UH0)                                                      │

00:07:57 #24974 [Verbose] > │     | UH0_1                                                                  │

00:07:57 #24975 [Verbose] > │ and UH1 =                                                                    │

00:07:57 #24976 [Verbose] > │     | UH1_0 of float * float * float * float * float * float * float * float │

00:07:57 #24977 [Verbose] > │ * float * (unit -> UH1)                                                      │

00:07:57 #24978 [Verbose] > │     | UH1_1                                                                  │

00:07:57 #24979 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:07:57 #24980 [Verbose] > │     | US0_0 of f0_0 : (unit -> UH0)                                          │

00:07:57 #24981 [Verbose] > │     | US0_1 of f1_0 : UH0                                                    │

00:07:57 #24982 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │

00:07:57 #24983 [Verbose] > │ and UH2 =                                                                    │

00:07:57 #24984 [Verbose] > │     | UH2_0 of float * float * float * float * float * float * float * float │

00:07:57 #24985 [Verbose] > │ * float * float * float * float * float * float * float * float * float *    │

00:07:57 #24986 [Verbose] > │ float * (unit -> UH2)                                                        │

00:07:57 #24987 [Verbose] > │     | UH2_1                                                                  │

00:07:57 #24988 [Verbose] > │ and UH3 =                                                                    │

00:07:57 #24989 [Verbose] > │     | UH3_0 of int32 * float * float * float * float * float * float * float │

00:07:57 #24990 [Verbose] > │ * float * float * (unit -> UH3)                                              │

00:07:57 #24991 [Verbose] > │     | UH3_1                                                                  │

00:07:57 #24992 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:07:57 #24993 [Verbose] > │     | US1_0 of f0_0 : (struct (float * float * float * float * float * float │

00:07:57 #24994 [Verbose] > │ * float * float * float) -> struct (float * float * float))                  │

00:07:57 #24995 [Verbose] > │     | US1_1                                                                  │

00:07:57 #24996 [Verbose] > │ and [<Struct>] US2 =                                                         │

00:07:57 #24997 [Verbose] > │     | US2_0 of f0_0 : float * f0_1 : float * f0_2 : float * f0_3 : float *   │

00:07:57 #24998 [Verbose] > │ f0_4 : float * f0_5 : float * f0_6 : float * f0_7 : float * f0_8 : float     │

00:07:57 #24999 [Verbose] > │     | US2_1                                                                  │

00:07:57 #25000 [Verbose] > │ and UH4 =                                                                    │

00:07:57 #25001 [Verbose] > │     | UH4_0                                                                  │

00:07:57 #25002 [Verbose] > │     | UH4_1 of UH0 * UH4                                                     │

00:07:57 #25003 [Verbose] > │ and UH5 =                                                                    │

00:07:57 #25004 [Verbose] > │     | UH5_0                                                                  │

00:07:57 #25005 [Verbose] > │     | UH5_1 of int32 * UH5                                                   │

00:07:57 #25006 [Verbose] > │ and [<Struct>] US3 =                                                         │

00:07:57 #25007 [Verbose] > │     | US3_0 of f0_0 : float * f0_1 : float                                   │

00:07:57 #25008 [Verbose] > │     | US3_1                                                                  │

00:07:57 #25009 [Verbose] > │ and UH6 =                                                                    │

00:07:57 #25010 [Verbose] > │     | UH6_0                                                                  │

00:07:57 #25011 [Verbose] > │     | UH6_1 of US3 * UH6                                                     │

00:07:57 #25012 [Verbose] > │ and UH7 =                                                                    │

00:07:57 #25013 [Verbose] > │     | UH7_0 of float * (unit -> UH7)                                         │

00:07:57 #25014 [Verbose] > │     | UH7_1                                                                  │

00:07:57 #25015 [Verbose] > │ and UH8 =                                                                    │

00:07:57 #25016 [Verbose] > │     | UH8_0                                                                  │

00:07:57 #25017 [Verbose] > │     | UH8_1 of float * float * UH8                                           │

00:07:57 #25018 [Verbose] > │ and UH9 =                                                                    │

00:07:57 #25019 [Verbose] > │     | UH9_0                                                                  │

00:07:57 #25020 [Verbose] > │     | UH9_1 of float * UH9                                                   │

00:07:57 #25021 [Verbose] > │ let rec closure3 (v0 : float, v1 : (unit -> UH0), v2 : (unit -> UH1)) () :   │

00:07:57 #25022 [Verbose] > │ UH0 =                                                                        │

00:07:57 #25023 [Verbose] > │     let v3 : UH1 = v2 ()                                                     │

00:07:57 #25024 [Verbose] > │     let v4 : UH0 = v1 ()                                                     │

00:07:57 #25025 [Verbose] > │     match v3 with                                                            │

00:07:57 #25026 [Verbose] > │     | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (* StreamCons *) │

00:07:57 #25027 [Verbose] > │         match v4 with                                                        │

00:07:57 #25028 [Verbose] > │         | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (*      │

00:07:57 #25029 [Verbose] > │ StreamCons *)                                                                │

00:07:57 #25030 [Verbose] > │             let v25 : float = v10 * v0                                       │

00:07:57 #25031 [Verbose] > │             let v26 : float = v20 + v25                                      │

00:07:57 #25032 [Verbose] > │             let v27 : float = v0 * v7                                        │

00:07:57 #25033 [Verbose] > │             let v28 : float = v0 * v8                                        │

00:07:57 #25034 [Verbose] > │             let v29 : float = v0 * v9                                        │

00:07:57 #25035 [Verbose] > │             let v30 : float = v17 + v27                                      │

00:07:57 #25036 [Verbose] > │             let v31 : float = v18 + v28                                      │

00:07:57 #25037 [Verbose] > │             let v32 : float = v19 + v29                                      │

00:07:57 #25038 [Verbose] > │             let v33 : float = v0 * v11                                       │

00:07:57 #25039 [Verbose] > │             let v34 : float = v0 * v12                                       │

00:07:57 #25040 [Verbose] > │             let v35 : float = v0 * v13                                       │

00:07:57 #25041 [Verbose] > │             let v36 : float = v21 + v33                                      │

00:07:57 #25042 [Verbose] > │             let v37 : float = v22 + v34                                      │

00:07:57 #25043 [Verbose] > │             let v38 : float = v23 + v35                                      │

00:07:57 #25044 [Verbose] > │             let v39 : (unit -> UH0) = closure3(v0, v24, v14)                 │

00:07:57 #25045 [Verbose] > │             UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39)          │

00:07:57 #25046 [Verbose] > │         | UH0_1 -> (* StreamNil *)                                           │

00:07:57 #25047 [Verbose] > │             UH0_1                                                            │

00:07:57 #25048 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │

00:07:57 #25049 [Verbose] > │         UH0_1                                                                │

00:07:57 #25050 [Verbose] > │ and closure4 (v0 : UH0) () : UH0 =                                           │

00:07:57 #25051 [Verbose] > │     v0                                                                       │

00:07:57 #25052 [Verbose] > │ and closure5 (v0 : UH0, v1 : Mut0) () : UH0 =                                │

00:07:57 #25053 [Verbose] > │     let v2 : US0 = v1.l0                                                     │

00:07:57 #25054 [Verbose] > │     match v2 with                                                            │

00:07:57 #25055 [Verbose] > │     | US0_1(v3) -> (* Computed *)                                            │

00:07:57 #25056 [Verbose] > │         v3                                                                   │

00:07:57 #25057 [Verbose] > │     | US0_0(v4) -> (* NotComputed *)                                         │

00:07:57 #25058 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │

00:07:57 #25059 [Verbose] > │         let v20 : UH0 =                                                      │

00:07:57 #25060 [Verbose] > │             match v5 with                                                    │

00:07:57 #25061 [Verbose] > │             | UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (*     │

00:07:57 #25062 [Verbose] > │ StreamCons *)                                                                │

00:07:57 #25063 [Verbose] > │                 let v17 : (unit -> UH0) = method1(v0, v16)                   │

00:07:57 #25064 [Verbose] > │                 UH0_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17)         │

00:07:57 #25065 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:57 #25066 [Verbose] > │                 UH0_1                                                        │

00:07:57 #25067 [Verbose] > │         let v21 : US0 = US0_1(v20)                                           │

00:07:57 #25068 [Verbose] > │         v1.l0 <- v21                                                         │

00:07:57 #25069 [Verbose] > │         v20                                                                  │

00:07:57 #25070 [Verbose] > │ and method1 (v0 : UH0, v1 : (unit -> UH0)) : (unit -> UH0) =                 │

00:07:57 #25071 [Verbose] > │     let v2 : US0 = US0_0(v1)                                                 │

00:07:57 #25072 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │

00:07:57 #25073 [Verbose] > │     closure5(v0, v3)                                                         │

00:07:57 #25074 [Verbose] > │ and closure6 (v0 : (unit -> UH0), v1 : (unit -> UH0)) () : UH2 =             │

00:07:57 #25075 [Verbose] > │     let v2 : UH0 = v1 ()                                                     │

00:07:57 #25076 [Verbose] > │     let v3 : UH0 = v0 ()                                                     │

00:07:57 #25077 [Verbose] > │     match v2 with                                                            │

00:07:57 #25078 [Verbose] > │     | UH0_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │

00:07:57 #25079 [Verbose] > │         match v3 with                                                        │

00:07:57 #25080 [Verbose] > │         | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │

00:07:57 #25081 [Verbose] > │ StreamCons *)                                                                │

00:07:57 #25082 [Verbose] > │             let v24 : (unit -> UH2) = closure6(v23, v13)                     │

00:07:57 #25083 [Verbose] > │             UH2_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v14, v15, v16, v17, │

00:07:57 #25084 [Verbose] > │ v18, v19, v20, v21, v22, v24)                                                │

00:07:57 #25085 [Verbose] > │         | UH0_1 -> (* StreamNil *)                                           │

00:07:57 #25086 [Verbose] > │             UH2_1                                                            │

00:07:57 #25087 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:07:57 #25088 [Verbose] > │         UH2_1                                                                │

00:07:57 #25089 [Verbose] > │ and closure7 (v0 : UH0) () : UH0 =                                           │

00:07:57 #25090 [Verbose] > │     v0                                                                       │

00:07:57 #25091 [Verbose] > │ and method2 (v0 : float, v1 : UH2, v2 : UH0) : UH0 =                         │

00:07:57 #25092 [Verbose] > │     match v1 with                                                            │

00:07:57 #25093 [Verbose] > │     | UH2_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16,   │

00:07:57 #25094 [Verbose] > │ v17, v18, v19, v20, v21) -> (* StreamCons *)                                 │

00:07:57 #25095 [Verbose] > │         let v22 : UH2 = v21 ()                                               │

00:07:57 #25096 [Verbose] > │         let v23 : UH0 = method2(v0, v22, v2)                                 │

00:07:57 #25097 [Verbose] > │         let v24 : float = v0 * v18                                           │

00:07:57 #25098 [Verbose] > │         let v25 : float = v0 * v19                                           │

00:07:57 #25099 [Verbose] > │         let v26 : float = v0 * v20                                           │

00:07:57 #25100 [Verbose] > │         let v27 : float = v5 + v24                                           │

00:07:57 #25101 [Verbose] > │         let v28 : float = v6 + v25                                           │

00:07:57 #25102 [Verbose] > │         let v29 : float = v7 + v26                                           │

00:07:57 #25103 [Verbose] > │         let v30 : (unit -> UH0) = closure7(v23)                              │

00:07:57 #25104 [Verbose] > │         UH0_0(v12, v13, v27, v28, v29, v17, v18, v19, v20, v30)              │

00:07:57 #25105 [Verbose] > │     | UH2_1 -> (* StreamNil *)                                               │

00:07:57 #25106 [Verbose] > │         v2                                                                   │

00:07:57 #25107 [Verbose] > │ and closure2 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =              │

00:07:57 #25108 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │

00:07:57 #25109 [Verbose] > │     let v45 : UH0 =                                                          │

00:07:57 #25110 [Verbose] > │         match v3 with                                                        │

00:07:57 #25111 [Verbose] > │         | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │

00:07:57 #25112 [Verbose] > │ *)                                                                           │

00:07:57 #25113 [Verbose] > │             match v2 with                                                    │

00:07:57 #25114 [Verbose] > │             | UH0_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*  │

00:07:57 #25115 [Verbose] > │ StreamCons *)                                                                │

00:07:57 #25116 [Verbose] > │                 let v24 : float = v9 * v0                                    │

00:07:57 #25117 [Verbose] > │                 let v25 : float = v19 + v24                                  │

00:07:57 #25118 [Verbose] > │                 let v26 : float = v0 * v6                                    │

00:07:57 #25119 [Verbose] > │                 let v27 : float = v0 * v7                                    │

00:07:57 #25120 [Verbose] > │                 let v28 : float = v0 * v8                                    │

00:07:57 #25121 [Verbose] > │                 let v29 : float = v16 + v26                                  │

00:07:57 #25122 [Verbose] > │                 let v30 : float = v17 + v27                                  │

00:07:57 #25123 [Verbose] > │                 let v31 : float = v18 + v28                                  │

00:07:57 #25124 [Verbose] > │                 let v32 : float = v0 * v10                                   │

00:07:57 #25125 [Verbose] > │                 let v33 : float = v0 * v11                                   │

00:07:57 #25126 [Verbose] > │                 let v34 : float = v0 * v12                                   │

00:07:57 #25127 [Verbose] > │                 let v35 : float = v20 + v32                                  │

00:07:57 #25128 [Verbose] > │                 let v36 : float = v21 + v33                                  │

00:07:57 #25129 [Verbose] > │                 let v37 : float = v22 + v34                                  │

00:07:57 #25130 [Verbose] > │                 let v38 : (unit -> UH0) = closure3(v0, v23, v13)             │

00:07:57 #25131 [Verbose] > │                 UH0_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)      │

00:07:57 #25132 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:57 #25133 [Verbose] > │                 UH0_1                                                        │

00:07:57 #25134 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:57 #25135 [Verbose] > │             UH0_1                                                            │

00:07:57 #25136 [Verbose] > │     let v46 : (unit -> UH0) = closure4(v45)                                  │

00:07:57 #25137 [Verbose] > │     let v47 : (unit -> UH0) = method1(v45, v46)                              │

00:07:57 #25138 [Verbose] > │     let v48 : UH0 = v47 ()                                                   │

00:07:57 #25139 [Verbose] > │     let v76 : UH2 =                                                          │

00:07:57 #25140 [Verbose] > │         match v2 with                                                        │

00:07:57 #25141 [Verbose] > │         | UH0_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (*      │

00:07:57 #25142 [Verbose] > │ StreamCons *)                                                                │

00:07:57 #25143 [Verbose] > │             match v48 with                                                   │

00:07:57 #25144 [Verbose] > │             | UH0_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (*  │

00:07:57 #25145 [Verbose] > │ StreamCons *)                                                                │

00:07:57 #25146 [Verbose] > │                 let v69 : (unit -> UH2) = closure6(v68, v58)                 │

00:07:57 #25147 [Verbose] > │                 UH2_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v59, v60, │

00:07:57 #25148 [Verbose] > │ v61, v62, v63, v64, v65, v66, v67, v69)                                      │

00:07:57 #25149 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:57 #25150 [Verbose] > │                 UH2_1                                                        │

00:07:57 #25151 [Verbose] > │         | UH0_1 -> (* StreamNil *)                                           │

00:07:57 #25152 [Verbose] > │             UH2_1                                                            │

00:07:57 #25153 [Verbose] > │     let v77 : UH0 = UH0_1                                                    │

00:07:57 #25154 [Verbose] > │     let v78 : UH0 = method2(v0, v76, v77)                                    │

00:07:57 #25155 [Verbose] > │     v78                                                                      │

00:07:57 #25156 [Verbose] > │ and closure1 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =               │

00:07:57 #25157 [Verbose] > │     closure2(v0, v1)                                                         │

00:07:57 #25158 [Verbose] > │ and closure0 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =              │

00:07:57 #25159 [Verbose] > │     closure1(v0)                                                             │

00:07:57 #25160 [Verbose] > │ and closure9 (v0 : UH3) () : UH3 =                                           │

00:07:57 #25161 [Verbose] > │     v0                                                                       │

00:07:57 #25162 [Verbose] > │ and method3 (v0 : UH0, v1 : UH3, v2 : int32) : struct (UH3 * int32) =        │

00:07:57 #25163 [Verbose] > │     match v0 with                                                            │

00:07:57 #25164 [Verbose] > │     | UH0_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *)   │

00:07:57 #25165 [Verbose] > │         let v13 : int32 = v2 + 1                                             │

00:07:57 #25166 [Verbose] > │         let v14 : UH0 = v12 ()                                               │

00:07:57 #25167 [Verbose] > │         let v15 : (unit -> UH3) = closure9(v1)                               │

00:07:57 #25168 [Verbose] > │         let v16 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │

00:07:57 #25169 [Verbose] > │         method3(v14, v16, v13)                                               │

00:07:57 #25170 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:07:57 #25171 [Verbose] > │         struct (v1, v2)                                                      │

00:07:57 #25172 [Verbose] > │ and closure10 (v0 : UH3) () : UH3 =                                          │

00:07:57 #25173 [Verbose] > │     v0                                                                       │

00:07:57 #25174 [Verbose] > │ and method4 (v0 : UH3, v1 : UH3) : UH3 =                                     │

00:07:57 #25175 [Verbose] > │     match v0 with                                                            │

00:07:57 #25176 [Verbose] > │     | UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons  │

00:07:57 #25177 [Verbose] > │ *)                                                                           │

00:07:57 #25178 [Verbose] > │         let v13 : UH3 = v12 ()                                               │

00:07:57 #25179 [Verbose] > │         let v14 : (unit -> UH3) = closure10(v1)                              │

00:07:57 #25180 [Verbose] > │         let v15 : UH3 = UH3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │

00:07:57 #25181 [Verbose] > │         method4(v13, v15)                                                    │

00:07:57 #25182 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │

00:07:57 #25183 [Verbose] > │         v1                                                                   │

00:07:57 #25184 [Verbose] > │ and method6 (v0 : int32, v1 : UH0) : US2 =                                   │

00:07:57 #25185 [Verbose] > │     match v1 with                                                            │

00:07:57 #25186 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │

00:07:57 #25187 [Verbose] > │         let v12 : bool = v0 <= 0                                             │

00:07:57 #25188 [Verbose] > │         if v12 then                                                          │

00:07:57 #25189 [Verbose] > │             US2_0(v2, v3, v4, v5, v6, v7, v8, v9, v10)                       │

00:07:57 #25190 [Verbose] > │         else                                                                 │

00:07:57 #25191 [Verbose] > │             let v14 : int32 = v0 - 1                                         │

00:07:57 #25192 [Verbose] > │             let v15 : UH0 = v11 ()                                           │

00:07:57 #25193 [Verbose] > │             method6(v14, v15)                                                │

00:07:57 #25194 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:07:57 #25195 [Verbose] > │         US2_1                                                                │

00:07:57 #25196 [Verbose] > │ and closure11 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float,   │

00:07:57 #25197 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 :    │

00:07:57 #25198 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16  │

00:07:57 #25199 [Verbose] > │ : float, v17 : float) : struct (float * float * float) =                     │

00:07:57 #25200 [Verbose] > │     let v18 : float = -1.0 * v2                                              │

00:07:57 #25201 [Verbose] > │     let v19 : float = -1.0 * v3                                              │

00:07:57 #25202 [Verbose] > │     let v20 : float = -1.0 * v4                                              │

00:07:57 #25203 [Verbose] > │     let v21 : float = v11 + v18                                              │

00:07:57 #25204 [Verbose] > │     let v22 : float = v12 + v19                                              │

00:07:57 #25205 [Verbose] > │     let v23 : float = v13 + v20                                              │

00:07:57 #25206 [Verbose] > │     let v24 : float = v21 * v21                                              │

00:07:57 #25207 [Verbose] > │     let v25 : float = v22 * v22                                              │

00:07:57 #25208 [Verbose] > │     let v26 : float = v24 + v25                                              │

00:07:57 #25209 [Verbose] > │     let v27 : float = v23 * v23                                              │

00:07:57 #25210 [Verbose] > │     let v28 : float = v26 + v27                                              │

00:07:57 #25211 [Verbose] > │     let v29 : float = sqrt v28                                               │

00:07:57 #25212 [Verbose] > │     let v30 : bool = v29 >= 0.06                                             │

00:07:57 #25213 [Verbose] > │     let v33 : float =                                                        │

00:07:57 #25214 [Verbose] > │         if v30 then                                                          │

00:07:57 #25215 [Verbose] > │             0.0                                                              │

00:07:57 #25216 [Verbose] > │         else                                                                 │

00:07:57 #25217 [Verbose] > │             let v31 : float = v29 - 0.06                                     │

00:07:57 #25218 [Verbose] > │             let v32 : float = -30.0 * v31                                    │

00:07:57 #25219 [Verbose] > │             v32                                                              │

00:07:57 #25220 [Verbose] > │     let v34 : float = v33 * v21                                              │

00:07:57 #25221 [Verbose] > │     let v35 : float = v33 * v22                                              │

00:07:57 #25222 [Verbose] > │     let v36 : float = v33 * v23                                              │

00:07:57 #25223 [Verbose] > │     let v37 : float = v34 / v29                                              │

00:07:57 #25224 [Verbose] > │     let v38 : float = v35 / v29                                              │

00:07:57 #25225 [Verbose] > │     let v39 : float = v36 / v29                                              │

00:07:57 #25226 [Verbose] > │     struct (v37, v38, v39)                                                   │

00:07:57 #25227 [Verbose] > │ and closure12 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4  │

00:07:57 #25228 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │

00:07:57 #25229 [Verbose] > │ float * float) =                                                             │

00:07:57 #25230 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │

00:07:57 #25231 [Verbose] > │ and closure13 (v0 : UH1) () : UH1 =                                          │

00:07:57 #25232 [Verbose] > │     v0                                                                       │

00:07:57 #25233 [Verbose] > │ and method5 (v0 : UH0, v1 : UH3, v2 : UH1) : UH1 =                           │

00:07:57 #25234 [Verbose] > │     match v1 with                                                            │

00:07:57 #25235 [Verbose] > │     | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons │

00:07:57 #25236 [Verbose] > │ *)                                                                           │

00:07:57 #25237 [Verbose] > │         let v14 : UH3 = v13 ()                                               │

00:07:57 #25238 [Verbose] > │         let v15 : UH1 = method5(v0, v14, v2)                                 │

00:07:57 #25239 [Verbose] > │         let v16 : bool = v3 = 0                                              │

00:07:57 #25240 [Verbose] > │         let v52 : US1 =                                                      │

00:07:57 #25241 [Verbose] > │             if v16 then                                                      │

00:07:57 #25242 [Verbose] > │                 let v17 : int32 = 1                                          │

00:07:57 #25243 [Verbose] > │                 let v18 : US2 = method6(v17, v0)                             │

00:07:57 #25244 [Verbose] > │                 match v18 with                                               │

00:07:57 #25245 [Verbose] > │                 | US2_1 -> (* None *)                                        │

00:07:57 #25246 [Verbose] > │                     US1_1                                                    │

00:07:57 #25247 [Verbose] > │                 | US2_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (*   │

00:07:57 #25248 [Verbose] > │ Some *)                                                                      │

00:07:57 #25249 [Verbose] > │                     let v28 : (struct (float * float * float * float * float │

00:07:57 #25250 [Verbose] > │ * float * float * float * float) -> struct (float * float * float)) =        │

00:07:57 #25251 [Verbose] > │ closure11(v19, v20, v21, v22, v23, v24, v25, v26, v27)                       │

00:07:57 #25252 [Verbose] > │                     US1_0(v28)                                               │

00:07:57 #25253 [Verbose] > │             else                                                             │

00:07:57 #25254 [Verbose] > │                 let v33 : bool = v3 = 1                                      │

00:07:57 #25255 [Verbose] > │                 if v33 then                                                  │

00:07:57 #25256 [Verbose] > │                     let v34 : int32 = 0                                      │

00:07:57 #25257 [Verbose] > │                     let v35 : US2 = method6(v34, v0)                         │

00:07:57 #25258 [Verbose] > │                     match v35 with                                           │

00:07:57 #25259 [Verbose] > │                     | US2_1 -> (* None *)                                    │

00:07:57 #25260 [Verbose] > │                         US1_1                                                │

00:07:57 #25261 [Verbose] > │                     | US2_0(v36, v37, v38, v39, v40, v41, v42, v43, v44) ->  │

00:07:57 #25262 [Verbose] > │ (* Some *)                                                                   │

00:07:57 #25263 [Verbose] > │                         let v45 : (struct (float * float * float * float *   │

00:07:57 #25264 [Verbose] > │ float * float * float * float * float) -> struct (float * float * float)) =  │

00:07:57 #25265 [Verbose] > │ closure11(v36, v37, v38, v39, v40, v41, v42, v43, v44)                       │

00:07:57 #25266 [Verbose] > │                         US1_0(v45)                                           │

00:07:57 #25267 [Verbose] > │                 else                                                         │

00:07:57 #25268 [Verbose] > │                     US1_1                                                    │

00:07:57 #25269 [Verbose] > │         let v56 : (struct (float * float * float * float * float * float *   │

00:07:57 #25270 [Verbose] > │ float * float * float) -> struct (float * float * float)) =                  │

00:07:57 #25271 [Verbose] > │             match v52 with                                                   │

00:07:57 #25272 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:07:57 #25273 [Verbose] > │                 closure12()                                                  │

00:07:57 #25274 [Verbose] > │             | US1_0(v53) -> (* Some *)                                       │

00:07:57 #25275 [Verbose] > │                 v53                                                          │

00:07:57 #25276 [Verbose] > │         let struct (v57 : float, v58 : float, v59 : float) = v56 struct (v4, │

00:07:57 #25277 [Verbose] > │ v5, v6, v7, v8, v9, v10, v11, v12)                                           │

00:07:57 #25278 [Verbose] > │         let v60 : float = v57 / v5                                           │

00:07:57 #25279 [Verbose] > │         let v61 : float = v58 / v5                                           │

00:07:57 #25280 [Verbose] > │         let v62 : float = v59 / v5                                           │

00:07:57 #25281 [Verbose] > │         let v63 : (unit -> UH1) = closure13(v15)                             │

00:07:57 #25282 [Verbose] > │         UH1_0(0.0, 0.0, v10, v11, v12, 1.0, v60, v61, v62, v63)              │

00:07:57 #25283 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │

00:07:57 #25284 [Verbose] > │         v2                                                                   │

00:07:57 #25285 [Verbose] > │ and closure8 () (v0 : UH0) : UH1 =                                           │

00:07:57 #25286 [Verbose] > │     let v1 : UH3 = UH3_1                                                     │

00:07:57 #25287 [Verbose] > │     let v2 : int32 = 0                                                       │

00:07:57 #25288 [Verbose] > │     let struct (v3 : UH3, v4 : int32) = method3(v0, v1, v2)                  │

00:07:57 #25289 [Verbose] > │     let v5 : UH3 = UH3_1                                                     │

00:07:57 #25290 [Verbose] > │     let v6 : UH3 = method4(v3, v5)                                           │

00:07:57 #25291 [Verbose] > │     let v7 : UH1 = UH1_1                                                     │

00:07:57 #25292 [Verbose] > │     let v8 : UH1 = method5(v0, v6, v7)                                       │

00:07:57 #25293 [Verbose] > │     v8                                                                       │

00:07:57 #25294 [Verbose] > │ and method8 (v0 : int32, v1 : int32) : UH5 =                                 │

00:07:57 #25295 [Verbose] > │     let v2 : bool = v1 < v0                                                  │

00:07:57 #25296 [Verbose] > │     if v2 then                                                               │

00:07:57 #25297 [Verbose] > │         let v3 : int32 = v1 + 1                                              │

00:07:57 #25298 [Verbose] > │         let v4 : UH5 = method8(v0, v3)                                       │

00:07:57 #25299 [Verbose] > │         UH5_1(v1, v4)                                                        │

00:07:57 #25300 [Verbose] > │     else                                                                     │

00:07:57 #25301 [Verbose] > │         UH5_0                                                                │

00:07:57 #25302 [Verbose] > │ and closure15 () () : UH0 =                                                  │

00:07:57 #25303 [Verbose] > │     UH0_1                                                                    │

00:07:57 #25304 [Verbose] > │ and closure14 () () : UH0 =                                                  │

00:07:57 #25305 [Verbose] > │     let v0 : (unit -> UH0) = closure15()                                     │

00:07:57 #25306 [Verbose] > │     UH0_0(0.0, 0.16, 1.0, 0.02, 0.0, 0.0, 0.0, 0.0, 0.0, v0)                 │

00:07:57 #25307 [Verbose] > │ and method9 (v0 : (UH0 -> UH0), v1 : UH5, v2 : UH0) : UH0 =                  │

00:07:57 #25308 [Verbose] > │     match v1 with                                                            │

00:07:57 #25309 [Verbose] > │     | UH5_1(v3, v4) -> (* Cons *)                                            │

00:07:57 #25310 [Verbose] > │         let v5 : (unit -> UH0) = closure4(v2)                                │

00:07:57 #25311 [Verbose] > │         let v6 : (unit -> UH0) = method1(v2, v5)                             │

00:07:57 #25312 [Verbose] > │         let v7 : UH0 = v6 ()                                                 │

00:07:57 #25313 [Verbose] > │         let v8 : UH0 = v0 v7                                                 │

00:07:57 #25314 [Verbose] > │         method9(v0, v4, v8)                                                  │

00:07:57 #25315 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:07:57 #25316 [Verbose] > │         v2                                                                   │

00:07:57 #25317 [Verbose] > │ and method10 (v0 : UH4, v1 : UH4) : UH4 =                                    │

00:07:57 #25318 [Verbose] > │     match v0 with                                                            │

00:07:57 #25319 [Verbose] > │     | UH4_1(v2, v3) -> (* Cons *)                                            │

00:07:57 #25320 [Verbose] > │         let v4 : UH4 = UH4_1(v2, v1)                                         │

00:07:57 #25321 [Verbose] > │         method10(v3, v4)                                                     │

00:07:57 #25322 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:07:57 #25323 [Verbose] > │         v1                                                                   │

00:07:57 #25324 [Verbose] > │ and method7 (v0 : (UH0 -> UH0), v1 : UH4, v2 : int32) : UH4 =                │

00:07:57 #25325 [Verbose] > │     let v3 : int32 = 0                                                       │

00:07:57 #25326 [Verbose] > │     let v4 : UH5 = method8(v2, v3)                                           │

00:07:57 #25327 [Verbose] > │     let v5 : float = 0.0                                                     │

00:07:57 #25328 [Verbose] > │     let v6 : float = 0.16                                                    │

00:07:57 #25329 [Verbose] > │     let v7 : float = 0.0                                                     │

00:07:57 #25330 [Verbose] > │     let v8 : float = 0.0                                                     │

00:07:57 #25331 [Verbose] > │     let v9 : float = 0.0                                                     │

00:07:57 #25332 [Verbose] > │     let v10 : float = 0.0                                                    │

00:07:57 #25333 [Verbose] > │     let v11 : float = 0.2                                                    │

00:07:57 #25334 [Verbose] > │     let v12 : float = 0.0                                                    │

00:07:57 #25335 [Verbose] > │     let v13 : float = 0.0                                                    │

00:07:57 #25336 [Verbose] > │     let v14 : (unit -> UH0) = closure14()                                    │

00:07:57 #25337 [Verbose] > │     let v15 : UH0 = UH0_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)       │

00:07:57 #25338 [Verbose] > │     let v16 : UH0 = method9(v0, v4, v15)                                     │

00:07:57 #25339 [Verbose] > │     let v17 : int32 = 0                                                      │

00:07:57 #25340 [Verbose] > │     let v18 : US2 = method6(v17, v16)                                        │

00:07:57 #25341 [Verbose] > │     let v30 : bool =                                                         │

00:07:57 #25342 [Verbose] > │         match v18 with                                                       │

00:07:57 #25343 [Verbose] > │         | US2_1 -> (* None *)                                                │

00:07:57 #25344 [Verbose] > │             false                                                            │

00:07:57 #25345 [Verbose] > │         | US2_0(v19, v20, v21, v22, v23, v24, v25, v26, v27) -> (* Some *)   │

00:07:57 #25346 [Verbose] > │             let v28 : bool = v24 <= 10.0                                     │

00:07:57 #25347 [Verbose] > │             v28                                                              │

00:07:57 #25348 [Verbose] > │     if v30 then                                                              │

00:07:57 #25349 [Verbose] > │         let v31 : UH4 = UH4_1(v16, v1)                                       │

00:07:57 #25350 [Verbose] > │         let v32 : int32 = v2 + 1                                             │

00:07:57 #25351 [Verbose] > │         method7(v0, v31, v32)                                                │

00:07:57 #25352 [Verbose] > │     else                                                                     │

00:07:57 #25353 [Verbose] > │         let v34 : UH4 = UH4_0                                                │

00:07:57 #25354 [Verbose] > │         method10(v1, v34)                                                    │

00:07:57 #25355 [Verbose] > │ and closure16 (v0 : UH7) () : UH7 =                                          │

00:07:57 #25356 [Verbose] > │     v0                                                                       │

00:07:57 #25357 [Verbose] > │ and method12 (v0 : UH0, v1 : UH7) : UH7 =                                    │

00:07:57 #25358 [Verbose] > │     match v0 with                                                            │

00:07:57 #25359 [Verbose] > │     | UH0_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │

00:07:57 #25360 [Verbose] > │         let v12 : UH0 = v11 ()                                               │

00:07:57 #25361 [Verbose] > │         let v13 : UH7 = method12(v12, v1)                                    │

00:07:57 #25362 [Verbose] > │         let v14 : float = v8 * v8                                            │

00:07:57 #25363 [Verbose] > │         let v15 : float = v9 * v9                                            │

00:07:57 #25364 [Verbose] > │         let v16 : float = v14 + v15                                          │

00:07:57 #25365 [Verbose] > │         let v17 : float = v10 * v10                                          │

00:07:57 #25366 [Verbose] > │         let v18 : float = v16 + v17                                          │

00:07:57 #25367 [Verbose] > │         let v19 : float = sqrt v18                                           │

00:07:57 #25368 [Verbose] > │         let v20 : float = 0.5 * v3                                           │

00:07:57 #25369 [Verbose] > │         let v21 : float = v19 ** 2.0                                         │

00:07:57 #25370 [Verbose] > │         let v22 : float = v20 * v21                                          │

00:07:57 #25371 [Verbose] > │         let v23 : (unit -> UH7) = closure16(v13)                             │

00:07:57 #25372 [Verbose] > │         UH7_0(v22, v23)                                                      │

00:07:57 #25373 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:07:57 #25374 [Verbose] > │         v1                                                                   │

00:07:57 #25375 [Verbose] > │ and method13 (v0 : UH7, v1 : float) : float =                                │

00:07:57 #25376 [Verbose] > │     match v0 with                                                            │

00:07:57 #25377 [Verbose] > │     | UH7_0(v2, v3) -> (* StreamCons *)                                      │

00:07:57 #25378 [Verbose] > │         let v4 : float = v1 + v2                                             │

00:07:57 #25379 [Verbose] > │         let v5 : UH7 = v3 ()                                                 │

00:07:57 #25380 [Verbose] > │         method13(v5, v4)                                                     │

00:07:57 #25381 [Verbose] > │     | UH7_1 -> (* StreamNil *)                                               │

00:07:57 #25382 [Verbose] > │         v1                                                                   │

00:07:57 #25383 [Verbose] > │ and method11 (v0 : UH4, v1 : UH6) : UH6 =                                    │

00:07:57 #25384 [Verbose] > │     match v0 with                                                            │

00:07:57 #25385 [Verbose] > │     | UH4_1(v2, v3) -> (* Cons *)                                            │

00:07:57 #25386 [Verbose] > │         let v4 : UH6 = method11(v3, v1)                                      │

00:07:57 #25387 [Verbose] > │         let v5 : int32 = 0                                                   │

00:07:57 #25388 [Verbose] > │         let v6 : US2 = method6(v5, v2)                                       │

00:07:57 #25389 [Verbose] > │         let v23 : US3 =                                                      │

00:07:57 #25390 [Verbose] > │             match v6 with                                                    │

00:07:58 #25391 [Verbose] > │             | US2_1 -> (* None *)                                            │

00:07:58 #25392 [Verbose] > │                 US3_1                                                        │

00:07:58 #25393 [Verbose] > │             | US2_0(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *)  │

00:07:58 #25394 [Verbose] > │                 let v16 : UH7 = UH7_1                                        │

00:07:58 #25395 [Verbose] > │                 let v17 : UH7 = method12(v2, v16)                            │

00:07:58 #25396 [Verbose] > │                 let v18 : float = 0.0                                        │

00:07:58 #25397 [Verbose] > │                 let v19 : float = method13(v17, v18)                         │

00:07:58 #25398 [Verbose] > │                 US3_0(v12, v19)                                              │

00:07:58 #25399 [Verbose] > │         UH6_1(v23, v4)                                                       │

00:07:58 #25400 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:07:58 #25401 [Verbose] > │         v1                                                                   │

00:07:58 #25402 [Verbose] > │ and method14 (v0 : UH6, v1 : UH8) : UH8 =                                    │

00:07:58 #25403 [Verbose] > │     match v0 with                                                            │

00:07:58 #25404 [Verbose] > │     | UH6_1(v2, v3) -> (* Cons *)                                            │

00:07:58 #25405 [Verbose] > │         let v4 : UH8 = method14(v3, v1)                                      │

00:07:58 #25406 [Verbose] > │         match v2 with                                                        │

00:07:58 #25407 [Verbose] > │         | US3_1 -> (* None *)                                                │

00:07:58 #25408 [Verbose] > │             v4                                                               │

00:07:58 #25409 [Verbose] > │         | US3_0(v5, v6) -> (* Some *)                                        │

00:07:58 #25410 [Verbose] > │             UH8_1(v5, v6, v4)                                                │

00:07:58 #25411 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:07:58 #25412 [Verbose] > │         v1                                                                   │

00:07:58 #25413 [Verbose] > │ and method15 (v0 : UH8, v1 : UH9, v2 : UH9) : struct (UH9 * UH9) =           │

00:07:58 #25414 [Verbose] > │     match v0 with                                                            │

00:07:58 #25415 [Verbose] > │     | UH8_1(v3, v4, v5) -> (* Cons *)                                        │

00:07:58 #25416 [Verbose] > │         let v6 : UH9 = UH9_1(v3, v1)                                         │

00:07:58 #25417 [Verbose] > │         let v7 : UH9 = UH9_1(v4, v2)                                         │

00:07:58 #25418 [Verbose] > │         method15(v5, v6, v7)                                                 │

00:07:58 #25419 [Verbose] > │     | UH8_0 -> (* Nil *)                                                     │

00:07:58 #25420 [Verbose] > │         struct (v1, v2)                                                      │

00:07:58 #25421 [Verbose] > │ and method16 (v0 : UH9, v1 : UH9) : UH9 =                                    │

00:07:58 #25422 [Verbose] > │     match v0 with                                                            │

00:07:58 #25423 [Verbose] > │     | UH9_1(v2, v3) -> (* Cons *)                                            │

00:07:58 #25424 [Verbose] > │         let v4 : UH9 = UH9_1(v2, v1)                                         │

00:07:58 #25425 [Verbose] > │         method16(v3, v4)                                                     │

00:07:58 #25426 [Verbose] > │     | UH9_0 -> (* Nil *)                                                     │

00:07:58 #25427 [Verbose] > │         v1                                                                   │

00:07:58 #25428 [Verbose] > │ and closure20 (v0 : (unit -> UH1), v1 : (unit -> UH1)) () : UH1 =            │

00:07:58 #25429 [Verbose] > │     let v2 : UH1 = v1 ()                                                     │

00:07:58 #25430 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │

00:07:58 #25431 [Verbose] > │     match v2 with                                                            │

00:07:58 #25432 [Verbose] > │     | UH1_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │

00:07:58 #25433 [Verbose] > │         match v3 with                                                        │

00:07:58 #25434 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │

00:07:58 #25435 [Verbose] > │ StreamCons *)                                                                │

00:07:58 #25436 [Verbose] > │             let v24 : float = v4 + v14                                       │

00:07:58 #25437 [Verbose] > │             let v25 : float = v5 + v15                                       │

00:07:58 #25438 [Verbose] > │             let v26 : float = v9 + v19                                       │

00:07:58 #25439 [Verbose] > │             let v27 : float = v6 + v16                                       │

00:07:58 #25440 [Verbose] > │             let v28 : float = v7 + v17                                       │

00:07:58 #25441 [Verbose] > │             let v29 : float = v8 + v18                                       │

00:07:58 #25442 [Verbose] > │             let v30 : float = v10 + v20                                      │

00:07:58 #25443 [Verbose] > │             let v31 : float = v11 + v21                                      │

00:07:58 #25444 [Verbose] > │             let v32 : float = v12 + v22                                      │

00:07:58 #25445 [Verbose] > │             let v33 : (unit -> UH1) = closure20(v23, v13)                    │

00:07:58 #25446 [Verbose] > │             UH1_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33)          │

00:07:58 #25447 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25448 [Verbose] > │             UH1_1                                                            │

00:07:58 #25449 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │

00:07:58 #25450 [Verbose] > │         UH1_1                                                                │

00:07:58 #25451 [Verbose] > │ and closure19 (v0 : float, v1 : (UH0 -> UH1)) (v2 : UH0) : UH0 =             │

00:07:58 #25452 [Verbose] > │     let v3 : UH1 = v1 v2                                                     │

00:07:58 #25453 [Verbose] > │     let v4 : float = v0 / 2.0                                                │

00:07:58 #25454 [Verbose] > │     let v46 : UH0 =                                                          │

00:07:58 #25455 [Verbose] > │         match v3 with                                                        │

00:07:58 #25456 [Verbose] > │         | UH1_0(v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (*           │

00:07:58 #25457 [Verbose] > │ StreamCons *)                                                                │

00:07:58 #25458 [Verbose] > │             match v2 with                                                    │

00:07:58 #25459 [Verbose] > │             | UH0_0(v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) -> (*  │

00:07:58 #25460 [Verbose] > │ StreamCons *)                                                                │

00:07:58 #25461 [Verbose] > │                 let v25 : float = v10 * v4                                   │

00:07:58 #25462 [Verbose] > │                 let v26 : float = v20 + v25                                  │

00:07:58 #25463 [Verbose] > │                 let v27 : float = v4 * v7                                    │

00:07:58 #25464 [Verbose] > │                 let v28 : float = v4 * v8                                    │

00:07:58 #25465 [Verbose] > │                 let v29 : float = v4 * v9                                    │

00:07:58 #25466 [Verbose] > │                 let v30 : float = v17 + v27                                  │

00:07:58 #25467 [Verbose] > │                 let v31 : float = v18 + v28                                  │

00:07:58 #25468 [Verbose] > │                 let v32 : float = v19 + v29                                  │

00:07:58 #25469 [Verbose] > │                 let v33 : float = v4 * v11                                   │

00:07:58 #25470 [Verbose] > │                 let v34 : float = v4 * v12                                   │

00:07:58 #25471 [Verbose] > │                 let v35 : float = v4 * v13                                   │

00:07:58 #25472 [Verbose] > │                 let v36 : float = v21 + v33                                  │

00:07:58 #25473 [Verbose] > │                 let v37 : float = v22 + v34                                  │

00:07:58 #25474 [Verbose] > │                 let v38 : float = v23 + v35                                  │

00:07:58 #25475 [Verbose] > │                 let v39 : (unit -> UH0) = closure3(v4, v24, v14)             │

00:07:58 #25476 [Verbose] > │                 UH0_0(v15, v16, v30, v31, v32, v26, v36, v37, v38, v39)      │

00:07:58 #25477 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:58 #25478 [Verbose] > │                 UH0_1                                                        │

00:07:58 #25479 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25480 [Verbose] > │             UH0_1                                                            │

00:07:58 #25481 [Verbose] > │     let v47 : (unit -> UH0) = closure4(v46)                                  │

00:07:58 #25482 [Verbose] > │     let v48 : (unit -> UH0) = method1(v46, v47)                              │

00:07:58 #25483 [Verbose] > │     let v49 : UH0 = v48 ()                                                   │

00:07:58 #25484 [Verbose] > │     let v50 : UH1 = v1 v49                                                   │

00:07:58 #25485 [Verbose] > │     let v92 : UH0 =                                                          │

00:07:58 #25486 [Verbose] > │         match v50 with                                                       │

00:07:58 #25487 [Verbose] > │         | UH1_0(v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) -> (*      │

00:07:58 #25488 [Verbose] > │ StreamCons *)                                                                │

00:07:58 #25489 [Verbose] > │             match v2 with                                                    │

00:07:58 #25490 [Verbose] > │             | UH0_0(v61, v62, v63, v64, v65, v66, v67, v68, v69, v70) -> (*  │

00:07:58 #25491 [Verbose] > │ StreamCons *)                                                                │

00:07:58 #25492 [Verbose] > │                 let v71 : float = v56 * v4                                   │

00:07:58 #25493 [Verbose] > │                 let v72 : float = v66 + v71                                  │

00:07:58 #25494 [Verbose] > │                 let v73 : float = v4 * v53                                   │

00:07:58 #25495 [Verbose] > │                 let v74 : float = v4 * v54                                   │

00:07:58 #25496 [Verbose] > │                 let v75 : float = v4 * v55                                   │

00:07:58 #25497 [Verbose] > │                 let v76 : float = v63 + v73                                  │

00:07:58 #25498 [Verbose] > │                 let v77 : float = v64 + v74                                  │

00:07:58 #25499 [Verbose] > │                 let v78 : float = v65 + v75                                  │

00:07:58 #25500 [Verbose] > │                 let v79 : float = v4 * v57                                   │

00:07:58 #25501 [Verbose] > │                 let v80 : float = v4 * v58                                   │

00:07:58 #25502 [Verbose] > │                 let v81 : float = v4 * v59                                   │

00:07:58 #25503 [Verbose] > │                 let v82 : float = v67 + v79                                  │

00:07:58 #25504 [Verbose] > │                 let v83 : float = v68 + v80                                  │

00:07:58 #25505 [Verbose] > │                 let v84 : float = v69 + v81                                  │

00:07:58 #25506 [Verbose] > │                 let v85 : (unit -> UH0) = closure3(v4, v70, v60)             │

00:07:58 #25507 [Verbose] > │                 UH0_0(v61, v62, v76, v77, v78, v72, v82, v83, v84, v85)      │

00:07:58 #25508 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:58 #25509 [Verbose] > │                 UH0_1                                                        │

00:07:58 #25510 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25511 [Verbose] > │             UH0_1                                                            │

00:07:58 #25512 [Verbose] > │     let v93 : (unit -> UH0) = closure4(v92)                                  │

00:07:58 #25513 [Verbose] > │     let v94 : (unit -> UH0) = method1(v92, v93)                              │

00:07:58 #25514 [Verbose] > │     let v95 : UH0 = v94 ()                                                   │

00:07:58 #25515 [Verbose] > │     let v96 : UH1 = v1 v95                                                   │

00:07:58 #25516 [Verbose] > │     let v138 : UH0 =                                                         │

00:07:58 #25517 [Verbose] > │         match v96 with                                                       │

00:07:58 #25518 [Verbose] > │         | UH1_0(v97, v98, v99, v100, v101, v102, v103, v104, v105, v106) ->  │

00:07:58 #25519 [Verbose] > │ (* StreamCons *)                                                             │

00:07:58 #25520 [Verbose] > │             match v2 with                                                    │

00:07:58 #25521 [Verbose] > │             | UH0_0(v107, v108, v109, v110, v111, v112, v113, v114, v115,    │

00:07:58 #25522 [Verbose] > │ v116) -> (* StreamCons *)                                                    │

00:07:58 #25523 [Verbose] > │                 let v117 : float = v102 * v0                                 │

00:07:58 #25524 [Verbose] > │                 let v118 : float = v112 + v117                               │

00:07:58 #25525 [Verbose] > │                 let v119 : float = v0 * v99                                  │

00:07:58 #25526 [Verbose] > │                 let v120 : float = v0 * v100                                 │

00:07:58 #25527 [Verbose] > │                 let v121 : float = v0 * v101                                 │

00:07:58 #25528 [Verbose] > │                 let v122 : float = v109 + v119                               │

00:07:58 #25529 [Verbose] > │                 let v123 : float = v110 + v120                               │

00:07:58 #25530 [Verbose] > │                 let v124 : float = v111 + v121                               │

00:07:58 #25531 [Verbose] > │                 let v125 : float = v0 * v103                                 │

00:07:58 #25532 [Verbose] > │                 let v126 : float = v0 * v104                                 │

00:07:58 #25533 [Verbose] > │                 let v127 : float = v0 * v105                                 │

00:07:58 #25534 [Verbose] > │                 let v128 : float = v113 + v125                               │

00:07:58 #25535 [Verbose] > │                 let v129 : float = v114 + v126                               │

00:07:58 #25536 [Verbose] > │                 let v130 : float = v115 + v127                               │

00:07:58 #25537 [Verbose] > │                 let v131 : (unit -> UH0) = closure3(v0, v116, v106)          │

00:07:58 #25538 [Verbose] > │                 UH0_0(v107, v108, v122, v123, v124, v118, v128, v129, v130,  │

00:07:58 #25539 [Verbose] > │ v131)                                                                        │

00:07:58 #25540 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:58 #25541 [Verbose] > │                 UH0_1                                                        │

00:07:58 #25542 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25543 [Verbose] > │             UH0_1                                                            │

00:07:58 #25544 [Verbose] > │     let v139 : (unit -> UH0) = closure4(v138)                                │

00:07:58 #25545 [Verbose] > │     let v140 : (unit -> UH0) = method1(v138, v139)                           │

00:07:58 #25546 [Verbose] > │     let v141 : UH0 = v140 ()                                                 │

00:07:58 #25547 [Verbose] > │     let v142 : UH1 = v1 v141                                                 │

00:07:58 #25548 [Verbose] > │     let v143 : float = v0 / 6.0                                              │

00:07:58 #25549 [Verbose] > │     let v180 : UH1 =                                                         │

00:07:58 #25550 [Verbose] > │         match v3 with                                                        │

00:07:58 #25551 [Verbose] > │         | UH1_0(v144, v145, v146, v147, v148, v149, v150, v151, v152, v153)  │

00:07:58 #25552 [Verbose] > │ -> (* StreamCons *)                                                          │

00:07:58 #25553 [Verbose] > │             match v50 with                                                   │

00:07:58 #25554 [Verbose] > │             | UH1_0(v154, v155, v156, v157, v158, v159, v160, v161, v162,    │

00:07:58 #25555 [Verbose] > │ v163) -> (* StreamCons *)                                                    │

00:07:58 #25556 [Verbose] > │                 let v164 : float = v144 + v154                               │

00:07:58 #25557 [Verbose] > │                 let v165 : float = v145 + v155                               │

00:07:58 #25558 [Verbose] > │                 let v166 : float = v149 + v159                               │

00:07:58 #25559 [Verbose] > │                 let v167 : float = v146 + v156                               │

00:07:58 #25560 [Verbose] > │                 let v168 : float = v147 + v157                               │

00:07:58 #25561 [Verbose] > │                 let v169 : float = v148 + v158                               │

00:07:58 #25562 [Verbose] > │                 let v170 : float = v150 + v160                               │

00:07:58 #25563 [Verbose] > │                 let v171 : float = v151 + v161                               │

00:07:58 #25564 [Verbose] > │                 let v172 : float = v152 + v162                               │

00:07:58 #25565 [Verbose] > │                 let v173 : (unit -> UH1) = closure20(v163, v153)             │

00:07:58 #25566 [Verbose] > │                 UH1_0(v164, v165, v167, v168, v169, v166, v170, v171, v172,  │

00:07:58 #25567 [Verbose] > │ v173)                                                                        │

00:07:58 #25568 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:07:58 #25569 [Verbose] > │                 UH1_1                                                        │

00:07:58 #25570 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25571 [Verbose] > │             UH1_1                                                            │

00:07:58 #25572 [Verbose] > │     let v217 : UH1 =                                                         │

00:07:58 #25573 [Verbose] > │         match v180 with                                                      │

00:07:58 #25574 [Verbose] > │         | UH1_0(v181, v182, v183, v184, v185, v186, v187, v188, v189, v190)  │

00:07:58 #25575 [Verbose] > │ -> (* StreamCons *)                                                          │

00:07:58 #25576 [Verbose] > │             match v50 with                                                   │

00:07:58 #25577 [Verbose] > │             | UH1_0(v191, v192, v193, v194, v195, v196, v197, v198, v199,    │

00:07:58 #25578 [Verbose] > │ v200) -> (* StreamCons *)                                                    │

00:07:58 #25579 [Verbose] > │                 let v201 : float = v181 + v191                               │

00:07:58 #25580 [Verbose] > │                 let v202 : float = v182 + v192                               │

00:07:58 #25581 [Verbose] > │                 let v203 : float = v186 + v196                               │

00:07:58 #25582 [Verbose] > │                 let v204 : float = v183 + v193                               │

00:07:58 #25583 [Verbose] > │                 let v205 : float = v184 + v194                               │

00:07:58 #25584 [Verbose] > │                 let v206 : float = v185 + v195                               │

00:07:58 #25585 [Verbose] > │                 let v207 : float = v187 + v197                               │

00:07:58 #25586 [Verbose] > │                 let v208 : float = v188 + v198                               │

00:07:58 #25587 [Verbose] > │                 let v209 : float = v189 + v199                               │

00:07:58 #25588 [Verbose] > │                 let v210 : (unit -> UH1) = closure20(v200, v190)             │

00:07:58 #25589 [Verbose] > │                 UH1_0(v201, v202, v204, v205, v206, v203, v207, v208, v209,  │

00:07:58 #25590 [Verbose] > │ v210)                                                                        │

00:07:58 #25591 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:07:58 #25592 [Verbose] > │                 UH1_1                                                        │

00:07:58 #25593 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25594 [Verbose] > │             UH1_1                                                            │

00:07:58 #25595 [Verbose] > │     let v254 : UH1 =                                                         │

00:07:58 #25596 [Verbose] > │         match v217 with                                                      │

00:07:58 #25597 [Verbose] > │         | UH1_0(v218, v219, v220, v221, v222, v223, v224, v225, v226, v227)  │

00:07:58 #25598 [Verbose] > │ -> (* StreamCons *)                                                          │

00:07:58 #25599 [Verbose] > │             match v96 with                                                   │

00:07:58 #25600 [Verbose] > │             | UH1_0(v228, v229, v230, v231, v232, v233, v234, v235, v236,    │

00:07:58 #25601 [Verbose] > │ v237) -> (* StreamCons *)                                                    │

00:07:58 #25602 [Verbose] > │                 let v238 : float = v218 + v228                               │

00:07:58 #25603 [Verbose] > │                 let v239 : float = v219 + v229                               │

00:07:58 #25604 [Verbose] > │                 let v240 : float = v223 + v233                               │

00:07:58 #25605 [Verbose] > │                 let v241 : float = v220 + v230                               │

00:07:58 #25606 [Verbose] > │                 let v242 : float = v221 + v231                               │

00:07:58 #25607 [Verbose] > │                 let v243 : float = v222 + v232                               │

00:07:58 #25608 [Verbose] > │                 let v244 : float = v224 + v234                               │

00:07:58 #25609 [Verbose] > │                 let v245 : float = v225 + v235                               │

00:07:58 #25610 [Verbose] > │                 let v246 : float = v226 + v236                               │

00:07:58 #25611 [Verbose] > │                 let v247 : (unit -> UH1) = closure20(v237, v227)             │

00:07:58 #25612 [Verbose] > │                 UH1_0(v238, v239, v241, v242, v243, v240, v244, v245, v246,  │

00:07:58 #25613 [Verbose] > │ v247)                                                                        │

00:07:58 #25614 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:07:58 #25615 [Verbose] > │                 UH1_1                                                        │

00:07:58 #25616 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25617 [Verbose] > │             UH1_1                                                            │

00:07:58 #25618 [Verbose] > │     let v291 : UH1 =                                                         │

00:07:58 #25619 [Verbose] > │         match v254 with                                                      │

00:07:58 #25620 [Verbose] > │         | UH1_0(v255, v256, v257, v258, v259, v260, v261, v262, v263, v264)  │

00:07:58 #25621 [Verbose] > │ -> (* StreamCons *)                                                          │

00:07:58 #25622 [Verbose] > │             match v96 with                                                   │

00:07:58 #25623 [Verbose] > │             | UH1_0(v265, v266, v267, v268, v269, v270, v271, v272, v273,    │

00:07:58 #25624 [Verbose] > │ v274) -> (* StreamCons *)                                                    │

00:07:58 #25625 [Verbose] > │                 let v275 : float = v255 + v265                               │

00:07:58 #25626 [Verbose] > │                 let v276 : float = v256 + v266                               │

00:07:58 #25627 [Verbose] > │                 let v277 : float = v260 + v270                               │

00:07:58 #25628 [Verbose] > │                 let v278 : float = v257 + v267                               │

00:07:58 #25629 [Verbose] > │                 let v279 : float = v258 + v268                               │

00:07:58 #25630 [Verbose] > │                 let v280 : float = v259 + v269                               │

00:07:58 #25631 [Verbose] > │                 let v281 : float = v261 + v271                               │

00:07:58 #25632 [Verbose] > │                 let v282 : float = v262 + v272                               │

00:07:58 #25633 [Verbose] > │                 let v283 : float = v263 + v273                               │

00:07:58 #25634 [Verbose] > │                 let v284 : (unit -> UH1) = closure20(v274, v264)             │

00:07:58 #25635 [Verbose] > │                 UH1_0(v275, v276, v278, v279, v280, v277, v281, v282, v283,  │

00:07:58 #25636 [Verbose] > │ v284)                                                                        │

00:07:58 #25637 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:07:58 #25638 [Verbose] > │                 UH1_1                                                        │

00:07:58 #25639 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25640 [Verbose] > │             UH1_1                                                            │

00:07:58 #25641 [Verbose] > │     let v328 : UH1 =                                                         │

00:07:58 #25642 [Verbose] > │         match v291 with                                                      │

00:07:58 #25643 [Verbose] > │         | UH1_0(v292, v293, v294, v295, v296, v297, v298, v299, v300, v301)  │

00:07:58 #25644 [Verbose] > │ -> (* StreamCons *)                                                          │

00:07:58 #25645 [Verbose] > │             match v142 with                                                  │

00:07:58 #25646 [Verbose] > │             | UH1_0(v302, v303, v304, v305, v306, v307, v308, v309, v310,    │

00:07:58 #25647 [Verbose] > │ v311) -> (* StreamCons *)                                                    │

00:07:58 #25648 [Verbose] > │                 let v312 : float = v292 + v302                               │

00:07:58 #25649 [Verbose] > │                 let v313 : float = v293 + v303                               │

00:07:58 #25650 [Verbose] > │                 let v314 : float = v297 + v307                               │

00:07:58 #25651 [Verbose] > │                 let v315 : float = v294 + v304                               │

00:07:58 #25652 [Verbose] > │                 let v316 : float = v295 + v305                               │

00:07:58 #25653 [Verbose] > │                 let v317 : float = v296 + v306                               │

00:07:58 #25654 [Verbose] > │                 let v318 : float = v298 + v308                               │

00:07:58 #25655 [Verbose] > │                 let v319 : float = v299 + v309                               │

00:07:58 #25656 [Verbose] > │                 let v320 : float = v300 + v310                               │

00:07:58 #25657 [Verbose] > │                 let v321 : (unit -> UH1) = closure20(v311, v301)             │

00:07:58 #25658 [Verbose] > │                 UH1_0(v312, v313, v315, v316, v317, v314, v318, v319, v320,  │

00:07:58 #25659 [Verbose] > │ v321)                                                                        │

00:07:58 #25660 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:07:58 #25661 [Verbose] > │                 UH1_1                                                        │

00:07:58 #25662 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25663 [Verbose] > │             UH1_1                                                            │

00:07:58 #25664 [Verbose] > │     let v370 : UH0 =                                                         │

00:07:58 #25665 [Verbose] > │         match v328 with                                                      │

00:07:58 #25666 [Verbose] > │         | UH1_0(v329, v330, v331, v332, v333, v334, v335, v336, v337, v338)  │

00:07:58 #25667 [Verbose] > │ -> (* StreamCons *)                                                          │

00:07:58 #25668 [Verbose] > │             match v2 with                                                    │

00:07:58 #25669 [Verbose] > │             | UH0_0(v339, v340, v341, v342, v343, v344, v345, v346, v347,    │

00:07:58 #25670 [Verbose] > │ v348) -> (* StreamCons *)                                                    │

00:07:58 #25671 [Verbose] > │                 let v349 : float = v334 * v143                               │

00:07:58 #25672 [Verbose] > │                 let v350 : float = v344 + v349                               │

00:07:58 #25673 [Verbose] > │                 let v351 : float = v143 * v331                               │

00:07:58 #25674 [Verbose] > │                 let v352 : float = v143 * v332                               │

00:07:58 #25675 [Verbose] > │                 let v353 : float = v143 * v333                               │

00:07:58 #25676 [Verbose] > │                 let v354 : float = v341 + v351                               │

00:07:58 #25677 [Verbose] > │                 let v355 : float = v342 + v352                               │

00:07:58 #25678 [Verbose] > │                 let v356 : float = v343 + v353                               │

00:07:58 #25679 [Verbose] > │                 let v357 : float = v143 * v335                               │

00:07:58 #25680 [Verbose] > │                 let v358 : float = v143 * v336                               │

00:07:58 #25681 [Verbose] > │                 let v359 : float = v143 * v337                               │

00:07:58 #25682 [Verbose] > │                 let v360 : float = v345 + v357                               │

00:07:58 #25683 [Verbose] > │                 let v361 : float = v346 + v358                               │

00:07:58 #25684 [Verbose] > │                 let v362 : float = v347 + v359                               │

00:07:58 #25685 [Verbose] > │                 let v363 : (unit -> UH0) = closure3(v143, v348, v338)        │

00:07:58 #25686 [Verbose] > │                 UH0_0(v339, v340, v354, v355, v356, v350, v360, v361, v362,  │

00:07:58 #25687 [Verbose] > │ v363)                                                                        │

00:07:58 #25688 [Verbose] > │             | UH0_1 -> (* StreamNil *)                                       │

00:07:58 #25689 [Verbose] > │                 UH0_1                                                        │

00:07:58 #25690 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:07:58 #25691 [Verbose] > │             UH0_1                                                            │

00:07:58 #25692 [Verbose] > │     let v371 : (unit -> UH0) = closure4(v370)                                │

00:07:58 #25693 [Verbose] > │     let v372 : (unit -> UH0) = method1(v370, v371)                           │

00:07:58 #25694 [Verbose] > │     let v373 : UH0 = v372 ()                                                 │

00:07:58 #25695 [Verbose] > │     v373                                                                     │

00:07:58 #25696 [Verbose] > │ and closure18 (v0 : float) (v1 : (UH0 -> UH1)) : (UH0 -> UH0) =              │

00:07:58 #25697 [Verbose] > │     closure19(v0, v1)                                                        │

00:07:58 #25698 [Verbose] > │ and closure17 () (v0 : float) : ((UH0 -> UH1) -> (UH0 -> UH0)) =             │

00:07:58 #25699 [Verbose] > │     closure18(v0)                                                            │

00:07:58 #25700 [Verbose] > │ and method17 (v0 : UH4, v1 : UH6) : UH6 =                                    │

00:07:58 #25701 [Verbose] > │     match v0 with                                                            │

00:07:58 #25702 [Verbose] > │     | UH4_1(v2, v3) -> (* Cons *)                                            │

00:07:58 #25703 [Verbose] > │         let v4 : UH6 = method17(v3, v1)                                      │

00:07:58 #25704 [Verbose] > │         let v5 : int32 = 0                                                   │

00:07:58 #25705 [Verbose] > │         let v6 : US2 = method6(v5, v2)                                       │

00:07:58 #25706 [Verbose] > │         let v23 : US3 =                                                      │

00:07:58 #25707 [Verbose] > │             match v6 with                                                    │

00:07:58 #25708 [Verbose] > │             | US2_1 -> (* None *)                                            │

00:07:58 #25709 [Verbose] > │                 US3_1                                                        │

00:07:58 #25710 [Verbose] > │             | US2_0(v7, v8, v9, v10, v11, v12, v13, v14, v15) -> (* Some *)  │

00:07:58 #25711 [Verbose] > │                 let v16 : UH7 = UH7_1                                        │

00:07:58 #25712 [Verbose] > │                 let v17 : UH7 = method12(v2, v16)                            │

00:07:58 #25713 [Verbose] > │                 let v18 : float = 0.0                                        │

00:07:58 #25714 [Verbose] > │                 let v19 : float = method13(v17, v18)                         │

00:07:58 #25715 [Verbose] > │                 US3_0(v12, v19)                                              │

00:07:58 #25716 [Verbose] > │         UH6_1(v23, v4)                                                       │

00:07:58 #25717 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:07:58 #25718 [Verbose] > │         v1                                                                   │

00:07:58 #25719 [Verbose] > │ and method19 (v0 : UH9, v1 : int32) : int32 =                                │

00:07:58 #25720 [Verbose] > │     match v0 with                                                            │

00:07:58 #25721 [Verbose] > │     | UH9_1(v2, v3) -> (* Cons *)                                            │

00:07:58 #25722 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:07:58 #25723 [Verbose] > │         method19(v3, v4)                                                     │

00:07:58 #25724 [Verbose] > │     | UH9_0 -> (* Nil *)                                                     │

00:07:58 #25725 [Verbose] > │         v1                                                                   │

00:07:58 #25726 [Verbose] > │ and method20 (v0 : (float []), v1 : UH9, v2 : int32) : int32 =               │

00:07:58 #25727 [Verbose] > │     match v1 with                                                            │

00:07:58 #25728 [Verbose] > │     | UH9_1(v3, v4) -> (* Cons *)                                            │

00:07:58 #25729 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:07:58 #25730 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:07:58 #25731 [Verbose] > │         method20(v0, v4, v5)                                                 │

00:07:58 #25732 [Verbose] > │     | UH9_0 -> (* Nil *)                                                     │

00:07:58 #25733 [Verbose] > │         v2                                                                   │

00:07:58 #25734 [Verbose] > │ and method18 (v0 : UH9) : (float []) =                                       │

00:07:58 #25735 [Verbose] > │     let v1 : int32 = 0                                                       │

00:07:58 #25736 [Verbose] > │     let v2 : int32 = method19(v0, v1)                                        │

00:07:58 #25737 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │

00:07:58 #25738 [Verbose] > │     let v4 : int32 = 0                                                       │

00:07:58 #25739 [Verbose] > │     let v5 : int32 = method20(v3, v0, v4)                                    │

00:07:58 #25740 [Verbose] > │     v3                                                                       │

00:07:58 #25741 [Verbose] > │ and method0 () : struct (string * string * string * (struct (string * (float │

00:07:58 #25742 [Verbose] > │ []) * (float [])) [])) =                                                     │

00:07:58 #25743 [Verbose] > │     let v0 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure0()          │

00:07:58 #25744 [Verbose] > │     let v1 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v0 0.03                        │

00:07:58 #25745 [Verbose] > │     let v2 : (UH0 -> UH1) = closure8()                                       │

00:07:58 #25746 [Verbose] > │     let v3 : (UH0 -> UH0) = v1 v2                                            │

00:07:58 #25747 [Verbose] > │     let v4 : UH4 = UH4_0                                                     │

00:07:58 #25748 [Verbose] > │     let v5 : int32 = 0                                                       │

00:07:58 #25749 [Verbose] > │     let v6 : UH4 = method7(v3, v4, v5)                                       │

00:07:58 #25750 [Verbose] > │     let v7 : UH6 = UH6_0                                                     │

00:07:58 #25751 [Verbose] > │     let v8 : UH6 = method11(v6, v7)                                          │

00:07:58 #25752 [Verbose] > │     let v9 : UH8 = UH8_0                                                     │

00:07:58 #25753 [Verbose] > │     let v10 : UH8 = method14(v8, v9)                                         │

00:07:58 #25754 [Verbose] > │     let v11 : UH9 = UH9_0                                                    │

00:07:58 #25755 [Verbose] > │     let v12 : UH9 = UH9_0                                                    │

00:07:58 #25756 [Verbose] > │     let struct (v13 : UH9, v14 : UH9) = method15(v10, v11, v12)              │

00:07:58 #25757 [Verbose] > │     let v15 : UH9 = UH9_0                                                    │

00:07:58 #25758 [Verbose] > │     let v16 : UH9 = method16(v13, v15)                                       │

00:07:58 #25759 [Verbose] > │     let v17 : UH9 = UH9_0                                                    │

00:07:58 #25760 [Verbose] > │     let v18 : UH9 = method16(v14, v17)                                       │

00:07:58 #25761 [Verbose] > │     let v19 : (float -> ((UH0 -> UH1) -> (UH0 -> UH0))) = closure17()        │

00:07:58 #25762 [Verbose] > │     let v20 : ((UH0 -> UH1) -> (UH0 -> UH0)) = v19 0.03                      │

00:07:58 #25763 [Verbose] > │     let v21 : (UH0 -> UH0) = v20 v2                                          │

00:07:58 #25764 [Verbose] > │     let v22 : UH4 = UH4_0                                                    │

00:07:58 #25765 [Verbose] > │     let v23 : int32 = 0                                                      │

00:07:58 #25766 [Verbose] > │     let v24 : UH4 = method7(v21, v22, v23)                                   │

00:07:58 #25767 [Verbose] > │     let v25 : UH6 = UH6_0                                                    │

00:07:58 #25768 [Verbose] > │     let v26 : UH6 = method17(v24, v25)                                       │

00:07:58 #25769 [Verbose] > │     let v27 : UH8 = UH8_0                                                    │

00:07:58 #25770 [Verbose] > │     let v28 : UH8 = method14(v26, v27)                                       │

00:07:58 #25771 [Verbose] > │     let v29 : UH9 = UH9_0                                                    │

00:07:58 #25772 [Verbose] > │     let v30 : UH9 = UH9_0                                                    │

00:07:58 #25773 [Verbose] > │     let struct (v31 : UH9, v32 : UH9) = method15(v28, v29, v30)              │

00:07:58 #25774 [Verbose] > │     let v33 : UH9 = UH9_0                                                    │

00:07:58 #25775 [Verbose] > │     let v34 : UH9 = method16(v31, v33)                                       │

00:07:58 #25776 [Verbose] > │     let v35 : UH9 = UH9_0                                                    │

00:07:58 #25777 [Verbose] > │     let v36 : UH9 = method16(v32, v35)                                       │

00:07:58 #25778 [Verbose] > │     let v37 : (float []) = method18(v16)                                     │

00:07:58 #25779 [Verbose] > │     let v38 : (float []) = method18(v18)                                     │

00:07:58 #25780 [Verbose] > │     let v39 : (float []) = method18(v34)                                     │

00:07:58 #25781 [Verbose] > │     let v40 : (float []) = method18(v36)                                     │

00:07:58 #25782 [Verbose] > │     let v41 : string = "euler-cromer"                                        │

00:07:58 #25783 [Verbose] > │     let v42 : string = "runge-kutta 4"                                       │

00:07:58 #25784 [Verbose] > │     let v43 : (struct (string * (float []) * (float [])) []) = [|struct      │

00:07:58 #25785 [Verbose] > │ (v41, v37, v38); struct (v42, v39, v40)|]                                    │

00:07:58 #25786 [Verbose] > │     let v44 : string = "system kinetic energy versus time"                   │

00:07:58 #25787 [Verbose] > │     let v45 : string = "time (s)"                                            │

00:07:58 #25788 [Verbose] > │     let v46 : string = "system kinetic energy (j)"                           │

00:07:58 #25789 [Verbose] > │     struct (v44, v45, v46, v43)                                              │

00:07:58 #25790 [Verbose] > │ method0()                                                                    │

00:07:58 #25791 [Verbose] > │                                                                              │

00:07:58 #25792 [Verbose] > │                                                                              │

00:07:58 #25793 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:58 #25794 [Verbose] >

00:07:58 #25795 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:07:58 #25796 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:07:58 #25797 [Verbose] > │ ### wave 2                                                                   │

00:07:58 #25798 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:07:58 #25799 [Verbose] >

00:07:58 #25800 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:07:58 #25801 [Verbose] > // // test

00:07:58 #25802 [Verbose] >

00:07:58 #25803 [Verbose] > inl linear_spring k re (particle_state st1) (particle_state st2) =

00:07:58 #25804 [Verbose] >     inl r1 = st1.pos_vec

00:07:58 #25805 [Verbose] >     inl r2 = st2.pos_vec

00:07:58 #25806 [Verbose] >     inl r21 = r2 ^-^ r1

00:07:58 #25807 [Verbose] >     inl r21mag = magnitude r21

00:07:58 #25808 [Verbose] >     -k * (r21mag - re) *^ r21 ^/ r21mag

00:07:58 #25809 [Verbose] >

00:07:58 #25810 [Verbose] > inl fixed_linear_spring k re r1 =

00:07:58 #25811 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:58 #25812 [Verbose] >     linear_spring k re (particle_state { default_particle_state' with pos_vec =

00:07:58 #25813 [Verbose] > r1 })

00:07:58 #25814 [Verbose] >

00:07:58 #25815 [Verbose] > inl forces_string () =

00:07:58 #25816 [Verbose] >     [[

00:07:58 #25817 [Verbose] >         ExternalForce (0i32, fixed_linear_spring 5384 0 (zero_vec ()))

00:07:58 #25818 [Verbose] >         ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ()))

00:07:58 #25819 [Verbose] >     ]] /@ (

00:07:58 #25820 [Verbose] >         listm'.init_series 0 59 1

00:07:58 #25821 [Verbose] >         |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0))

00:07:58 #25822 [Verbose] >     )

00:07:58 #25823 [Verbose] >

00:07:58 #25824 [Verbose] > inl string_update dt =

00:07:58 #25825 [Verbose] >     update_mps (join runge_kutta_4 dt) (join forces_string ())

00:07:58 #25826 [Verbose] >

00:07:58 #25827 [Verbose] > inl string_initial_overtone n =

00:07:58 #25828 [Verbose] >     inl ball_mass = 0.0008293 * 0.65 / 64

00:07:58 #25829 [Verbose] >     inl (particle_state default_particle_state') = default_particle_state ()

00:07:58 #25830 [Verbose] >     listm'.init_series 0.01 0.64 0.01

00:07:58 #25831 [Verbose] >     |> listm.map (fun x =>

00:07:58 #25832 [Verbose] >         inl y = 0.005 * sin (conv n * pi * x / 0.65)

00:07:58 #25833 [Verbose] >         particle_state {

00:07:58 #25834 [Verbose] >             default_particle_state' with

00:07:58 #25835 [Verbose] >                 mass = ball_mass

00:07:58 #25836 [Verbose] >                 pos_vec = x *^ i_hat () ^+^ y *^ j_hat ()

00:07:58 #25837 [Verbose] >                 velocity = zero_vec ()

00:07:58 #25838 [Verbose] >         }

00:07:58 #25839 [Verbose] >     )

00:07:58 #25840 [Verbose] >     |> stream.from_list

00:07:58 #25841 [Verbose] >     |> multi_particle_state

00:07:58 #25842 [Verbose] >

00:07:58 #25843 [Verbose] > let main () =

00:07:58 #25844 [Verbose] >     inl ~frames = listm'.init_series 0 65 1f64 |> stream.from_list

00:07:58 #25845 [Verbose] >     inl ~initial_state = string_initial_overtone 3i32

00:07:58 #25846 [Verbose] >     inl frames =

00:07:58 #25847 [Verbose] >         frames

00:07:58 #25848 [Verbose] >         |> stream.map (fun n =>

00:07:58 #25849 [Verbose] >             inl (multi_particle_state sts) =

00:07:58 #25850 [Verbose] >                 stream.iterate (string_update 0.000025) initial_state |>

00:07:58 #25851 [Verbose] > stream.item n

00:07:58 #25852 [Verbose] >             inl x, y =

00:07:58 #25853 [Verbose] >                 [[ zero_vec () ]]

00:07:58 #25854 [Verbose] >                 /@ (sts |> stream.map (fun (particle_state st) => st.pos_vec) |>

00:07:58 #25855 [Verbose] > stream.to_list)

00:07:58 #25856 [Verbose] >                 /@ [[ 0.65 *^ i_hat () ]]

00:07:58 #25857 [Verbose] >                 |> listm.map (fun r => r.x, r.y)

00:07:58 #25858 [Verbose] >                 |> stream.from_list

00:07:58 #25859 [Verbose] >                 |> stream.unzip

00:07:58 #25860 [Verbose] >             inl x : a i32 _ = x |> stream.to_list |> listm.toArray

00:07:58 #25861 [Verbose] >             inl y : a i32 _ = y |> stream.to_list |> listm.toArray

00:07:58 #25862 [Verbose] >             x, y

00:07:58 #25863 [Verbose] >         )

00:07:58 #25864 [Verbose] >

00:07:58 #25865 [Verbose] >     inl plots =

00:07:58 #25866 [Verbose] >         frames

00:07:58 #25867 [Verbose] >         |> stream.indexed

00:07:58 #25868 [Verbose] >         |> stream.map (fun ((n : i32), (x, y)) =>

00:07:58 #25869 [Verbose] >             "wave",

00:07:58 #25870 [Verbose] >             "position (m)",

00:07:58 #25871 [Verbose] >             "displacement (m)",

00:07:58 #25872 [Verbose] >             ;[[

00:07:58 #25873 [Verbose] >                 ($"$\"{!n}\"" : string), x, y

00:07:58 #25874 [Verbose] >             ]]

00:07:58 #25875 [Verbose] >         )

00:07:58 #25876 [Verbose] >

00:07:58 #25877 [Verbose] >     plots |> stream.to_list |> listm.toArray : a i32 _

00:07:58 #25878 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1257-3051-5140-5c24a1daeccb\main.spi

00:08:06 #25879 [Verbose] >

00:08:06 #25880 [Verbose] > ╭─[ 8.07s - return value ]─────────────────────────────────────────────────────╮

00:08:06 #25881 [Verbose] > │ <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr │

00:08:06 #25882 [Verbose] > │ ><td>0</td><td><svg width="640" height="480" viewBox="0 0 640 480"           │

00:08:06 #25883 [Verbose] > │ xmlns="http://www.w3.org/2000/svg">                                          │

00:08:06 #25884 [Verbose] > │ <rect x="0" y="0" width="640" height="480" opacity="1" fill="#141414"        │

00:08:06 #25885 [Verbose] > │ stroke="none"/>                                                              │

00:08:06 #25886 [Verbose] > │ <text x="320" y="10" dy="0.76em" text-anchor="middle"                        │

00:08:06 #25887 [Verbose] > │ font-family="sans-serif" font-size="9.67741935483871" opacity="1"            │

00:08:06 #25888 [Verbose] > │ fill="#FFFFFF">                                                              │

00:08:06 #25889 [Verbose] > │ wave                                                                         │

00:08:06 #25890 [Verbose] > │ </text>                                                                      │

00:08:06 #25891 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" y1="424" x2="62" │

00:08:06 #25892 [Verbose] > │ y2="75"/>                                                                    │

00:08:06 #25893 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" y1="424" x2="69" │

00:08:06 #25894 [Verbose] > │ y2="75"/>                                                                    │

00:08:06 #25895 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" y1="424" x2="77" │

00:08:06 #25896 [Verbose] > │ y2="75"/>                                                                    │

00:08:06 #25897 [Verbose] > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" y1="424"         │

00:08:06 #25898 [Verbose] > │ x2="85...                                                                    │

00:08:06 #25899 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:08:06 #25900 [Verbose] >

00:08:06 #25901 [Verbose] > ╭─[ 8.13s - stdout ]───────────────────────────────────────────────────────────╮

00:08:06 #25902 [Verbose] > │ type UH0 =                                                                   │

00:08:06 #25903 [Verbose] > │     | UH0_0 of float * (unit -> UH0)                                         │

00:08:06 #25904 [Verbose] > │     | UH0_1                                                                  │

00:08:06 #25905 [Verbose] > │ and UH1 =                                                                    │

00:08:06 #25906 [Verbose] > │     | UH1_0 of float * float * float * float * float * float * float * float │

00:08:06 #25907 [Verbose] > │ * float * (unit -> UH1)                                                      │

00:08:06 #25908 [Verbose] > │     | UH1_1                                                                  │

00:08:06 #25909 [Verbose] > │ and UH2 =                                                                    │

00:08:06 #25910 [Verbose] > │     | UH2_0 of (float []) * (float []) * (unit -> UH2)                       │

00:08:06 #25911 [Verbose] > │     | UH2_1                                                                  │

00:08:06 #25912 [Verbose] > │ and UH3 =                                                                    │

00:08:06 #25913 [Verbose] > │     | UH3_0 of float * float * float * float * float * float * float * float │

00:08:06 #25914 [Verbose] > │ * float * (unit -> UH3)                                                      │

00:08:06 #25915 [Verbose] > │     | UH3_1                                                                  │

00:08:06 #25916 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:08:06 #25917 [Verbose] > │     | US0_0 of f0_0 : (unit -> UH1)                                          │

00:08:06 #25918 [Verbose] > │     | US0_1 of f1_0 : UH1                                                    │

00:08:06 #25919 [Verbose] > │ and Mut0 = {mutable l0 : US0}                                                │

00:08:06 #25920 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:08:06 #25921 [Verbose] > │     | US1_0 of f0_0 : int32 * f0_1 : (struct (float * float * float * float  │

00:08:06 #25922 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float))  │

00:08:06 #25923 [Verbose] > │     | US1_1 of f1_0 : int32 * f1_1 : int32 * f1_2 : (struct (float * float * │

00:08:06 #25924 [Verbose] > │ float * float * float * float * float * float * float) -> (struct (float *   │

00:08:06 #25925 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct     │

00:08:06 #25926 [Verbose] > │ (float * float * float)))                                                    │

00:08:06 #25927 [Verbose] > │ and UH4 =                                                                    │

00:08:06 #25928 [Verbose] > │     | UH4_0                                                                  │

00:08:06 #25929 [Verbose] > │     | UH4_1 of US1 * UH4                                                     │

00:08:06 #25930 [Verbose] > │ and UH5 =                                                                    │

00:08:06 #25931 [Verbose] > │     | UH5_0 of int32 * float * float * float * float * float * float * float │

00:08:06 #25932 [Verbose] > │ * float * float * (unit -> UH5)                                              │

00:08:06 #25933 [Verbose] > │     | UH5_1                                                                  │

00:08:06 #25934 [Verbose] > │ and UH6 =                                                                    │

00:08:06 #25935 [Verbose] > │     | UH6_0                                                                  │

00:08:06 #25936 [Verbose] > │     | UH6_1 of (struct (float * float * float * float * float * float *      │

00:08:06 #25937 [Verbose] > │ float * float * float) -> struct (float * float * float)) * UH6              │

00:08:06 #25938 [Verbose] > │ and [<Struct>] US2 =                                                         │

00:08:06 #25939 [Verbose] > │     | US2_0 of f0_0 : (struct (float * float * float * float * float * float │

00:08:06 #25940 [Verbose] > │ * float * float * float) -> struct (float * float * float))                  │

00:08:06 #25941 [Verbose] > │     | US2_1                                                                  │

00:08:06 #25942 [Verbose] > │ and [<Struct>] US3 =                                                         │

00:08:06 #25943 [Verbose] > │     | US3_0 of f0_0 : float * f0_1 : float * f0_2 : float * f0_3 : float *   │

00:08:06 #25944 [Verbose] > │ f0_4 : float * f0_5 : float * f0_6 : float * f0_7 : float * f0_8 : float     │

00:08:06 #25945 [Verbose] > │     | US3_1                                                                  │

00:08:06 #25946 [Verbose] > │ and UH7 =                                                                    │

00:08:06 #25947 [Verbose] > │     | UH7_0                                                                  │

00:08:06 #25948 [Verbose] > │     | UH7_1 of float * float * float * UH7                                   │

00:08:06 #25949 [Verbose] > │ and UH8 =                                                                    │

00:08:06 #25950 [Verbose] > │     | UH8_0 of UH1 * (unit -> UH8)                                           │

00:08:06 #25951 [Verbose] > │     | UH8_1                                                                  │

00:08:06 #25952 [Verbose] > │ and [<Struct>] US4 =                                                         │

00:08:06 #25953 [Verbose] > │     | US4_0 of f0_0 : UH1                                                    │

00:08:06 #25954 [Verbose] > │     | US4_1                                                                  │

00:08:06 #25955 [Verbose] > │ and UH9 =                                                                    │

00:08:06 #25956 [Verbose] > │     | UH9_0 of float * float * float * (unit -> UH9)                         │

00:08:06 #25957 [Verbose] > │     | UH9_1                                                                  │

00:08:06 #25958 [Verbose] > │ and UH10 =                                                                   │

00:08:06 #25959 [Verbose] > │     | UH10_0                                                                 │

00:08:06 #25960 [Verbose] > │     | UH10_1 of float * float * UH10                                         │

00:08:06 #25961 [Verbose] > │ and UH11 =                                                                   │

00:08:06 #25962 [Verbose] > │     | UH11_0 of float * float * (unit -> UH11)                               │

00:08:06 #25963 [Verbose] > │     | UH11_1                                                                 │

00:08:06 #25964 [Verbose] > │ and UH12 =                                                                   │

00:08:06 #25965 [Verbose] > │     | UH12_0                                                                 │

00:08:06 #25966 [Verbose] > │     | UH12_1 of float * UH12                                                 │

00:08:06 #25967 [Verbose] > │ and UH13 =                                                                   │

00:08:06 #25968 [Verbose] > │     | UH13_0 of int32 * (float []) * (float []) * (unit -> UH13)             │

00:08:06 #25969 [Verbose] > │     | UH13_1                                                                 │

00:08:06 #25970 [Verbose] > │ and UH14 =                                                                   │

00:08:06 #25971 [Verbose] > │     | UH14_0 of string * string * string * (struct (string * (float []) *    │

00:08:06 #25972 [Verbose] > │ (float [])) []) * (unit -> UH14)                                             │

00:08:06 #25973 [Verbose] > │     | UH14_1                                                                 │

00:08:06 #25974 [Verbose] > │ and UH15 =                                                                   │

00:08:06 #25975 [Verbose] > │     | UH15_0                                                                 │

00:08:06 #25976 [Verbose] > │     | UH15_1 of string * string * string * (struct (string * (float []) *    │

00:08:06 #25977 [Verbose] > │ (float [])) []) * UH15                                                       │

00:08:06 #25978 [Verbose] > │ let rec closure65 () () : UH0 =                                              │

00:08:06 #25979 [Verbose] > │     UH0_1                                                                    │

00:08:06 #25980 [Verbose] > │ and closure64 () () : UH0 =                                                  │

00:08:06 #25981 [Verbose] > │     let v0 : (unit -> UH0) = closure65()                                     │

00:08:06 #25982 [Verbose] > │     UH0_0(65.0, v0)                                                          │

00:08:06 #25983 [Verbose] > │ and closure63 () () : UH0 =                                                  │

00:08:06 #25984 [Verbose] > │     let v0 : (unit -> UH0) = closure64()                                     │

00:08:06 #25985 [Verbose] > │     UH0_0(64.0, v0)                                                          │

00:08:06 #25986 [Verbose] > │ and closure62 () () : UH0 =                                                  │

00:08:06 #25987 [Verbose] > │     let v0 : (unit -> UH0) = closure63()                                     │

00:08:06 #25988 [Verbose] > │     UH0_0(63.0, v0)                                                          │

00:08:06 #25989 [Verbose] > │ and closure61 () () : UH0 =                                                  │

00:08:06 #25990 [Verbose] > │     let v0 : (unit -> UH0) = closure62()                                     │

00:08:06 #25991 [Verbose] > │     UH0_0(62.0, v0)                                                          │

00:08:06 #25992 [Verbose] > │ and closure60 () () : UH0 =                                                  │

00:08:06 #25993 [Verbose] > │     let v0 : (unit -> UH0) = closure61()                                     │

00:08:06 #25994 [Verbose] > │     UH0_0(61.0, v0)                                                          │

00:08:06 #25995 [Verbose] > │ and closure59 () () : UH0 =                                                  │

00:08:06 #25996 [Verbose] > │     let v0 : (unit -> UH0) = closure60()                                     │

00:08:06 #25997 [Verbose] > │     UH0_0(60.0, v0)                                                          │

00:08:06 #25998 [Verbose] > │ and closure58 () () : UH0 =                                                  │

00:08:06 #25999 [Verbose] > │     let v0 : (unit -> UH0) = closure59()                                     │

00:08:06 #26000 [Verbose] > │     UH0_0(59.0, v0)                                                          │

00:08:06 #26001 [Verbose] > │ and closure57 () () : UH0 =                                                  │

00:08:06 #26002 [Verbose] > │     let v0 : (unit -> UH0) = closure58()                                     │

00:08:06 #26003 [Verbose] > │     UH0_0(58.0, v0)                                                          │

00:08:06 #26004 [Verbose] > │ and closure56 () () : UH0 =                                                  │

00:08:06 #26005 [Verbose] > │     let v0 : (unit -> UH0) = closure57()                                     │

00:08:06 #26006 [Verbose] > │     UH0_0(57.0, v0)                                                          │

00:08:06 #26007 [Verbose] > │ and closure55 () () : UH0 =                                                  │

00:08:06 #26008 [Verbose] > │     let v0 : (unit -> UH0) = closure56()                                     │

00:08:06 #26009 [Verbose] > │     UH0_0(56.0, v0)                                                          │

00:08:06 #26010 [Verbose] > │ and closure54 () () : UH0 =                                                  │

00:08:06 #26011 [Verbose] > │     let v0 : (unit -> UH0) = closure55()                                     │

00:08:06 #26012 [Verbose] > │     UH0_0(55.0, v0)                                                          │

00:08:06 #26013 [Verbose] > │ and closure53 () () : UH0 =                                                  │

00:08:06 #26014 [Verbose] > │     let v0 : (unit -> UH0) = closure54()                                     │

00:08:06 #26015 [Verbose] > │     UH0_0(54.0, v0)                                                          │

00:08:06 #26016 [Verbose] > │ and closure52 () () : UH0 =                                                  │

00:08:06 #26017 [Verbose] > │     let v0 : (unit -> UH0) = closure53()                                     │

00:08:06 #26018 [Verbose] > │     UH0_0(53.0, v0)                                                          │

00:08:06 #26019 [Verbose] > │ and closure51 () () : UH0 =                                                  │

00:08:06 #26020 [Verbose] > │     let v0 : (unit -> UH0) = closure52()                                     │

00:08:06 #26021 [Verbose] > │     UH0_0(52.0, v0)                                                          │

00:08:06 #26022 [Verbose] > │ and closure50 () () : UH0 =                                                  │

00:08:06 #26023 [Verbose] > │     let v0 : (unit -> UH0) = closure51()                                     │

00:08:06 #26024 [Verbose] > │     UH0_0(51.0, v0)                                                          │

00:08:06 #26025 [Verbose] > │ and closure49 () () : UH0 =                                                  │

00:08:06 #26026 [Verbose] > │     let v0 : (unit -> UH0) = closure50()                                     │

00:08:06 #26027 [Verbose] > │     UH0_0(50.0, v0)                                                          │

00:08:06 #26028 [Verbose] > │ and closure48 () () : UH0 =                                                  │

00:08:06 #26029 [Verbose] > │     let v0 : (unit -> UH0) = closure49()                                     │

00:08:06 #26030 [Verbose] > │     UH0_0(49.0, v0)                                                          │

00:08:06 #26031 [Verbose] > │ and closure47 () () : UH0 =                                                  │

00:08:06 #26032 [Verbose] > │     let v0 : (unit -> UH0) = closure48()                                     │

00:08:06 #26033 [Verbose] > │     UH0_0(48.0, v0)                                                          │

00:08:06 #26034 [Verbose] > │ and closure46 () () : UH0 =                                                  │

00:08:06 #26035 [Verbose] > │     let v0 : (unit -> UH0) = closure47()                                     │

00:08:06 #26036 [Verbose] > │     UH0_0(47.0, v0)                                                          │

00:08:06 #26037 [Verbose] > │ and closure45 () () : UH0 =                                                  │

00:08:06 #26038 [Verbose] > │     let v0 : (unit -> UH0) = closure46()                                     │

00:08:06 #26039 [Verbose] > │     UH0_0(46.0, v0)                                                          │

00:08:06 #26040 [Verbose] > │ and closure44 () () : UH0 =                                                  │

00:08:06 #26041 [Verbose] > │     let v0 : (unit -> UH0) = closure45()                                     │

00:08:06 #26042 [Verbose] > │     UH0_0(45.0, v0)                                                          │

00:08:06 #26043 [Verbose] > │ and closure43 () () : UH0 =                                                  │

00:08:06 #26044 [Verbose] > │     let v0 : (unit -> UH0) = closure44()                                     │

00:08:06 #26045 [Verbose] > │     UH0_0(44.0, v0)                                                          │

00:08:06 #26046 [Verbose] > │ and closure42 () () : UH0 =                                                  │

00:08:06 #26047 [Verbose] > │     let v0 : (unit -> UH0) = closure43()                                     │

00:08:06 #26048 [Verbose] > │     UH0_0(43.0, v0)                                                          │

00:08:06 #26049 [Verbose] > │ and closure41 () () : UH0 =                                                  │

00:08:06 #26050 [Verbose] > │     let v0 : (unit -> UH0) = closure42()                                     │

00:08:06 #26051 [Verbose] > │     UH0_0(42.0, v0)                                                          │

00:08:06 #26052 [Verbose] > │ and closure40 () () : UH0 =                                                  │

00:08:06 #26053 [Verbose] > │     let v0 : (unit -> UH0) = closure41()                                     │

00:08:06 #26054 [Verbose] > │     UH0_0(41.0, v0)                                                          │

00:08:06 #26055 [Verbose] > │ and closure39 () () : UH0 =                                                  │

00:08:06 #26056 [Verbose] > │     let v0 : (unit -> UH0) = closure40()                                     │

00:08:06 #26057 [Verbose] > │     UH0_0(40.0, v0)                                                          │

00:08:06 #26058 [Verbose] > │ and closure38 () () : UH0 =                                                  │

00:08:06 #26059 [Verbose] > │     let v0 : (unit -> UH0) = closure39()                                     │

00:08:06 #26060 [Verbose] > │     UH0_0(39.0, v0)                                                          │

00:08:06 #26061 [Verbose] > │ and closure37 () () : UH0 =                                                  │

00:08:06 #26062 [Verbose] > │     let v0 : (unit -> UH0) = closure38()                                     │

00:08:06 #26063 [Verbose] > │     UH0_0(38.0, v0)                                                          │

00:08:06 #26064 [Verbose] > │ and closure36 () () : UH0 =                                                  │

00:08:06 #26065 [Verbose] > │     let v0 : (unit -> UH0) = closure37()                                     │

00:08:06 #26066 [Verbose] > │     UH0_0(37.0, v0)                                                          │

00:08:06 #26067 [Verbose] > │ and closure35 () () : UH0 =                                                  │

00:08:06 #26068 [Verbose] > │     let v0 : (unit -> UH0) = closure36()                                     │

00:08:06 #26069 [Verbose] > │     UH0_0(36.0, v0)                                                          │

00:08:06 #26070 [Verbose] > │ and closure34 () () : UH0 =                                                  │

00:08:06 #26071 [Verbose] > │     let v0 : (unit -> UH0) = closure35()                                     │

00:08:06 #26072 [Verbose] > │     UH0_0(35.0, v0)                                                          │

00:08:06 #26073 [Verbose] > │ and closure33 () () : UH0 =                                                  │

00:08:06 #26074 [Verbose] > │     let v0 : (unit -> UH0) = closure34()                                     │

00:08:06 #26075 [Verbose] > │     UH0_0(34.0, v0)                                                          │

00:08:06 #26076 [Verbose] > │ and closure32 () () : UH0 =                                                  │

00:08:06 #26077 [Verbose] > │     let v0 : (unit -> UH0) = closure33()                                     │

00:08:06 #26078 [Verbose] > │     UH0_0(33.0, v0)                                                          │

00:08:06 #26079 [Verbose] > │ and closure31 () () : UH0 =                                                  │

00:08:06 #26080 [Verbose] > │     let v0 : (unit -> UH0) = closure32()                                     │

00:08:06 #26081 [Verbose] > │     UH0_0(32.0, v0)                                                          │

00:08:06 #26082 [Verbose] > │ and closure30 () () : UH0 =                                                  │

00:08:06 #26083 [Verbose] > │     let v0 : (unit -> UH0) = closure31()                                     │

00:08:06 #26084 [Verbose] > │     UH0_0(31.0, v0)                                                          │

00:08:06 #26085 [Verbose] > │ and closure29 () () : UH0 =                                                  │

00:08:06 #26086 [Verbose] > │     let v0 : (unit -> UH0) = closure30()                                     │

00:08:06 #26087 [Verbose] > │     UH0_0(30.0, v0)                                                          │

00:08:06 #26088 [Verbose] > │ and closure28 () () : UH0 =                                                  │

00:08:06 #26089 [Verbose] > │     let v0 : (unit -> UH0) = closure29()                                     │

00:08:06 #26090 [Verbose] > │     UH0_0(29.0, v0)                                                          │

00:08:06 #26091 [Verbose] > │ and closure27 () () : UH0 =                                                  │

00:08:06 #26092 [Verbose] > │     let v0 : (unit -> UH0) = closure28()                                     │

00:08:06 #26093 [Verbose] > │     UH0_0(28.0, v0)                                                          │

00:08:06 #26094 [Verbose] > │ and closure26 () () : UH0 =                                                  │

00:08:06 #26095 [Verbose] > │     let v0 : (unit -> UH0) = closure27()                                     │

00:08:06 #26096 [Verbose] > │     UH0_0(27.0, v0)                                                          │

00:08:06 #26097 [Verbose] > │ and closure25 () () : UH0 =                                                  │

00:08:06 #26098 [Verbose] > │     let v0 : (unit -> UH0) = closure26()                                     │

00:08:06 #26099 [Verbose] > │     UH0_0(26.0, v0)                                                          │

00:08:06 #26100 [Verbose] > │ and closure24 () () : UH0 =                                                  │

00:08:06 #26101 [Verbose] > │     let v0 : (unit -> UH0) = closure25()                                     │

00:08:06 #26102 [Verbose] > │     UH0_0(25.0, v0)                                                          │

00:08:06 #26103 [Verbose] > │ and closure23 () () : UH0 =                                                  │

00:08:06 #26104 [Verbose] > │     let v0 : (unit -> UH0) = closure24()                                     │

00:08:06 #26105 [Verbose] > │     UH0_0(24.0, v0)                                                          │

00:08:06 #26106 [Verbose] > │ and closure22 () () : UH0 =                                                  │

00:08:06 #26107 [Verbose] > │     let v0 : (unit -> UH0) = closure23()                                     │

00:08:06 #26108 [Verbose] > │     UH0_0(23.0, v0)                                                          │

00:08:06 #26109 [Verbose] > │ and closure21 () () : UH0 =                                                  │

00:08:06 #26110 [Verbose] > │     let v0 : (unit -> UH0) = closure22()                                     │

00:08:06 #26111 [Verbose] > │     UH0_0(22.0, v0)                                                          │

00:08:06 #26112 [Verbose] > │ and closure20 () () : UH0 =                                                  │

00:08:06 #26113 [Verbose] > │     let v0 : (unit -> UH0) = closure21()                                     │

00:08:06 #26114 [Verbose] > │     UH0_0(21.0, v0)                                                          │

00:08:06 #26115 [Verbose] > │ and closure19 () () : UH0 =                                                  │

00:08:06 #26116 [Verbose] > │     let v0 : (unit -> UH0) = closure20()                                     │

00:08:06 #26117 [Verbose] > │     UH0_0(20.0, v0)                                                          │

00:08:06 #26118 [Verbose] > │ and closure18 () () : UH0 =                                                  │

00:08:06 #26119 [Verbose] > │     let v0 : (unit -> UH0) = closure19()                                     │

00:08:06 #26120 [Verbose] > │     UH0_0(19.0, v0)                                                          │

00:08:06 #26121 [Verbose] > │ and closure17 () () : UH0 =                                                  │

00:08:06 #26122 [Verbose] > │     let v0 : (unit -> UH0) = closure18()                                     │

00:08:06 #26123 [Verbose] > │     UH0_0(18.0, v0)                                                          │

00:08:06 #26124 [Verbose] > │ and closure16 () () : UH0 =                                                  │

00:08:06 #26125 [Verbose] > │     let v0 : (unit -> UH0) = closure17()                                     │

00:08:06 #26126 [Verbose] > │     UH0_0(17.0, v0)                                                          │

00:08:06 #26127 [Verbose] > │ and closure15 () () : UH0 =                                                  │

00:08:06 #26128 [Verbose] > │     let v0 : (unit -> UH0) = closure16()                                     │

00:08:06 #26129 [Verbose] > │     UH0_0(16.0, v0)                                                          │

00:08:06 #26130 [Verbose] > │ and closure14 () () : UH0 =                                                  │

00:08:06 #26131 [Verbose] > │     let v0 : (unit -> UH0) = closure15()                                     │

00:08:06 #26132 [Verbose] > │     UH0_0(15.0, v0)                                                          │

00:08:06 #26133 [Verbose] > │ and closure13 () () : UH0 =                                                  │

00:08:06 #26134 [Verbose] > │     let v0 : (unit -> UH0) = closure14()                                     │

00:08:06 #26135 [Verbose] > │     UH0_0(14.0, v0)                                                          │

00:08:06 #26136 [Verbose] > │ and closure12 () () : UH0 =                                                  │

00:08:06 #26137 [Verbose] > │     let v0 : (unit -> UH0) = closure13()                                     │

00:08:06 #26138 [Verbose] > │     UH0_0(13.0, v0)                                                          │

00:08:06 #26139 [Verbose] > │ and closure11 () () : UH0 =                                                  │

00:08:06 #26140 [Verbose] > │     let v0 : (unit -> UH0) = closure12()                                     │

00:08:06 #26141 [Verbose] > │     UH0_0(12.0, v0)                                                          │

00:08:06 #26142 [Verbose] > │ and closure10 () () : UH0 =                                                  │

00:08:06 #26143 [Verbose] > │     let v0 : (unit -> UH0) = closure11()                                     │

00:08:06 #26144 [Verbose] > │     UH0_0(11.0, v0)                                                          │

00:08:06 #26145 [Verbose] > │ and closure9 () () : UH0 =                                                   │

00:08:06 #26146 [Verbose] > │     let v0 : (unit -> UH0) = closure10()                                     │

00:08:06 #26147 [Verbose] > │     UH0_0(10.0, v0)                                                          │

00:08:06 #26148 [Verbose] > │ and closure8 () () : UH0 =                                                   │

00:08:06 #26149 [Verbose] > │     let v0 : (unit -> UH0) = closure9()                                      │

00:08:06 #26150 [Verbose] > │     UH0_0(9.0, v0)                                                           │

00:08:06 #26151 [Verbose] > │ and closure7 () () : UH0 =                                                   │

00:08:06 #26152 [Verbose] > │     let v0 : (unit -> UH0) = closure8()                                      │

00:08:06 #26153 [Verbose] > │     UH0_0(8.0, v0)                                                           │

00:08:06 #26154 [Verbose] > │ and closure6 () () : UH0 =                                                   │

00:08:06 #26155 [Verbose] > │     let v0 : (unit -> UH0) = closure7()                                      │

00:08:06 #26156 [Verbose] > │     UH0_0(7.0, v0)                                                           │

00:08:06 #26157 [Verbose] > │ and closure5 () () : UH0 =                                                   │

00:08:06 #26158 [Verbose] > │     let v0 : (unit -> UH0) = closure6()                                      │

00:08:06 #26159 [Verbose] > │     UH0_0(6.0, v0)                                                           │

00:08:06 #26160 [Verbose] > │ and closure4 () () : UH0 =                                                   │

00:08:06 #26161 [Verbose] > │     let v0 : (unit -> UH0) = closure5()                                      │

00:08:06 #26162 [Verbose] > │     UH0_0(5.0, v0)                                                           │

00:08:06 #26163 [Verbose] > │ and closure3 () () : UH0 =                                                   │

00:08:06 #26164 [Verbose] > │     let v0 : (unit -> UH0) = closure4()                                      │

00:08:06 #26165 [Verbose] > │     UH0_0(4.0, v0)                                                           │

00:08:06 #26166 [Verbose] > │ and closure2 () () : UH0 =                                                   │

00:08:06 #26167 [Verbose] > │     let v0 : (unit -> UH0) = closure3()                                      │

00:08:06 #26168 [Verbose] > │     UH0_0(3.0, v0)                                                           │

00:08:06 #26169 [Verbose] > │ and closure1 () () : UH0 =                                                   │

00:08:06 #26170 [Verbose] > │     let v0 : (unit -> UH0) = closure2()                                      │

00:08:06 #26171 [Verbose] > │     UH0_0(2.0, v0)                                                           │

00:08:06 #26172 [Verbose] > │ and closure0 () () : UH0 =                                                   │

00:08:06 #26173 [Verbose] > │     let v0 : (unit -> UH0) = closure1()                                      │

00:08:06 #26174 [Verbose] > │     UH0_0(1.0, v0)                                                           │

00:08:06 #26175 [Verbose] > │ and closure129 () () : UH1 =                                                 │

00:08:06 #26176 [Verbose] > │     UH1_1                                                                    │

00:08:06 #26177 [Verbose] > │ and closure128 () () : UH1 =                                                 │

00:08:06 #26178 [Verbose] > │     let v0 : (unit -> UH1) = closure129()                                    │

00:08:06 #26179 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.64, 0.0007224452478461016, 0.0, 0.0, 0.0,  │

00:08:06 #26180 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26181 [Verbose] > │ and closure127 () () : UH1 =                                                 │

00:08:06 #26182 [Verbose] > │     let v0 : (unit -> UH1) = closure128()                                    │

00:08:06 #26183 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.63, 0.001429728391993452, 0.0, 0.0, 0.0,   │

00:08:06 #26184 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26185 [Verbose] > │ and closure126 () () : UH1 =                                                 │

00:08:06 #26186 [Verbose] > │     let v0 : (unit -> UH1) = closure127()                                    │

00:08:06 #26187 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.62, 0.0021070055388626528, 0.0, 0.0, 0.0,  │

00:08:06 #26188 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26189 [Verbose] > │ and closure125 () () : UH1 =                                                 │

00:08:06 #26190 [Verbose] > │     let v0 : (unit -> UH1) = closure126()                                    │

00:08:06 #26191 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.61, 0.0027400625367733585, 0.0, 0.0, 0.0,  │

00:08:06 #26192 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26193 [Verbose] > │ and closure124 () () : UH1 =                                                 │

00:08:06 #26194 [Verbose] > │     let v0 : (unit -> UH1) = closure125()                                    │

00:08:06 #26195 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.6, 0.0033156132912039783, 0.0, 0.0, 0.0,   │

00:08:06 #26196 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26197 [Verbose] > │ and closure123 () () : UH1 =                                                 │

00:08:06 #26198 [Verbose] > │     let v0 : (unit -> UH1) = closure124()                                    │

00:08:06 #26199 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.59, 0.003821578602729245, 0.0, 0.0, 0.0,   │

00:08:06 #26200 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26201 [Verbose] > │ and closure122 () () : UH1 =                                                 │

00:08:06 #26202 [Verbose] > │     let v0 : (unit -> UH1) = closure123()                                    │

00:08:06 #26203 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.5800000000000001, 0.004247339675607605,    │

00:08:06 #26204 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26205 [Verbose] > │ and closure121 () () : UH1 =                                                 │

00:08:06 #26206 [Verbose] > │     let v0 : (unit -> UH1) = closure122()                                    │

00:08:06 #26207 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.5700000000000001, 0.004583960976582912,    │

00:08:06 #26208 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26209 [Verbose] > │ and closure120 () () : UH1 =                                                 │

00:08:06 #26210 [Verbose] > │     let v0 : (unit -> UH1) = closure121()                                    │

00:08:06 #26211 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.56, 0.004824377766717758, 0.0, 0.0, 0.0,   │

00:08:06 #26212 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26213 [Verbose] > │ and closure119 () () : UH1 =                                                 │

00:08:06 #26214 [Verbose] > │     let v0 : (unit -> UH1) = closure120()                                    │

00:08:06 #26215 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.55, 0.004963544370490271, 0.0, 0.0, 0.0,   │

00:08:06 #26216 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26217 [Verbose] > │ and closure118 () () : UH1 =                                                 │

00:08:06 #26218 [Verbose] > │     let v0 : (unit -> UH1) = closure119()                                    │

00:08:06 #26219 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.54, 0.004998540070400965, 0.0, 0.0, 0.0,   │

00:08:06 #26220 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26221 [Verbose] > │ and closure117 () () : UH1 =                                                 │

00:08:06 #26222 [Verbose] > │     let v0 : (unit -> UH1) = closure118()                                    │

00:08:06 #26223 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.53, 0.004928630404658255, 0.0, 0.0, 0.0,   │

00:08:06 #26224 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26225 [Verbose] > │ and closure116 () () : UH1 =                                                 │

00:08:06 #26226 [Verbose] > │     let v0 : (unit -> UH1) = closure117()                                    │

00:08:06 #26227 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.52, 0.004755282581475766, 0.0, 0.0, 0.0,   │

00:08:06 #26228 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26229 [Verbose] > │ and closure115 () () : UH1 =                                                 │

00:08:06 #26230 [Verbose] > │     let v0 : (unit -> UH1) = closure116()                                    │

00:08:06 #26231 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.51, 0.0044821346864785195, 0.0, 0.0, 0.0,  │

00:08:06 #26232 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26233 [Verbose] > │ and closure114 () () : UH1 =                                                 │

00:08:06 #26234 [Verbose] > │     let v0 : (unit -> UH1) = closure115()                                    │

00:08:06 #26235 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.5, 0.0041149193294682815, 0.0, 0.0, 0.0,   │

00:08:06 #26236 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26237 [Verbose] > │ and closure113 () () : UH1 =                                                 │

00:08:06 #26238 [Verbose] > │     let v0 : (unit -> UH1) = closure114()                                    │

00:08:06 #26239 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.49, 0.0036613433329888622, 0.0, 0.0, 0.0,  │

00:08:06 #26240 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26241 [Verbose] > │ and closure112 () () : UH1 =                                                 │

00:08:06 #26242 [Verbose] > │     let v0 : (unit -> UH1) = closure113()                                    │

00:08:06 #26243 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.48000000000000004, 0.003130925987691568,   │

00:08:06 #26244 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26245 [Verbose] > │ and closure111 () () : UH1 =                                                 │

00:08:06 #26246 [Verbose] > │     let v0 : (unit -> UH1) = closure112()                                    │

00:08:06 #26247 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.47000000000000003, 0.002534799269067953,   │

00:08:06 #26248 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26249 [Verbose] > │ and closure110 () () : UH1 =                                                 │

00:08:06 #26250 [Verbose] > │     let v0 : (unit -> UH1) = closure111()                                    │

00:08:06 #26251 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.46, 0.0018854742084416021, 0.0, 0.0, 0.0,  │

00:08:06 #26252 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26253 [Verbose] > │ and closure109 () () : UH1 =                                                 │

00:08:06 #26254 [Verbose] > │     let v0 : (unit -> UH1) = closure110()                                    │

00:08:06 #26255 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.45, 0.0011965783214377866, 0.0, 0.0, 0.0,  │

00:08:06 #26256 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26257 [Verbose] > │ and closure108 () () : UH1 =                                                 │

00:08:06 #26258 [Verbose] > │     let v0 : (unit -> UH1) = closure109()                                    │

00:08:06 #26259 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.44, 0.0004825696045725713, 0.0, 0.0, 0.0,  │

00:08:06 #26260 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26261 [Verbose] > │ and closure107 () () : UH1 =                                                 │

00:08:06 #26262 [Verbose] > │     let v0 : (unit -> UH1) = closure108()                                    │

00:08:06 #26263 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.43, -0.00024156689762753724, 0.0, 0.0,     │

00:08:06 #26264 [Verbose] > │ 0.0, 0.0, 0.0, v0)                                                           │

00:08:06 #26265 [Verbose] > │ and closure106 () () : UH1 =                                                 │

00:08:06 #26266 [Verbose] > │     let v0 : (unit -> UH1) = closure107()                                    │

00:08:06 #26267 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.42000000000000004, -0.0009606335867685414, │

00:08:06 #26268 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26269 [Verbose] > │ and closure105 () () : UH1 =                                                 │

00:08:06 #26270 [Verbose] > │     let v0 : (unit -> UH1) = closure106()                                    │

00:08:06 #26271 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.41000000000000003, -0.0016595392656426435, │

00:08:06 #26272 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26273 [Verbose] > │ and closure104 () () : UH1 =                                                 │

00:08:06 #26274 [Verbose] > │     let v0 : (unit -> UH1) = closure105()                                    │

00:08:06 #26275 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.4, -0.002323615860218846, 0.0, 0.0, 0.0,   │

00:08:06 #26276 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26277 [Verbose] > │ and closure103 () () : UH1 =                                                 │

00:08:06 #26278 [Verbose] > │     let v0 : (unit -> UH1) = closure104()                                    │

00:08:06 #26279 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.39, -0.002938926261462367, 0.0, 0.0, 0.0,  │

00:08:06 #26280 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26281 [Verbose] > │ and closure102 () () : UH1 =                                                 │

00:08:06 #26282 [Verbose] > │     let v0 : (unit -> UH1) = closure103()                                    │

00:08:06 #26283 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.38, -0.0034925568262446837, 0.0, 0.0, 0.0, │

00:08:06 #26284 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26285 [Verbose] > │ and closure101 () () : UH1 =                                                 │

00:08:06 #26286 [Verbose] > │     let v0 : (unit -> UH1) = closure102()                                    │

00:08:06 #26287 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.37, -0.003972888398568774, 0.0, 0.0, 0.0,  │

00:08:06 #26288 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26289 [Verbose] > │ and closure100 () () : UH1 =                                                 │

00:08:06 #26290 [Verbose] > │     let v0 : (unit -> UH1) = closure101()                                    │

00:08:06 #26291 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.36000000000000004, -0.004369840163132589,  │

00:08:06 #26292 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26293 [Verbose] > │ and closure99 () () : UH1 =                                                  │

00:08:06 #26294 [Verbose] > │     let v0 : (unit -> UH1) = closure100()                                    │

00:08:06 #26295 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.35000000000000003, -0.004675081213427074,  │

00:08:06 #26296 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26297 [Verbose] > │ and closure98 () () : UH1 =                                                  │

00:08:06 #26298 [Verbose] > │     let v0 : (unit -> UH1) = closure99()                                     │

00:08:06 #26299 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.34, -0.004882205394146361, 0.0, 0.0, 0.0,  │

00:08:06 #26300 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26301 [Verbose] > │ and closure97 () () : UH1 =                                                  │

00:08:06 #26302 [Verbose] > │     let v0 : (unit -> UH1) = closure98()                                     │

00:08:06 #26303 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.33, -0.004986865748457456, 0.0, 0.0, 0.0,  │

00:08:06 #26304 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26305 [Verbose] > │ and closure96 () () : UH1 =                                                  │

00:08:06 #26306 [Verbose] > │     let v0 : (unit -> UH1) = closure97()                                     │

00:08:06 #26307 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.32, -0.004986865748457456, 0.0, 0.0, 0.0,  │

00:08:06 #26308 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26309 [Verbose] > │ and closure95 () () : UH1 =                                                  │

00:08:06 #26310 [Verbose] > │     let v0 : (unit -> UH1) = closure96()                                     │

00:08:06 #26311 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.31, -0.004882205394146359, 0.0, 0.0, 0.0,  │

00:08:06 #26312 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26313 [Verbose] > │ and closure94 () () : UH1 =                                                  │

00:08:06 #26314 [Verbose] > │     let v0 : (unit -> UH1) = closure95()                                     │

00:08:06 #26315 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.3, -0.004675081213427074, 0.0, 0.0, 0.0,   │

00:08:06 #26316 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26317 [Verbose] > │ and closure93 () () : UH1 =                                                  │

00:08:06 #26318 [Verbose] > │     let v0 : (unit -> UH1) = closure94()                                     │

00:08:06 #26319 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.29000000000000004, -0.00436984016313259,   │

00:08:06 #26320 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26321 [Verbose] > │ and closure92 () () : UH1 =                                                  │

00:08:06 #26322 [Verbose] > │     let v0 : (unit -> UH1) = closure93()                                     │

00:08:06 #26323 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.28, -0.003972888398568771, 0.0, 0.0, 0.0,  │

00:08:06 #26324 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26325 [Verbose] > │ and closure91 () () : UH1 =                                                  │

00:08:06 #26326 [Verbose] > │     let v0 : (unit -> UH1) = closure92()                                     │

00:08:06 #26327 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.27, -0.003492556826244686, 0.0, 0.0, 0.0,  │

00:08:06 #26328 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26329 [Verbose] > │ and closure90 () () : UH1 =                                                  │

00:08:06 #26330 [Verbose] > │     let v0 : (unit -> UH1) = closure91()                                     │

00:08:06 #26331 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.26, -0.0029389262614623636, 0.0, 0.0, 0.0, │

00:08:06 #26332 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26333 [Verbose] > │ and closure89 () () : UH1 =                                                  │

00:08:06 #26334 [Verbose] > │     let v0 : (unit -> UH1) = closure90()                                     │

00:08:06 #26335 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.25, -0.002323615860218842, 0.0, 0.0, 0.0,  │

00:08:06 #26336 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26337 [Verbose] > │ and closure88 () () : UH1 =                                                  │

00:08:06 #26338 [Verbose] > │     let v0 : (unit -> UH1) = closure89()                                     │

00:08:06 #26339 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.24000000000000002, -0.001659539265642642,  │

00:08:06 #26340 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26341 [Verbose] > │ and closure87 () () : UH1 =                                                  │

00:08:06 #26342 [Verbose] > │     let v0 : (unit -> UH1) = closure88()                                     │

00:08:06 #26343 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.23, -0.0009606335867685418, 0.0, 0.0, 0.0, │

00:08:06 #26344 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26345 [Verbose] > │ and closure86 () () : UH1 =                                                  │

00:08:06 #26346 [Verbose] > │     let v0 : (unit -> UH1) = closure87()                                     │

00:08:06 #26347 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.22, -0.00024156689762753317, 0.0, 0.0,     │

00:08:06 #26348 [Verbose] > │ 0.0, 0.0, 0.0, v0)                                                           │

00:08:06 #26349 [Verbose] > │ and closure85 () () : UH1 =                                                  │

00:08:06 #26350 [Verbose] > │     let v0 : (unit -> UH1) = closure86()                                     │

00:08:06 #26351 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.21000000000000002, 0.00048256960457257535, │

00:08:06 #26352 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26353 [Verbose] > │ and closure84 () () : UH1 =                                                  │

00:08:06 #26354 [Verbose] > │     let v0 : (unit -> UH1) = closure85()                                     │

00:08:06 #26355 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.2, 0.0011965783214377905, 0.0, 0.0, 0.0,   │

00:08:06 #26356 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26357 [Verbose] > │ and closure83 () () : UH1 =                                                  │

00:08:06 #26358 [Verbose] > │     let v0 : (unit -> UH1) = closure84()                                     │

00:08:06 #26359 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.19, 0.0018854742084416015, 0.0, 0.0, 0.0,  │

00:08:06 #26360 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26361 [Verbose] > │ and closure82 () () : UH1 =                                                  │

00:08:06 #26362 [Verbose] > │     let v0 : (unit -> UH1) = closure83()                                     │

00:08:06 #26363 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.18000000000000002, 0.002534799269067951,   │

00:08:06 #26364 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26365 [Verbose] > │ and closure81 () () : UH1 =                                                  │

00:08:06 #26366 [Verbose] > │     let v0 : (unit -> UH1) = closure82()                                     │

00:08:06 #26367 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.17, 0.0031309259876915697, 0.0, 0.0, 0.0,  │

00:08:06 #26368 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26369 [Verbose] > │ and closure80 () () : UH1 =                                                  │

00:08:06 #26370 [Verbose] > │     let v0 : (unit -> UH1) = closure81()                                     │

00:08:06 #26371 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.16, 0.0036613433329888666, 0.0, 0.0, 0.0,  │

00:08:06 #26372 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26373 [Verbose] > │ and closure79 () () : UH1 =                                                  │

00:08:06 #26374 [Verbose] > │     let v0 : (unit -> UH1) = closure80()                                     │

00:08:06 #26375 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.15000000000000002, 0.0041149193294682815,  │

00:08:06 #26376 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26377 [Verbose] > │ and closure78 () () : UH1 =                                                  │

00:08:06 #26378 [Verbose] > │     let v0 : (unit -> UH1) = closure79()                                     │

00:08:06 #26379 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.14, 0.004482134686478519, 0.0, 0.0, 0.0,   │

00:08:06 #26380 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26381 [Verbose] > │ and closure77 () () : UH1 =                                                  │

00:08:06 #26382 [Verbose] > │     let v0 : (unit -> UH1) = closure78()                                     │

00:08:06 #26383 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.13, 0.004755282581475768, 0.0, 0.0, 0.0,   │

00:08:06 #26384 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26385 [Verbose] > │ and closure76 () () : UH1 =                                                  │

00:08:06 #26386 [Verbose] > │     let v0 : (unit -> UH1) = closure77()                                     │

00:08:06 #26387 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.12, 0.004928630404658255, 0.0, 0.0, 0.0,   │

00:08:06 #26388 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26389 [Verbose] > │ and closure75 () () : UH1 =                                                  │

00:08:06 #26390 [Verbose] > │     let v0 : (unit -> UH1) = closure76()                                     │

00:08:06 #26391 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.11, 0.004998540070400965, 0.0, 0.0, 0.0,   │

00:08:06 #26392 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26393 [Verbose] > │ and closure74 () () : UH1 =                                                  │

00:08:06 #26394 [Verbose] > │     let v0 : (unit -> UH1) = closure75()                                     │

00:08:06 #26395 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.09999999999999999, 0.00496354437049027,    │

00:08:06 #26396 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26397 [Verbose] > │ and closure73 () () : UH1 =                                                  │

00:08:06 #26398 [Verbose] > │     let v0 : (unit -> UH1) = closure74()                                     │

00:08:06 #26399 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.09, 0.004824377766717757, 0.0, 0.0, 0.0,   │

00:08:06 #26400 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26401 [Verbose] > │ and closure72 () () : UH1 =                                                  │

00:08:06 #26402 [Verbose] > │     let v0 : (unit -> UH1) = closure73()                                     │

00:08:06 #26403 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.08, 0.004583960976582912, 0.0, 0.0, 0.0,   │

00:08:06 #26404 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26405 [Verbose] > │ and closure71 () () : UH1 =                                                  │

00:08:06 #26406 [Verbose] > │     let v0 : (unit -> UH1) = closure72()                                     │

00:08:06 #26407 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.06999999999999999, 0.004247339675607605,   │

00:08:06 #26408 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26409 [Verbose] > │ and closure70 () () : UH1 =                                                  │

00:08:06 #26410 [Verbose] > │     let v0 : (unit -> UH1) = closure71()                                     │

00:08:06 #26411 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.060000000000000005, 0.0038215786027292415, │

00:08:06 #26412 [Verbose] > │ 0.0, 0.0, 0.0, 0.0, 0.0, v0)                                                 │

00:08:06 #26413 [Verbose] > │ and closure69 () () : UH1 =                                                  │

00:08:06 #26414 [Verbose] > │     let v0 : (unit -> UH1) = closure70()                                     │

00:08:06 #26415 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.05, 0.0033156132912039757, 0.0, 0.0, 0.0,  │

00:08:06 #26416 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26417 [Verbose] > │ and closure68 () () : UH1 =                                                  │

00:08:06 #26418 [Verbose] > │     let v0 : (unit -> UH1) = closure69()                                     │

00:08:06 #26419 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.04, 0.00274006253677335, 0.0, 0.0, 0.0,    │

00:08:06 #26420 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26421 [Verbose] > │ and closure67 () () : UH1 =                                                  │

00:08:06 #26422 [Verbose] > │     let v0 : (unit -> UH1) = closure68()                                     │

00:08:06 #26423 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.03, 0.0021070055388626454, 0.0, 0.0, 0.0,  │

00:08:06 #26424 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26425 [Verbose] > │ and closure66 () () : UH1 =                                                  │

00:08:06 #26426 [Verbose] > │     let v0 : (unit -> UH1) = closure67()                                     │

00:08:06 #26427 [Verbose] > │     UH1_0(0.0, 8.422578125E-06, 0.02, 0.0014297283919934465, 0.0, 0.0, 0.0,  │

00:08:06 #26428 [Verbose] > │ 0.0, 0.0, v0)                                                                │

00:08:06 #26429 [Verbose] > │ and closure132 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 =           │

00:08:06 #26430 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │

00:08:06 #26431 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │

00:08:06 #26432 [Verbose] > │     match v2 with                                                            │

00:08:06 #26433 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │

00:08:06 #26434 [Verbose] > │         match v3 with                                                        │

00:08:06 #26435 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │

00:08:06 #26436 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26437 [Verbose] > │             let v24 : float = v9 * 1.25E-05                                  │

00:08:06 #26438 [Verbose] > │             let v25 : float = v19 + v24                                      │

00:08:06 #26439 [Verbose] > │             let v26 : float = 1.25E-05 * v6                                  │

00:08:06 #26440 [Verbose] > │             let v27 : float = 1.25E-05 * v7                                  │

00:08:06 #26441 [Verbose] > │             let v28 : float = 1.25E-05 * v8                                  │

00:08:06 #26442 [Verbose] > │             let v29 : float = v16 + v26                                      │

00:08:06 #26443 [Verbose] > │             let v30 : float = v17 + v27                                      │

00:08:06 #26444 [Verbose] > │             let v31 : float = v18 + v28                                      │

00:08:06 #26445 [Verbose] > │             let v32 : float = 1.25E-05 * v10                                 │

00:08:06 #26446 [Verbose] > │             let v33 : float = 1.25E-05 * v11                                 │

00:08:06 #26447 [Verbose] > │             let v34 : float = 1.25E-05 * v12                                 │

00:08:06 #26448 [Verbose] > │             let v35 : float = v20 + v32                                      │

00:08:06 #26449 [Verbose] > │             let v36 : float = v21 + v33                                      │

00:08:06 #26450 [Verbose] > │             let v37 : float = v22 + v34                                      │

00:08:06 #26451 [Verbose] > │             let v38 : (unit -> UH1) = closure132(v23, v13)                   │

00:08:06 #26452 [Verbose] > │             UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)          │

00:08:06 #26453 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:08:06 #26454 [Verbose] > │             UH1_1                                                            │

00:08:06 #26455 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │

00:08:06 #26456 [Verbose] > │         UH1_1                                                                │

00:08:06 #26457 [Verbose] > │ and closure133 (v0 : UH1) () : UH1 =                                         │

00:08:06 #26458 [Verbose] > │     v0                                                                       │

00:08:06 #26459 [Verbose] > │ and closure134 (v0 : UH1, v1 : Mut0) () : UH1 =                              │

00:08:06 #26460 [Verbose] > │     let v2 : US0 = v1.l0                                                     │

00:08:06 #26461 [Verbose] > │     match v2 with                                                            │

00:08:06 #26462 [Verbose] > │     | US0_1(v3) -> (* Computed *)                                            │

00:08:06 #26463 [Verbose] > │         v3                                                                   │

00:08:06 #26464 [Verbose] > │     | US0_0(v4) -> (* NotComputed *)                                         │

00:08:06 #26465 [Verbose] > │         let v5 : UH1 = v4 ()                                                 │

00:08:06 #26466 [Verbose] > │         let v20 : UH1 =                                                      │

00:08:06 #26467 [Verbose] > │             match v5 with                                                    │

00:08:06 #26468 [Verbose] > │             | UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) -> (*     │

00:08:06 #26469 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26470 [Verbose] > │                 let v17 : (unit -> UH1) = method3(v0, v16)                   │

00:08:06 #26471 [Verbose] > │                 UH1_0(v7, v8, v9, v10, v11, v12, v13, v14, v15, v17)         │

00:08:06 #26472 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:08:06 #26473 [Verbose] > │                 UH1_1                                                        │

00:08:06 #26474 [Verbose] > │         let v21 : US0 = US0_1(v20)                                           │

00:08:06 #26475 [Verbose] > │         v1.l0 <- v21                                                         │

00:08:06 #26476 [Verbose] > │         v20                                                                  │

00:08:06 #26477 [Verbose] > │ and method3 (v0 : UH1, v1 : (unit -> UH1)) : (unit -> UH1) =                 │

00:08:06 #26478 [Verbose] > │     let v2 : US0 = US0_0(v1)                                                 │

00:08:06 #26479 [Verbose] > │     let v3 : Mut0 = {l0 = v2} : Mut0                                         │

00:08:06 #26480 [Verbose] > │     closure134(v0, v3)                                                       │

00:08:06 #26481 [Verbose] > │ and closure135 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 =           │

00:08:06 #26482 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │

00:08:06 #26483 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │

00:08:06 #26484 [Verbose] > │     match v2 with                                                            │

00:08:06 #26485 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │

00:08:06 #26486 [Verbose] > │         match v3 with                                                        │

00:08:06 #26487 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │

00:08:06 #26488 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26489 [Verbose] > │             let v24 : float = v9 * 2.5E-05                                   │

00:08:06 #26490 [Verbose] > │             let v25 : float = v19 + v24                                      │

00:08:06 #26491 [Verbose] > │             let v26 : float = 2.5E-05 * v6                                   │

00:08:06 #26492 [Verbose] > │             let v27 : float = 2.5E-05 * v7                                   │

00:08:06 #26493 [Verbose] > │             let v28 : float = 2.5E-05 * v8                                   │

00:08:06 #26494 [Verbose] > │             let v29 : float = v16 + v26                                      │

00:08:06 #26495 [Verbose] > │             let v30 : float = v17 + v27                                      │

00:08:06 #26496 [Verbose] > │             let v31 : float = v18 + v28                                      │

00:08:06 #26497 [Verbose] > │             let v32 : float = 2.5E-05 * v10                                  │

00:08:06 #26498 [Verbose] > │             let v33 : float = 2.5E-05 * v11                                  │

00:08:06 #26499 [Verbose] > │             let v34 : float = 2.5E-05 * v12                                  │

00:08:06 #26500 [Verbose] > │             let v35 : float = v20 + v32                                      │

00:08:06 #26501 [Verbose] > │             let v36 : float = v21 + v33                                      │

00:08:06 #26502 [Verbose] > │             let v37 : float = v22 + v34                                      │

00:08:06 #26503 [Verbose] > │             let v38 : (unit -> UH1) = closure135(v23, v13)                   │

00:08:06 #26504 [Verbose] > │             UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)          │

00:08:06 #26505 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:08:06 #26506 [Verbose] > │             UH1_1                                                            │

00:08:06 #26507 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │

00:08:06 #26508 [Verbose] > │         UH1_1                                                                │

00:08:06 #26509 [Verbose] > │ and closure136 (v0 : (unit -> UH3), v1 : (unit -> UH3)) () : UH3 =           │

00:08:06 #26510 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │

00:08:06 #26511 [Verbose] > │     let v3 : UH3 = v0 ()                                                     │

00:08:06 #26512 [Verbose] > │     match v2 with                                                            │

00:08:06 #26513 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │

00:08:06 #26514 [Verbose] > │         match v3 with                                                        │

00:08:06 #26515 [Verbose] > │         | UH3_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │

00:08:06 #26516 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26517 [Verbose] > │             let v24 : float = v4 + v14                                       │

00:08:06 #26518 [Verbose] > │             let v25 : float = v5 + v15                                       │

00:08:06 #26519 [Verbose] > │             let v26 : float = v9 + v19                                       │

00:08:06 #26520 [Verbose] > │             let v27 : float = v6 + v16                                       │

00:08:06 #26521 [Verbose] > │             let v28 : float = v7 + v17                                       │

00:08:06 #26522 [Verbose] > │             let v29 : float = v8 + v18                                       │

00:08:06 #26523 [Verbose] > │             let v30 : float = v10 + v20                                      │

00:08:06 #26524 [Verbose] > │             let v31 : float = v11 + v21                                      │

00:08:06 #26525 [Verbose] > │             let v32 : float = v12 + v22                                      │

00:08:06 #26526 [Verbose] > │             let v33 : (unit -> UH3) = closure136(v23, v13)                   │

00:08:06 #26527 [Verbose] > │             UH3_0(v24, v25, v27, v28, v29, v26, v30, v31, v32, v33)          │

00:08:06 #26528 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26529 [Verbose] > │             UH3_1                                                            │

00:08:06 #26530 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │

00:08:06 #26531 [Verbose] > │         UH3_1                                                                │

00:08:06 #26532 [Verbose] > │ and closure137 (v0 : (unit -> UH1), v1 : (unit -> UH3)) () : UH1 =           │

00:08:06 #26533 [Verbose] > │     let v2 : UH3 = v1 ()                                                     │

00:08:06 #26534 [Verbose] > │     let v3 : UH1 = v0 ()                                                     │

00:08:06 #26535 [Verbose] > │     match v2 with                                                            │

00:08:06 #26536 [Verbose] > │     | UH3_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) -> (* StreamCons *)  │

00:08:06 #26537 [Verbose] > │         match v3 with                                                        │

00:08:06 #26538 [Verbose] > │         | UH1_0(v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) -> (*      │

00:08:06 #26539 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26540 [Verbose] > │             let v24 : float = v9 * 4.166666666666667E-06                     │

00:08:06 #26541 [Verbose] > │             let v25 : float = v19 + v24                                      │

00:08:06 #26542 [Verbose] > │             let v26 : float = 4.166666666666667E-06 * v6                     │

00:08:06 #26543 [Verbose] > │             let v27 : float = 4.166666666666667E-06 * v7                     │

00:08:06 #26544 [Verbose] > │             let v28 : float = 4.166666666666667E-06 * v8                     │

00:08:06 #26545 [Verbose] > │             let v29 : float = v16 + v26                                      │

00:08:06 #26546 [Verbose] > │             let v30 : float = v17 + v27                                      │

00:08:06 #26547 [Verbose] > │             let v31 : float = v18 + v28                                      │

00:08:06 #26548 [Verbose] > │             let v32 : float = 4.166666666666667E-06 * v10                    │

00:08:06 #26549 [Verbose] > │             let v33 : float = 4.166666666666667E-06 * v11                    │

00:08:06 #26550 [Verbose] > │             let v34 : float = 4.166666666666667E-06 * v12                    │

00:08:06 #26551 [Verbose] > │             let v35 : float = v20 + v32                                      │

00:08:06 #26552 [Verbose] > │             let v36 : float = v21 + v33                                      │

00:08:06 #26553 [Verbose] > │             let v37 : float = v22 + v34                                      │

00:08:06 #26554 [Verbose] > │             let v38 : (unit -> UH1) = closure137(v23, v13)                   │

00:08:06 #26555 [Verbose] > │             UH1_0(v14, v15, v29, v30, v31, v25, v35, v36, v37, v38)          │

00:08:06 #26556 [Verbose] > │         | UH1_1 -> (* StreamNil *)                                           │

00:08:06 #26557 [Verbose] > │             UH1_1                                                            │

00:08:06 #26558 [Verbose] > │     | UH3_1 -> (* StreamNil *)                                               │

00:08:06 #26559 [Verbose] > │         UH1_1                                                                │

00:08:06 #26560 [Verbose] > │ and closure131 (v0 : (UH1 -> UH3)) (v1 : UH1) : UH1 =                        │

00:08:06 #26561 [Verbose] > │     let v2 : UH3 = v0 v1                                                     │

00:08:06 #26562 [Verbose] > │     let v44 : UH1 =                                                          │

00:08:06 #26563 [Verbose] > │         match v2 with                                                        │

00:08:06 #26564 [Verbose] > │         | UH3_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons  │

00:08:06 #26565 [Verbose] > │ *)                                                                           │

00:08:06 #26566 [Verbose] > │             match v1 with                                                    │

00:08:06 #26567 [Verbose] > │             | UH1_0(v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) -> (*  │

00:08:06 #26568 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26569 [Verbose] > │                 let v23 : float = v8 * 1.25E-05                              │

00:08:06 #26570 [Verbose] > │                 let v24 : float = v18 + v23                                  │

00:08:06 #26571 [Verbose] > │                 let v25 : float = 1.25E-05 * v5                              │

00:08:06 #26572 [Verbose] > │                 let v26 : float = 1.25E-05 * v6                              │

00:08:06 #26573 [Verbose] > │                 let v27 : float = 1.25E-05 * v7                              │

00:08:06 #26574 [Verbose] > │                 let v28 : float = v15 + v25                                  │

00:08:06 #26575 [Verbose] > │                 let v29 : float = v16 + v26                                  │

00:08:06 #26576 [Verbose] > │                 let v30 : float = v17 + v27                                  │

00:08:06 #26577 [Verbose] > │                 let v31 : float = 1.25E-05 * v9                              │

00:08:06 #26578 [Verbose] > │                 let v32 : float = 1.25E-05 * v10                             │

00:08:06 #26579 [Verbose] > │                 let v33 : float = 1.25E-05 * v11                             │

00:08:06 #26580 [Verbose] > │                 let v34 : float = v19 + v31                                  │

00:08:06 #26581 [Verbose] > │                 let v35 : float = v20 + v32                                  │

00:08:06 #26582 [Verbose] > │                 let v36 : float = v21 + v33                                  │

00:08:06 #26583 [Verbose] > │                 let v37 : (unit -> UH1) = closure132(v22, v12)               │

00:08:06 #26584 [Verbose] > │                 UH1_0(v13, v14, v28, v29, v30, v24, v34, v35, v36, v37)      │

00:08:06 #26585 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:08:06 #26586 [Verbose] > │                 UH1_1                                                        │

00:08:06 #26587 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26588 [Verbose] > │             UH1_1                                                            │

00:08:06 #26589 [Verbose] > │     let v45 : (unit -> UH1) = closure133(v44)                                │

00:08:06 #26590 [Verbose] > │     let v46 : (unit -> UH1) = method3(v44, v45)                              │

00:08:06 #26591 [Verbose] > │     let v47 : UH1 = v46 ()                                                   │

00:08:06 #26592 [Verbose] > │     let v48 : UH3 = v0 v47                                                   │

00:08:06 #26593 [Verbose] > │     let v90 : UH1 =                                                          │

00:08:06 #26594 [Verbose] > │         match v48 with                                                       │

00:08:06 #26595 [Verbose] > │         | UH3_0(v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) -> (*      │

00:08:06 #26596 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26597 [Verbose] > │             match v1 with                                                    │

00:08:06 #26598 [Verbose] > │             | UH1_0(v59, v60, v61, v62, v63, v64, v65, v66, v67, v68) -> (*  │

00:08:06 #26599 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26600 [Verbose] > │                 let v69 : float = v54 * 1.25E-05                             │

00:08:06 #26601 [Verbose] > │                 let v70 : float = v64 + v69                                  │

00:08:06 #26602 [Verbose] > │                 let v71 : float = 1.25E-05 * v51                             │

00:08:06 #26603 [Verbose] > │                 let v72 : float = 1.25E-05 * v52                             │

00:08:06 #26604 [Verbose] > │                 let v73 : float = 1.25E-05 * v53                             │

00:08:06 #26605 [Verbose] > │                 let v74 : float = v61 + v71                                  │

00:08:06 #26606 [Verbose] > │                 let v75 : float = v62 + v72                                  │

00:08:06 #26607 [Verbose] > │                 let v76 : float = v63 + v73                                  │

00:08:06 #26608 [Verbose] > │                 let v77 : float = 1.25E-05 * v55                             │

00:08:06 #26609 [Verbose] > │                 let v78 : float = 1.25E-05 * v56                             │

00:08:06 #26610 [Verbose] > │                 let v79 : float = 1.25E-05 * v57                             │

00:08:06 #26611 [Verbose] > │                 let v80 : float = v65 + v77                                  │

00:08:06 #26612 [Verbose] > │                 let v81 : float = v66 + v78                                  │

00:08:06 #26613 [Verbose] > │                 let v82 : float = v67 + v79                                  │

00:08:06 #26614 [Verbose] > │                 let v83 : (unit -> UH1) = closure132(v68, v58)               │

00:08:06 #26615 [Verbose] > │                 UH1_0(v59, v60, v74, v75, v76, v70, v80, v81, v82, v83)      │

00:08:06 #26616 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:08:06 #26617 [Verbose] > │                 UH1_1                                                        │

00:08:06 #26618 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26619 [Verbose] > │             UH1_1                                                            │

00:08:06 #26620 [Verbose] > │     let v91 : (unit -> UH1) = closure133(v90)                                │

00:08:06 #26621 [Verbose] > │     let v92 : (unit -> UH1) = method3(v90, v91)                              │

00:08:06 #26622 [Verbose] > │     let v93 : UH1 = v92 ()                                                   │

00:08:06 #26623 [Verbose] > │     let v94 : UH3 = v0 v93                                                   │

00:08:06 #26624 [Verbose] > │     let v136 : UH1 =                                                         │

00:08:06 #26625 [Verbose] > │         match v94 with                                                       │

00:08:06 #26626 [Verbose] > │         | UH3_0(v95, v96, v97, v98, v99, v100, v101, v102, v103, v104) -> (* │

00:08:06 #26627 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #26628 [Verbose] > │             match v1 with                                                    │

00:08:06 #26629 [Verbose] > │             | UH1_0(v105, v106, v107, v108, v109, v110, v111, v112, v113,    │

00:08:06 #26630 [Verbose] > │ v114) -> (* StreamCons *)                                                    │

00:08:06 #26631 [Verbose] > │                 let v115 : float = v100 * 2.5E-05                            │

00:08:06 #26632 [Verbose] > │                 let v116 : float = v110 + v115                               │

00:08:06 #26633 [Verbose] > │                 let v117 : float = 2.5E-05 * v97                             │

00:08:06 #26634 [Verbose] > │                 let v118 : float = 2.5E-05 * v98                             │

00:08:06 #26635 [Verbose] > │                 let v119 : float = 2.5E-05 * v99                             │

00:08:06 #26636 [Verbose] > │                 let v120 : float = v107 + v117                               │

00:08:06 #26637 [Verbose] > │                 let v121 : float = v108 + v118                               │

00:08:06 #26638 [Verbose] > │                 let v122 : float = v109 + v119                               │

00:08:06 #26639 [Verbose] > │                 let v123 : float = 2.5E-05 * v101                            │

00:08:06 #26640 [Verbose] > │                 let v124 : float = 2.5E-05 * v102                            │

00:08:06 #26641 [Verbose] > │                 let v125 : float = 2.5E-05 * v103                            │

00:08:06 #26642 [Verbose] > │                 let v126 : float = v111 + v123                               │

00:08:06 #26643 [Verbose] > │                 let v127 : float = v112 + v124                               │

00:08:06 #26644 [Verbose] > │                 let v128 : float = v113 + v125                               │

00:08:06 #26645 [Verbose] > │                 let v129 : (unit -> UH1) = closure135(v114, v104)            │

00:08:06 #26646 [Verbose] > │                 UH1_0(v105, v106, v120, v121, v122, v116, v126, v127, v128,  │

00:08:06 #26647 [Verbose] > │ v129)                                                                        │

00:08:06 #26648 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:08:06 #26649 [Verbose] > │                 UH1_1                                                        │

00:08:06 #26650 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26651 [Verbose] > │             UH1_1                                                            │

00:08:06 #26652 [Verbose] > │     let v137 : (unit -> UH1) = closure133(v136)                              │

00:08:06 #26653 [Verbose] > │     let v138 : (unit -> UH1) = method3(v136, v137)                           │

00:08:06 #26654 [Verbose] > │     let v139 : UH1 = v138 ()                                                 │

00:08:06 #26655 [Verbose] > │     let v140 : UH3 = v0 v139                                                 │

00:08:06 #26656 [Verbose] > │     let v177 : UH3 =                                                         │

00:08:06 #26657 [Verbose] > │         match v2 with                                                        │

00:08:06 #26658 [Verbose] > │         | UH3_0(v141, v142, v143, v144, v145, v146, v147, v148, v149, v150)  │

00:08:06 #26659 [Verbose] > │ -> (* StreamCons *)                                                          │

00:08:06 #26660 [Verbose] > │             match v48 with                                                   │

00:08:06 #26661 [Verbose] > │             | UH3_0(v151, v152, v153, v154, v155, v156, v157, v158, v159,    │

00:08:06 #26662 [Verbose] > │ v160) -> (* StreamCons *)                                                    │

00:08:06 #26663 [Verbose] > │                 let v161 : float = v141 + v151                               │

00:08:06 #26664 [Verbose] > │                 let v162 : float = v142 + v152                               │

00:08:06 #26665 [Verbose] > │                 let v163 : float = v146 + v156                               │

00:08:06 #26666 [Verbose] > │                 let v164 : float = v143 + v153                               │

00:08:06 #26667 [Verbose] > │                 let v165 : float = v144 + v154                               │

00:08:06 #26668 [Verbose] > │                 let v166 : float = v145 + v155                               │

00:08:06 #26669 [Verbose] > │                 let v167 : float = v147 + v157                               │

00:08:06 #26670 [Verbose] > │                 let v168 : float = v148 + v158                               │

00:08:06 #26671 [Verbose] > │                 let v169 : float = v149 + v159                               │

00:08:06 #26672 [Verbose] > │                 let v170 : (unit -> UH3) = closure136(v160, v150)            │

00:08:06 #26673 [Verbose] > │                 UH3_0(v161, v162, v164, v165, v166, v163, v167, v168, v169,  │

00:08:06 #26674 [Verbose] > │ v170)                                                                        │

00:08:06 #26675 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │

00:08:06 #26676 [Verbose] > │                 UH3_1                                                        │

00:08:06 #26677 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26678 [Verbose] > │             UH3_1                                                            │

00:08:06 #26679 [Verbose] > │     let v214 : UH3 =                                                         │

00:08:06 #26680 [Verbose] > │         match v177 with                                                      │

00:08:06 #26681 [Verbose] > │         | UH3_0(v178, v179, v180, v181, v182, v183, v184, v185, v186, v187)  │

00:08:06 #26682 [Verbose] > │ -> (* StreamCons *)                                                          │

00:08:06 #26683 [Verbose] > │             match v48 with                                                   │

00:08:06 #26684 [Verbose] > │             | UH3_0(v188, v189, v190, v191, v192, v193, v194, v195, v196,    │

00:08:06 #26685 [Verbose] > │ v197) -> (* StreamCons *)                                                    │

00:08:06 #26686 [Verbose] > │                 let v198 : float = v178 + v188                               │

00:08:06 #26687 [Verbose] > │                 let v199 : float = v179 + v189                               │

00:08:06 #26688 [Verbose] > │                 let v200 : float = v183 + v193                               │

00:08:06 #26689 [Verbose] > │                 let v201 : float = v180 + v190                               │

00:08:06 #26690 [Verbose] > │                 let v202 : float = v181 + v191                               │

00:08:06 #26691 [Verbose] > │                 let v203 : float = v182 + v192                               │

00:08:06 #26692 [Verbose] > │                 let v204 : float = v184 + v194                               │

00:08:06 #26693 [Verbose] > │                 let v205 : float = v185 + v195                               │

00:08:06 #26694 [Verbose] > │                 let v206 : float = v186 + v196                               │

00:08:06 #26695 [Verbose] > │                 let v207 : (unit -> UH3) = closure136(v197, v187)            │

00:08:06 #26696 [Verbose] > │                 UH3_0(v198, v199, v201, v202, v203, v200, v204, v205, v206,  │

00:08:06 #26697 [Verbose] > │ v207)                                                                        │

00:08:06 #26698 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │

00:08:06 #26699 [Verbose] > │                 UH3_1                                                        │

00:08:06 #26700 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26701 [Verbose] > │             UH3_1                                                            │

00:08:06 #26702 [Verbose] > │     let v251 : UH3 =                                                         │

00:08:06 #26703 [Verbose] > │         match v214 with                                                      │

00:08:06 #26704 [Verbose] > │         | UH3_0(v215, v216, v217, v218, v219, v220, v221, v222, v223, v224)  │

00:08:06 #26705 [Verbose] > │ -> (* StreamCons *)                                                          │

00:08:06 #26706 [Verbose] > │             match v94 with                                                   │

00:08:06 #26707 [Verbose] > │             | UH3_0(v225, v226, v227, v228, v229, v230, v231, v232, v233,    │

00:08:06 #26708 [Verbose] > │ v234) -> (* StreamCons *)                                                    │

00:08:06 #26709 [Verbose] > │                 let v235 : float = v215 + v225                               │

00:08:06 #26710 [Verbose] > │                 let v236 : float = v216 + v226                               │

00:08:06 #26711 [Verbose] > │                 let v237 : float = v220 + v230                               │

00:08:06 #26712 [Verbose] > │                 let v238 : float = v217 + v227                               │

00:08:06 #26713 [Verbose] > │                 let v239 : float = v218 + v228                               │

00:08:06 #26714 [Verbose] > │                 let v240 : float = v219 + v229                               │

00:08:06 #26715 [Verbose] > │                 let v241 : float = v221 + v231                               │

00:08:06 #26716 [Verbose] > │                 let v242 : float = v222 + v232                               │

00:08:06 #26717 [Verbose] > │                 let v243 : float = v223 + v233                               │

00:08:06 #26718 [Verbose] > │                 let v244 : (unit -> UH3) = closure136(v234, v224)            │

00:08:06 #26719 [Verbose] > │                 UH3_0(v235, v236, v238, v239, v240, v237, v241, v242, v243,  │

00:08:06 #26720 [Verbose] > │ v244)                                                                        │

00:08:06 #26721 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │

00:08:06 #26722 [Verbose] > │                 UH3_1                                                        │

00:08:06 #26723 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26724 [Verbose] > │             UH3_1                                                            │

00:08:06 #26725 [Verbose] > │     let v288 : UH3 =                                                         │

00:08:06 #26726 [Verbose] > │         match v251 with                                                      │

00:08:06 #26727 [Verbose] > │         | UH3_0(v252, v253, v254, v255, v256, v257, v258, v259, v260, v261)  │

00:08:06 #26728 [Verbose] > │ -> (* StreamCons *)                                                          │

00:08:06 #26729 [Verbose] > │             match v94 with                                                   │

00:08:06 #26730 [Verbose] > │             | UH3_0(v262, v263, v264, v265, v266, v267, v268, v269, v270,    │

00:08:06 #26731 [Verbose] > │ v271) -> (* StreamCons *)                                                    │

00:08:06 #26732 [Verbose] > │                 let v272 : float = v252 + v262                               │

00:08:06 #26733 [Verbose] > │                 let v273 : float = v253 + v263                               │

00:08:06 #26734 [Verbose] > │                 let v274 : float = v257 + v267                               │

00:08:06 #26735 [Verbose] > │                 let v275 : float = v254 + v264                               │

00:08:06 #26736 [Verbose] > │                 let v276 : float = v255 + v265                               │

00:08:06 #26737 [Verbose] > │                 let v277 : float = v256 + v266                               │

00:08:06 #26738 [Verbose] > │                 let v278 : float = v258 + v268                               │

00:08:06 #26739 [Verbose] > │                 let v279 : float = v259 + v269                               │

00:08:06 #26740 [Verbose] > │                 let v280 : float = v260 + v270                               │

00:08:06 #26741 [Verbose] > │                 let v281 : (unit -> UH3) = closure136(v271, v261)            │

00:08:06 #26742 [Verbose] > │                 UH3_0(v272, v273, v275, v276, v277, v274, v278, v279, v280,  │

00:08:06 #26743 [Verbose] > │ v281)                                                                        │

00:08:06 #26744 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │

00:08:06 #26745 [Verbose] > │                 UH3_1                                                        │

00:08:06 #26746 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26747 [Verbose] > │             UH3_1                                                            │

00:08:06 #26748 [Verbose] > │     let v325 : UH3 =                                                         │

00:08:06 #26749 [Verbose] > │         match v288 with                                                      │

00:08:06 #26750 [Verbose] > │         | UH3_0(v289, v290, v291, v292, v293, v294, v295, v296, v297, v298)  │

00:08:06 #26751 [Verbose] > │ -> (* StreamCons *)                                                          │

00:08:06 #26752 [Verbose] > │             match v140 with                                                  │

00:08:06 #26753 [Verbose] > │             | UH3_0(v299, v300, v301, v302, v303, v304, v305, v306, v307,    │

00:08:06 #26754 [Verbose] > │ v308) -> (* StreamCons *)                                                    │

00:08:06 #26755 [Verbose] > │                 let v309 : float = v289 + v299                               │

00:08:06 #26756 [Verbose] > │                 let v310 : float = v290 + v300                               │

00:08:06 #26757 [Verbose] > │                 let v311 : float = v294 + v304                               │

00:08:06 #26758 [Verbose] > │                 let v312 : float = v291 + v301                               │

00:08:06 #26759 [Verbose] > │                 let v313 : float = v292 + v302                               │

00:08:06 #26760 [Verbose] > │                 let v314 : float = v293 + v303                               │

00:08:06 #26761 [Verbose] > │                 let v315 : float = v295 + v305                               │

00:08:06 #26762 [Verbose] > │                 let v316 : float = v296 + v306                               │

00:08:06 #26763 [Verbose] > │                 let v317 : float = v297 + v307                               │

00:08:06 #26764 [Verbose] > │                 let v318 : (unit -> UH3) = closure136(v308, v298)            │

00:08:06 #26765 [Verbose] > │                 UH3_0(v309, v310, v312, v313, v314, v311, v315, v316, v317,  │

00:08:06 #26766 [Verbose] > │ v318)                                                                        │

00:08:06 #26767 [Verbose] > │             | UH3_1 -> (* StreamNil *)                                       │

00:08:06 #26768 [Verbose] > │                 UH3_1                                                        │

00:08:06 #26769 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26770 [Verbose] > │             UH3_1                                                            │

00:08:06 #26771 [Verbose] > │     let v367 : UH1 =                                                         │

00:08:06 #26772 [Verbose] > │         match v325 with                                                      │

00:08:06 #26773 [Verbose] > │         | UH3_0(v326, v327, v328, v329, v330, v331, v332, v333, v334, v335)  │

00:08:06 #26774 [Verbose] > │ -> (* StreamCons *)                                                          │

00:08:06 #26775 [Verbose] > │             match v1 with                                                    │

00:08:06 #26776 [Verbose] > │             | UH1_0(v336, v337, v338, v339, v340, v341, v342, v343, v344,    │

00:08:06 #26777 [Verbose] > │ v345) -> (* StreamCons *)                                                    │

00:08:06 #26778 [Verbose] > │                 let v346 : float = v331 * 4.166666666666667E-06              │

00:08:06 #26779 [Verbose] > │                 let v347 : float = v341 + v346                               │

00:08:06 #26780 [Verbose] > │                 let v348 : float = 4.166666666666667E-06 * v328              │

00:08:06 #26781 [Verbose] > │                 let v349 : float = 4.166666666666667E-06 * v329              │

00:08:06 #26782 [Verbose] > │                 let v350 : float = 4.166666666666667E-06 * v330              │

00:08:06 #26783 [Verbose] > │                 let v351 : float = v338 + v348                               │

00:08:06 #26784 [Verbose] > │                 let v352 : float = v339 + v349                               │

00:08:06 #26785 [Verbose] > │                 let v353 : float = v340 + v350                               │

00:08:06 #26786 [Verbose] > │                 let v354 : float = 4.166666666666667E-06 * v332              │

00:08:06 #26787 [Verbose] > │                 let v355 : float = 4.166666666666667E-06 * v333              │

00:08:06 #26788 [Verbose] > │                 let v356 : float = 4.166666666666667E-06 * v334              │

00:08:06 #26789 [Verbose] > │                 let v357 : float = v342 + v354                               │

00:08:06 #26790 [Verbose] > │                 let v358 : float = v343 + v355                               │

00:08:06 #26791 [Verbose] > │                 let v359 : float = v344 + v356                               │

00:08:06 #26792 [Verbose] > │                 let v360 : (unit -> UH1) = closure137(v345, v335)            │

00:08:06 #26793 [Verbose] > │                 UH1_0(v336, v337, v351, v352, v353, v347, v357, v358, v359,  │

00:08:06 #26794 [Verbose] > │ v360)                                                                        │

00:08:06 #26795 [Verbose] > │             | UH1_1 -> (* StreamNil *)                                       │

00:08:06 #26796 [Verbose] > │                 UH1_1                                                        │

00:08:06 #26797 [Verbose] > │         | UH3_1 -> (* StreamNil *)                                           │

00:08:06 #26798 [Verbose] > │             UH1_1                                                            │

00:08:06 #26799 [Verbose] > │     let v368 : (unit -> UH1) = closure133(v367)                              │

00:08:06 #26800 [Verbose] > │     let v369 : (unit -> UH1) = method3(v367, v368)                           │

00:08:06 #26801 [Verbose] > │     let v370 : UH1 = v369 ()                                                 │

00:08:06 #26802 [Verbose] > │     v370                                                                     │

00:08:06 #26803 [Verbose] > │ and closure130 () (v0 : (UH1 -> UH3)) : (UH1 -> UH1) =                       │

00:08:06 #26804 [Verbose] > │     closure131(v0)                                                           │

00:08:06 #26805 [Verbose] > │ and method2 () : ((UH1 -> UH3) -> (UH1 -> UH1)) =                            │

00:08:06 #26806 [Verbose] > │     closure130()                                                             │

00:08:06 #26807 [Verbose] > │ and closure138 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │

00:08:06 #26808 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │

00:08:06 #26809 [Verbose] > │ float * float) =                                                             │

00:08:06 #26810 [Verbose] > │     let v9 : float = v2 * v2                                                 │

00:08:06 #26811 [Verbose] > │     let v10 : float = v3 * v3                                                │

00:08:06 #26812 [Verbose] > │     let v11 : float = v9 + v10                                               │

00:08:06 #26813 [Verbose] > │     let v12 : float = v4 * v4                                                │

00:08:06 #26814 [Verbose] > │     let v13 : float = v11 + v12                                              │

00:08:06 #26815 [Verbose] > │     let v14 : float = sqrt v13                                               │

00:08:06 #26816 [Verbose] > │     let v15 : float = -5384.0 * v14                                          │

00:08:06 #26817 [Verbose] > │     let v16 : float = v15 * v2                                               │

00:08:06 #26818 [Verbose] > │     let v17 : float = v15 * v3                                               │

00:08:06 #26819 [Verbose] > │     let v18 : float = v15 * v4                                               │

00:08:06 #26820 [Verbose] > │     let v19 : float = v16 / v14                                              │

00:08:06 #26821 [Verbose] > │     let v20 : float = v17 / v14                                              │

00:08:06 #26822 [Verbose] > │     let v21 : float = v18 / v14                                              │

00:08:06 #26823 [Verbose] > │     struct (v19, v20, v21)                                                   │

00:08:06 #26824 [Verbose] > │ and closure139 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │

00:08:06 #26825 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │

00:08:06 #26826 [Verbose] > │ float * float) =                                                             │

00:08:06 #26827 [Verbose] > │     let v9 : float = v2 + -0.65                                              │

00:08:06 #26828 [Verbose] > │     let v10 : float = v9 * v9                                                │

00:08:06 #26829 [Verbose] > │     let v11 : float = v3 * v3                                                │

00:08:06 #26830 [Verbose] > │     let v12 : float = v10 + v11                                              │

00:08:06 #26831 [Verbose] > │     let v13 : float = v4 * v4                                                │

00:08:06 #26832 [Verbose] > │     let v14 : float = v12 + v13                                              │

00:08:06 #26833 [Verbose] > │     let v15 : float = sqrt v14                                               │

00:08:06 #26834 [Verbose] > │     let v16 : float = -5384.0 * v15                                          │

00:08:06 #26835 [Verbose] > │     let v17 : float = v16 * v9                                               │

00:08:06 #26836 [Verbose] > │     let v18 : float = v16 * v3                                               │

00:08:06 #26837 [Verbose] > │     let v19 : float = v16 * v4                                               │

00:08:06 #26838 [Verbose] > │     let v20 : float = v17 / v15                                              │

00:08:06 #26839 [Verbose] > │     let v21 : float = v18 / v15                                              │

00:08:06 #26840 [Verbose] > │     let v22 : float = v19 / v15                                              │

00:08:06 #26841 [Verbose] > │     struct (v20, v21, v22)                                                   │

00:08:06 #26842 [Verbose] > │ and closure141 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float,  │

00:08:06 #26843 [Verbose] > │ v5 : float, v6 : float, v7 : float, v8 : float) struct (v9 : float, v10 :    │

00:08:06 #26844 [Verbose] > │ float, v11 : float, v12 : float, v13 : float, v14 : float, v15 : float, v16  │

00:08:06 #26845 [Verbose] > │ : float, v17 : float) : struct (float * float * float) =                     │

00:08:06 #26846 [Verbose] > │     let v18 : float = -1.0 * v2                                              │

00:08:06 #26847 [Verbose] > │     let v19 : float = -1.0 * v3                                              │

00:08:06 #26848 [Verbose] > │     let v20 : float = -1.0 * v4                                              │

00:08:06 #26849 [Verbose] > │     let v21 : float = v11 + v18                                              │

00:08:06 #26850 [Verbose] > │     let v22 : float = v12 + v19                                              │

00:08:06 #26851 [Verbose] > │     let v23 : float = v13 + v20                                              │

00:08:06 #26852 [Verbose] > │     let v24 : float = v21 * v21                                              │

00:08:06 #26853 [Verbose] > │     let v25 : float = v22 * v22                                              │

00:08:06 #26854 [Verbose] > │     let v26 : float = v24 + v25                                              │

00:08:06 #26855 [Verbose] > │     let v27 : float = v23 * v23                                              │

00:08:06 #26856 [Verbose] > │     let v28 : float = v26 + v27                                              │

00:08:06 #26857 [Verbose] > │     let v29 : float = sqrt v28                                               │

00:08:06 #26858 [Verbose] > │     let v30 : float = -5384.0 * v29                                          │

00:08:06 #26859 [Verbose] > │     let v31 : float = v30 * v21                                              │

00:08:06 #26860 [Verbose] > │     let v32 : float = v30 * v22                                              │

00:08:06 #26861 [Verbose] > │     let v33 : float = v30 * v23                                              │

00:08:06 #26862 [Verbose] > │     let v34 : float = v31 / v29                                              │

00:08:06 #26863 [Verbose] > │     let v35 : float = v32 / v29                                              │

00:08:06 #26864 [Verbose] > │     let v36 : float = v33 / v29                                              │

00:08:06 #26865 [Verbose] > │     struct (v34, v35, v36)                                                   │

00:08:06 #26866 [Verbose] > │ and closure140 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │

00:08:06 #26867 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : (struct (float *  │

00:08:06 #26868 [Verbose] > │ float * float * float * float * float * float * float * float) -> struct     │

00:08:06 #26869 [Verbose] > │ (float * float * float)) =                                                   │

00:08:06 #26870 [Verbose] > │     closure141(v0, v1, v2, v3, v4, v5, v6, v7, v8)                           │

00:08:06 #26871 [Verbose] > │ and method4 () : UH4 =                                                       │

00:08:06 #26872 [Verbose] > │     let v0 : (struct (float * float * float * float * float * float * float  │

00:08:06 #26873 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure138()           │

00:08:06 #26874 [Verbose] > │     let v1 : US1 = US1_0(0, v0)                                              │

00:08:06 #26875 [Verbose] > │     let v2 : (struct (float * float * float * float * float * float * float  │

00:08:06 #26876 [Verbose] > │ * float * float) -> struct (float * float * float)) = closure139()           │

00:08:06 #26877 [Verbose] > │     let v3 : US1 = US1_0(63, v2)                                             │

00:08:06 #26878 [Verbose] > │     let v4 : (struct (float * float * float * float * float * float * float  │

00:08:06 #26879 [Verbose] > │ * float * float) -> (struct (float * float * float * float * float * float * │

00:08:06 #26880 [Verbose] > │ float * float * float) -> struct (float * float * float))) = closure140()    │

00:08:06 #26881 [Verbose] > │     let v5 : US1 = US1_1(0, 1, v4)                                           │

00:08:06 #26882 [Verbose] > │     let v6 : US1 = US1_1(1, 2, v4)                                           │

00:08:06 #26883 [Verbose] > │     let v7 : US1 = US1_1(2, 3, v4)                                           │

00:08:06 #26884 [Verbose] > │     let v8 : US1 = US1_1(3, 4, v4)                                           │

00:08:06 #26885 [Verbose] > │     let v9 : US1 = US1_1(4, 5, v4)                                           │

00:08:06 #26886 [Verbose] > │     let v10 : US1 = US1_1(5, 6, v4)                                          │

00:08:06 #26887 [Verbose] > │     let v11 : US1 = US1_1(6, 7, v4)                                          │

00:08:06 #26888 [Verbose] > │     let v12 : US1 = US1_1(7, 8, v4)                                          │

00:08:06 #26889 [Verbose] > │     let v13 : US1 = US1_1(8, 9, v4)                                          │

00:08:06 #26890 [Verbose] > │     let v14 : US1 = US1_1(9, 10, v4)                                         │

00:08:06 #26891 [Verbose] > │     let v15 : US1 = US1_1(10, 11, v4)                                        │

00:08:06 #26892 [Verbose] > │     let v16 : US1 = US1_1(11, 12, v4)                                        │

00:08:06 #26893 [Verbose] > │     let v17 : US1 = US1_1(12, 13, v4)                                        │

00:08:06 #26894 [Verbose] > │     let v18 : US1 = US1_1(13, 14, v4)                                        │

00:08:06 #26895 [Verbose] > │     let v19 : US1 = US1_1(14, 15, v4)                                        │

00:08:06 #26896 [Verbose] > │     let v20 : US1 = US1_1(15, 16, v4)                                        │

00:08:06 #26897 [Verbose] > │     let v21 : US1 = US1_1(16, 17, v4)                                        │

00:08:06 #26898 [Verbose] > │     let v22 : US1 = US1_1(17, 18, v4)                                        │

00:08:06 #26899 [Verbose] > │     let v23 : US1 = US1_1(18, 19, v4)                                        │

00:08:06 #26900 [Verbose] > │     let v24 : US1 = US1_1(19, 20, v4)                                        │

00:08:06 #26901 [Verbose] > │     let v25 : US1 = US1_1(20, 21, v4)                                        │

00:08:06 #26902 [Verbose] > │     let v26 : US1 = US1_1(21, 22, v4)                                        │

00:08:06 #26903 [Verbose] > │     let v27 : US1 = US1_1(22, 23, v4)                                        │

00:08:06 #26904 [Verbose] > │     let v28 : US1 = US1_1(23, 24, v4)                                        │

00:08:06 #26905 [Verbose] > │     let v29 : US1 = US1_1(24, 25, v4)                                        │

00:08:06 #26906 [Verbose] > │     let v30 : US1 = US1_1(25, 26, v4)                                        │

00:08:06 #26907 [Verbose] > │     let v31 : US1 = US1_1(26, 27, v4)                                        │

00:08:06 #26908 [Verbose] > │     let v32 : US1 = US1_1(27, 28, v4)                                        │

00:08:06 #26909 [Verbose] > │     let v33 : US1 = US1_1(28, 29, v4)                                        │

00:08:06 #26910 [Verbose] > │     let v34 : US1 = US1_1(29, 30, v4)                                        │

00:08:06 #26911 [Verbose] > │     let v35 : US1 = US1_1(30, 31, v4)                                        │

00:08:06 #26912 [Verbose] > │     let v36 : US1 = US1_1(31, 32, v4)                                        │

00:08:06 #26913 [Verbose] > │     let v37 : US1 = US1_1(32, 33, v4)                                        │

00:08:06 #26914 [Verbose] > │     let v38 : US1 = US1_1(33, 34, v4)                                        │

00:08:06 #26915 [Verbose] > │     let v39 : US1 = US1_1(34, 35, v4)                                        │

00:08:06 #26916 [Verbose] > │     let v40 : US1 = US1_1(35, 36, v4)                                        │

00:08:06 #26917 [Verbose] > │     let v41 : US1 = US1_1(36, 37, v4)                                        │

00:08:06 #26918 [Verbose] > │     let v42 : US1 = US1_1(37, 38, v4)                                        │

00:08:06 #26919 [Verbose] > │     let v43 : US1 = US1_1(38, 39, v4)                                        │

00:08:06 #26920 [Verbose] > │     let v44 : US1 = US1_1(39, 40, v4)                                        │

00:08:06 #26921 [Verbose] > │     let v45 : US1 = US1_1(40, 41, v4)                                        │

00:08:06 #26922 [Verbose] > │     let v46 : US1 = US1_1(41, 42, v4)                                        │

00:08:06 #26923 [Verbose] > │     let v47 : US1 = US1_1(42, 43, v4)                                        │

00:08:06 #26924 [Verbose] > │     let v48 : US1 = US1_1(43, 44, v4)                                        │

00:08:06 #26925 [Verbose] > │     let v49 : US1 = US1_1(44, 45, v4)                                        │

00:08:06 #26926 [Verbose] > │     let v50 : US1 = US1_1(45, 46, v4)                                        │

00:08:06 #26927 [Verbose] > │     let v51 : US1 = US1_1(46, 47, v4)                                        │

00:08:06 #26928 [Verbose] > │     let v52 : US1 = US1_1(47, 48, v4)                                        │

00:08:06 #26929 [Verbose] > │     let v53 : US1 = US1_1(48, 49, v4)                                        │

00:08:06 #26930 [Verbose] > │     let v54 : US1 = US1_1(49, 50, v4)                                        │

00:08:06 #26931 [Verbose] > │     let v55 : US1 = US1_1(50, 51, v4)                                        │

00:08:06 #26932 [Verbose] > │     let v56 : US1 = US1_1(51, 52, v4)                                        │

00:08:06 #26933 [Verbose] > │     let v57 : US1 = US1_1(52, 53, v4)                                        │

00:08:06 #26934 [Verbose] > │     let v58 : US1 = US1_1(53, 54, v4)                                        │

00:08:06 #26935 [Verbose] > │     let v59 : US1 = US1_1(54, 55, v4)                                        │

00:08:06 #26936 [Verbose] > │     let v60 : US1 = US1_1(55, 56, v4)                                        │

00:08:06 #26937 [Verbose] > │     let v61 : US1 = US1_1(56, 57, v4)                                        │

00:08:06 #26938 [Verbose] > │     let v62 : US1 = US1_1(57, 58, v4)                                        │

00:08:06 #26939 [Verbose] > │     let v63 : US1 = US1_1(58, 59, v4)                                        │

00:08:06 #26940 [Verbose] > │     let v64 : US1 = US1_1(59, 60, v4)                                        │

00:08:06 #26941 [Verbose] > │     let v65 : UH4 = UH4_0                                                    │

00:08:06 #26942 [Verbose] > │     let v66 : UH4 = UH4_1(v64, v65)                                          │

00:08:06 #26943 [Verbose] > │     let v67 : UH4 = UH4_1(v63, v66)                                          │

00:08:06 #26944 [Verbose] > │     let v68 : UH4 = UH4_1(v62, v67)                                          │

00:08:06 #26945 [Verbose] > │     let v69 : UH4 = UH4_1(v61, v68)                                          │

00:08:06 #26946 [Verbose] > │     let v70 : UH4 = UH4_1(v60, v69)                                          │

00:08:06 #26947 [Verbose] > │     let v71 : UH4 = UH4_1(v59, v70)                                          │

00:08:06 #26948 [Verbose] > │     let v72 : UH4 = UH4_1(v58, v71)                                          │

00:08:06 #26949 [Verbose] > │     let v73 : UH4 = UH4_1(v57, v72)                                          │

00:08:06 #26950 [Verbose] > │     let v74 : UH4 = UH4_1(v56, v73)                                          │

00:08:06 #26951 [Verbose] > │     let v75 : UH4 = UH4_1(v55, v74)                                          │

00:08:06 #26952 [Verbose] > │     let v76 : UH4 = UH4_1(v54, v75)                                          │

00:08:06 #26953 [Verbose] > │     let v77 : UH4 = UH4_1(v53, v76)                                          │

00:08:06 #26954 [Verbose] > │     let v78 : UH4 = UH4_1(v52, v77)                                          │

00:08:06 #26955 [Verbose] > │     let v79 : UH4 = UH4_1(v51, v78)                                          │

00:08:06 #26956 [Verbose] > │     let v80 : UH4 = UH4_1(v50, v79)                                          │

00:08:06 #26957 [Verbose] > │     let v81 : UH4 = UH4_1(v49, v80)                                          │

00:08:06 #26958 [Verbose] > │     let v82 : UH4 = UH4_1(v48, v81)                                          │

00:08:06 #26959 [Verbose] > │     let v83 : UH4 = UH4_1(v47, v82)                                          │

00:08:06 #26960 [Verbose] > │     let v84 : UH4 = UH4_1(v46, v83)                                          │

00:08:06 #26961 [Verbose] > │     let v85 : UH4 = UH4_1(v45, v84)                                          │

00:08:06 #26962 [Verbose] > │     let v86 : UH4 = UH4_1(v44, v85)                                          │

00:08:06 #26963 [Verbose] > │     let v87 : UH4 = UH4_1(v43, v86)                                          │

00:08:06 #26964 [Verbose] > │     let v88 : UH4 = UH4_1(v42, v87)                                          │

00:08:06 #26965 [Verbose] > │     let v89 : UH4 = UH4_1(v41, v88)                                          │

00:08:06 #26966 [Verbose] > │     let v90 : UH4 = UH4_1(v40, v89)                                          │

00:08:06 #26967 [Verbose] > │     let v91 : UH4 = UH4_1(v39, v90)                                          │

00:08:06 #26968 [Verbose] > │     let v92 : UH4 = UH4_1(v38, v91)                                          │

00:08:06 #26969 [Verbose] > │     let v93 : UH4 = UH4_1(v37, v92)                                          │

00:08:06 #26970 [Verbose] > │     let v94 : UH4 = UH4_1(v36, v93)                                          │

00:08:06 #26971 [Verbose] > │     let v95 : UH4 = UH4_1(v35, v94)                                          │

00:08:06 #26972 [Verbose] > │     let v96 : UH4 = UH4_1(v34, v95)                                          │

00:08:06 #26973 [Verbose] > │     let v97 : UH4 = UH4_1(v33, v96)                                          │

00:08:06 #26974 [Verbose] > │     let v98 : UH4 = UH4_1(v32, v97)                                          │

00:08:06 #26975 [Verbose] > │     let v99 : UH4 = UH4_1(v31, v98)                                          │

00:08:06 #26976 [Verbose] > │     let v100 : UH4 = UH4_1(v30, v99)                                         │

00:08:06 #26977 [Verbose] > │     let v101 : UH4 = UH4_1(v29, v100)                                        │

00:08:06 #26978 [Verbose] > │     let v102 : UH4 = UH4_1(v28, v101)                                        │

00:08:06 #26979 [Verbose] > │     let v103 : UH4 = UH4_1(v27, v102)                                        │

00:08:06 #26980 [Verbose] > │     let v104 : UH4 = UH4_1(v26, v103)                                        │

00:08:06 #26981 [Verbose] > │     let v105 : UH4 = UH4_1(v25, v104)                                        │

00:08:06 #26982 [Verbose] > │     let v106 : UH4 = UH4_1(v24, v105)                                        │

00:08:06 #26983 [Verbose] > │     let v107 : UH4 = UH4_1(v23, v106)                                        │

00:08:06 #26984 [Verbose] > │     let v108 : UH4 = UH4_1(v22, v107)                                        │

00:08:06 #26985 [Verbose] > │     let v109 : UH4 = UH4_1(v21, v108)                                        │

00:08:06 #26986 [Verbose] > │     let v110 : UH4 = UH4_1(v20, v109)                                        │

00:08:06 #26987 [Verbose] > │     let v111 : UH4 = UH4_1(v19, v110)                                        │

00:08:06 #26988 [Verbose] > │     let v112 : UH4 = UH4_1(v18, v111)                                        │

00:08:06 #26989 [Verbose] > │     let v113 : UH4 = UH4_1(v17, v112)                                        │

00:08:06 #26990 [Verbose] > │     let v114 : UH4 = UH4_1(v16, v113)                                        │

00:08:06 #26991 [Verbose] > │     let v115 : UH4 = UH4_1(v15, v114)                                        │

00:08:06 #26992 [Verbose] > │     let v116 : UH4 = UH4_1(v14, v115)                                        │

00:08:06 #26993 [Verbose] > │     let v117 : UH4 = UH4_1(v13, v116)                                        │

00:08:06 #26994 [Verbose] > │     let v118 : UH4 = UH4_1(v12, v117)                                        │

00:08:06 #26995 [Verbose] > │     let v119 : UH4 = UH4_1(v11, v118)                                        │

00:08:06 #26996 [Verbose] > │     let v120 : UH4 = UH4_1(v10, v119)                                        │

00:08:06 #26997 [Verbose] > │     let v121 : UH4 = UH4_1(v9, v120)                                         │

00:08:06 #26998 [Verbose] > │     let v122 : UH4 = UH4_1(v8, v121)                                         │

00:08:06 #26999 [Verbose] > │     let v123 : UH4 = UH4_1(v7, v122)                                         │

00:08:06 #27000 [Verbose] > │     let v124 : UH4 = UH4_1(v6, v123)                                         │

00:08:06 #27001 [Verbose] > │     let v125 : UH4 = UH4_1(v5, v124)                                         │

00:08:06 #27002 [Verbose] > │     let v126 : UH4 = UH4_1(v3, v125)                                         │

00:08:06 #27003 [Verbose] > │     UH4_1(v1, v126)                                                          │

00:08:06 #27004 [Verbose] > │ and closure143 (v0 : UH5) () : UH5 =                                         │

00:08:06 #27005 [Verbose] > │     v0                                                                       │

00:08:06 #27006 [Verbose] > │ and method5 (v0 : UH1, v1 : UH5, v2 : int32) : struct (UH5 * int32) =        │

00:08:06 #27007 [Verbose] > │     match v0 with                                                            │

00:08:06 #27008 [Verbose] > │     | UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons *)   │

00:08:06 #27009 [Verbose] > │         let v13 : int32 = v2 + 1                                             │

00:08:06 #27010 [Verbose] > │         let v14 : UH1 = v12 ()                                               │

00:08:06 #27011 [Verbose] > │         let v15 : (unit -> UH5) = closure143(v1)                             │

00:08:06 #27012 [Verbose] > │         let v16 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v15) │

00:08:06 #27013 [Verbose] > │         method5(v14, v16, v13)                                               │

00:08:06 #27014 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │

00:08:06 #27015 [Verbose] > │         struct (v1, v2)                                                      │

00:08:06 #27016 [Verbose] > │ and closure144 (v0 : UH5) () : UH5 =                                         │

00:08:06 #27017 [Verbose] > │     v0                                                                       │

00:08:06 #27018 [Verbose] > │ and method6 (v0 : UH5, v1 : UH5) : UH5 =                                     │

00:08:06 #27019 [Verbose] > │     match v0 with                                                            │

00:08:06 #27020 [Verbose] > │     | UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) -> (* StreamCons  │

00:08:06 #27021 [Verbose] > │ *)                                                                           │

00:08:06 #27022 [Verbose] > │         let v13 : UH5 = v12 ()                                               │

00:08:06 #27023 [Verbose] > │         let v14 : (unit -> UH5) = closure144(v1)                             │

00:08:06 #27024 [Verbose] > │         let v15 : UH5 = UH5_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v14) │

00:08:06 #27025 [Verbose] > │         method6(v13, v15)                                                    │

00:08:06 #27026 [Verbose] > │     | UH5_1 -> (* StreamNil *)                                               │

00:08:06 #27027 [Verbose] > │         v1                                                                   │

00:08:06 #27028 [Verbose] > │ and closure145 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │

00:08:06 #27029 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │

00:08:06 #27030 [Verbose] > │ float * float) =                                                             │

00:08:06 #27031 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │

00:08:06 #27032 [Verbose] > │ and method9 (v0 : int32, v1 : UH1) : US3 =                                   │

00:08:06 #27033 [Verbose] > │     match v1 with                                                            │

00:08:06 #27034 [Verbose] > │     | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │

00:08:06 #27035 [Verbose] > │         let v12 : bool = v0 <= 0                                             │

00:08:06 #27036 [Verbose] > │         if v12 then                                                          │

00:08:06 #27037 [Verbose] > │             US3_0(v2, v3, v4, v5, v6, v7, v8, v9, v10)                       │

00:08:06 #27038 [Verbose] > │         else                                                                 │

00:08:06 #27039 [Verbose] > │             let v14 : int32 = v0 - 1                                         │

00:08:06 #27040 [Verbose] > │             let v15 : UH1 = v11 ()                                           │

00:08:06 #27041 [Verbose] > │             method9(v14, v15)                                                │

00:08:06 #27042 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │

00:08:06 #27043 [Verbose] > │         US3_1                                                                │

00:08:06 #27044 [Verbose] > │ and closure146 () struct (v0 : float, v1 : float, v2 : float, v3 : float, v4 │

00:08:06 #27045 [Verbose] > │ : float, v5 : float, v6 : float, v7 : float, v8 : float) : struct (float *   │

00:08:06 #27046 [Verbose] > │ float * float) =                                                             │

00:08:06 #27047 [Verbose] > │     struct (0.0, 0.0, 0.0)                                                   │

00:08:06 #27048 [Verbose] > │ and method8 (v0 : int32, v1 : UH1, v2 : UH4, v3 : UH6) : UH6 =               │

00:08:06 #27049 [Verbose] > │     match v2 with                                                            │

00:08:06 #27050 [Verbose] > │     | UH4_1(v4, v5) -> (* Cons *)                                            │

00:08:06 #27051 [Verbose] > │         let v6 : UH6 = method8(v0, v1, v5, v3)                               │

00:08:06 #27052 [Verbose] > │         let v55 : (struct (float * float * float * float * float * float *   │

00:08:06 #27053 [Verbose] > │ float * float * float) -> struct (float * float * float)) =                  │

00:08:06 #27054 [Verbose] > │             match v4 with                                                    │

00:08:06 #27055 [Verbose] > │             | US1_0(v7, v8) -> (* ExternalForce *)                           │

00:08:06 #27056 [Verbose] > │                 let v9 : bool = v0 = v7                                      │

00:08:06 #27057 [Verbose] > │                 if v9 then                                                   │

00:08:06 #27058 [Verbose] > │                     v8                                                       │

00:08:06 #27059 [Verbose] > │                 else                                                         │

00:08:06 #27060 [Verbose] > │                     closure145()                                             │

00:08:06 #27061 [Verbose] > │             | US1_1(v12, v13, v14) -> (* InternalForce *)                    │

00:08:06 #27062 [Verbose] > │                 let v15 : bool = v0 = v12                                    │

00:08:06 #27063 [Verbose] > │                 let v49 : US2 =                                              │

00:08:06 #27064 [Verbose] > │                     if v15 then                                              │

00:08:06 #27065 [Verbose] > │                         let v16 : US3 = method9(v13, v1)                     │

00:08:06 #27066 [Verbose] > │                         match v16 with                                       │

00:08:06 #27067 [Verbose] > │                         | US3_1 -> (* None *)                                │

00:08:06 #27068 [Verbose] > │                             US2_1                                            │

00:08:06 #27069 [Verbose] > │                         | US3_0(v17, v18, v19, v20, v21, v22, v23, v24, v25) │

00:08:06 #27070 [Verbose] > │ -> (* Some *)                                                                │

00:08:06 #27071 [Verbose] > │                             let v26 : (struct (float * float * float * float │

00:08:06 #27072 [Verbose] > │ * float * float * float * float * float) -> struct (float * float * float))  │

00:08:06 #27073 [Verbose] > │ = v14 struct (v17, v18, v19, v20, v21, v22, v23, v24, v25)                   │

00:08:06 #27074 [Verbose] > │                             US2_0(v26)                                       │

00:08:06 #27075 [Verbose] > │                     else                                                     │

00:08:06 #27076 [Verbose] > │                         let v31 : bool = v0 = v13                            │

00:08:06 #27077 [Verbose] > │                         if v31 then                                          │

00:08:06 #27078 [Verbose] > │                             let v32 : US3 = method9(v12, v1)                 │

00:08:06 #27079 [Verbose] > │                             match v32 with                                   │

00:08:06 #27080 [Verbose] > │                             | US3_1 -> (* None *)                            │

00:08:06 #27081 [Verbose] > │                                 US2_1                                        │

00:08:06 #27082 [Verbose] > │                             | US3_0(v33, v34, v35, v36, v37, v38, v39, v40,  │

00:08:06 #27083 [Verbose] > │ v41) -> (* Some *)                                                           │

00:08:06 #27084 [Verbose] > │                                 let v42 : (struct (float * float * float *   │

00:08:06 #27085 [Verbose] > │ float * float * float * float * float * float) -> struct (float * float *    │

00:08:06 #27086 [Verbose] > │ float)) = v14 struct (v33, v34, v35, v36, v37, v38, v39, v40, v41)           │

00:08:06 #27087 [Verbose] > │                                 US2_0(v42)                                   │

00:08:06 #27088 [Verbose] > │                         else                                                 │

00:08:06 #27089 [Verbose] > │                             US2_1                                            │

00:08:06 #27090 [Verbose] > │                 match v49 with                                               │

00:08:06 #27091 [Verbose] > │                 | US2_1 -> (* None *)                                        │

00:08:06 #27092 [Verbose] > │                     closure146()                                             │

00:08:06 #27093 [Verbose] > │                 | US2_0(v50) -> (* Some *)                                   │

00:08:06 #27094 [Verbose] > │                     v50                                                      │

00:08:06 #27095 [Verbose] > │         UH6_1(v55, v6)                                                       │

00:08:06 #27096 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:08:06 #27097 [Verbose] > │         v3                                                                   │

00:08:06 #27098 [Verbose] > │ and method10 (v0 : float, v1 : float, v2 : float, v3 : float, v4 : float, v5 │

00:08:06 #27099 [Verbose] > │ : float, v6 : float, v7 : float, v8 : float, v9 : UH6, v10 : UH7) : UH7 =    │

00:08:06 #27100 [Verbose] > │     match v9 with                                                            │

00:08:06 #27101 [Verbose] > │     | UH6_1(v11, v12) -> (* Cons *)                                          │

00:08:06 #27102 [Verbose] > │         let v13 : UH7 = method10(v0, v1, v2, v3, v4, v5, v6, v7, v8, v12,    │

00:08:06 #27103 [Verbose] > │ v10)                                                                         │

00:08:06 #27104 [Verbose] > │         let struct (v14 : float, v15 : float, v16 : float) = v11 struct (v0, │

00:08:06 #27105 [Verbose] > │ v1, v2, v3, v4, v5, v6, v7, v8)                                              │

00:08:06 #27106 [Verbose] > │         UH7_1(v14, v15, v16, v13)                                            │

00:08:06 #27107 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:08:06 #27108 [Verbose] > │         v10                                                                  │

00:08:06 #27109 [Verbose] > │ and method11 (v0 : UH7, v1 : float, v2 : float, v3 : float) : struct (float  │

00:08:06 #27110 [Verbose] > │ * float * float) =                                                           │

00:08:06 #27111 [Verbose] > │     match v0 with                                                            │

00:08:06 #27112 [Verbose] > │     | UH7_1(v4, v5, v6, v7) -> (* Cons *)                                    │

00:08:06 #27113 [Verbose] > │         let v8 : float = v1 + v4                                             │

00:08:06 #27114 [Verbose] > │         let v9 : float = v2 + v5                                             │

00:08:06 #27115 [Verbose] > │         let v10 : float = v3 + v6                                            │

00:08:06 #27116 [Verbose] > │         method11(v7, v8, v9, v10)                                            │

00:08:06 #27117 [Verbose] > │     | UH7_0 -> (* Nil *)                                                     │

00:08:06 #27118 [Verbose] > │         struct (v1, v2, v3)                                                  │

00:08:06 #27119 [Verbose] > │ and closure147 (v0 : UH3) () : UH3 =                                         │

00:08:06 #27120 [Verbose] > │     v0                                                                       │

00:08:06 #27121 [Verbose] > │ and method7 (v0 : UH4, v1 : UH1, v2 : UH5, v3 : UH3) : UH3 =                 │

00:08:06 #27122 [Verbose] > │     match v2 with                                                            │

00:08:06 #27123 [Verbose] > │     | UH5_0(v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) -> (*           │

00:08:06 #27124 [Verbose] > │ StreamCons *)                                                                │

00:08:06 #27125 [Verbose] > │         let v15 : UH5 = v14 ()                                               │

00:08:06 #27126 [Verbose] > │         let v16 : UH3 = method7(v0, v1, v15, v3)                             │

00:08:06 #27127 [Verbose] > │         let v17 : UH6 = UH6_0                                                │

00:08:06 #27128 [Verbose] > │         let v18 : UH6 = method8(v4, v1, v0, v17)                             │

00:08:06 #27129 [Verbose] > │         let v19 : UH7 = UH7_0                                                │

00:08:06 #27130 [Verbose] > │         let v20 : UH7 = method10(v5, v6, v7, v8, v9, v10, v11, v12, v13,     │

00:08:06 #27131 [Verbose] > │ v18, v19)                                                                    │

00:08:06 #27132 [Verbose] > │         let v21 : float = 0.0                                                │

00:08:06 #27133 [Verbose] > │         let v22 : float = 0.0                                                │

00:08:06 #27134 [Verbose] > │         let v23 : float = 0.0                                                │

00:08:06 #27135 [Verbose] > │         let struct (v24 : float, v25 : float, v26 : float) = method11(v20,   │

00:08:06 #27136 [Verbose] > │ v21, v22, v23)                                                               │

00:08:06 #27137 [Verbose] > │         let v27 : float = v24 / v6                                           │

00:08:06 #27138 [Verbose] > │         let v28 : float = v25 / v6                                           │

00:08:06 #27139 [Verbose] > │         let v29 : float = v26 / v6                                           │

00:08:06 #27140 [Verbose] > │         let v30 : (unit -> UH3) = closure147(v16)                            │

00:08:06 #27141 [Verbose] > │         UH3_0(0.0, 0.0, v11, v12, v13, 1.0, v27, v28, v29, v30)              │

00:08:06 #27142 [Verbose] > │     | UH5_1 -> (* StreamNil *)                                               │

00:08:06 #27143 [Verbose] > │         v3                                                                   │

00:08:06 #27144 [Verbose] > │ and closure142 (v0 : UH4) (v1 : UH1) : UH3 =                                 │

00:08:06 #27145 [Verbose] > │     let v2 : UH5 = UH5_1                                                     │

00:08:06 #27146 [Verbose] > │     let v3 : int32 = 0                                                       │

00:08:06 #27147 [Verbose] > │     let struct (v4 : UH5, v5 : int32) = method5(v1, v2, v3)                  │

00:08:06 #27148 [Verbose] > │     let v6 : UH5 = UH5_1                                                     │

00:08:06 #27149 [Verbose] > │     let v7 : UH5 = method6(v4, v6)                                           │

00:08:06 #27150 [Verbose] > │     let v8 : UH3 = UH3_1                                                     │

00:08:06 #27151 [Verbose] > │     let v9 : UH3 = method7(v0, v1, v7, v8)                                   │

00:08:06 #27152 [Verbose] > │     v9                                                                       │

00:08:06 #27153 [Verbose] > │ and closure148 (v0 : (UH1 -> UH1), v1 : UH1, v2 : UH1) () : UH8 =            │

00:08:06 #27154 [Verbose] > │     let v3 : UH1 = v0 v2                                                     │

00:08:06 #27155 [Verbose] > │     let v4 : (unit -> UH8) = closure148(v0, v1, v3)                          │

00:08:06 #27156 [Verbose] > │     UH8_0(v2, v4)                                                            │

00:08:06 #27157 [Verbose] > │ and method12 (v0 : float, v1 : UH8) : US4 =                                  │

00:08:06 #27158 [Verbose] > │     match v1 with                                                            │

00:08:06 #27159 [Verbose] > │     | UH8_0(v2, v3) -> (* StreamCons *)                                      │

00:08:06 #27160 [Verbose] > │         let v4 : bool = v0 <= 0.0                                            │

00:08:06 #27161 [Verbose] > │         if v4 then                                                           │

00:08:06 #27162 [Verbose] > │             US4_0(v2)                                                        │

00:08:06 #27163 [Verbose] > │         else                                                                 │

00:08:06 #27164 [Verbose] > │             let v6 : float = v0 - 1.0                                        │

00:08:06 #27165 [Verbose] > │             let v7 : UH8 = v3 ()                                             │

00:08:06 #27166 [Verbose] > │             method12(v6, v7)                                                 │

00:08:06 #27167 [Verbose] > │     | UH8_1 -> (* StreamNil *)                                               │

00:08:06 #27168 [Verbose] > │         US4_1                                                                │

00:08:06 #27169 [Verbose] > │ and closure149 (v0 : UH9) () : UH9 =                                         │

00:08:06 #27170 [Verbose] > │     v0                                                                       │

00:08:06 #27171 [Verbose] > │ and method13 (v0 : UH1, v1 : UH9) : UH9 =                                    │

00:08:06 #27172 [Verbose] > │     match v0 with                                                            │

00:08:06 #27173 [Verbose] > │     | UH1_0(v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) -> (* StreamCons *)    │

00:08:06 #27174 [Verbose] > │         let v12 : UH1 = v11 ()                                               │

00:08:06 #27175 [Verbose] > │         let v13 : UH9 = method13(v12, v1)                                    │

00:08:06 #27176 [Verbose] > │         let v14 : (unit -> UH9) = closure149(v13)                            │

00:08:07 #27177 [Verbose] > │         UH9_0(v4, v5, v6, v14)                                               │

00:08:07 #27178 [Verbose] > │     | UH1_1 -> (* StreamNil *)                                               │

00:08:07 #27179 [Verbose] > │         v1                                                                   │

00:08:07 #27180 [Verbose] > │ and method14 (v0 : UH9, v1 : UH7) : UH7 =                                    │

00:08:07 #27181 [Verbose] > │     match v0 with                                                            │

00:08:07 #27182 [Verbose] > │     | UH9_0(v2, v3, v4, v5) -> (* StreamCons *)                              │

00:08:07 #27183 [Verbose] > │         let v6 : UH9 = v5 ()                                                 │

00:08:07 #27184 [Verbose] > │         let v7 : UH7 = method14(v6, v1)                                      │

00:08:07 #27185 [Verbose] > │         UH7_1(v2, v3, v4, v7)                                                │

00:08:07 #27186 [Verbose] > │     | UH9_1 -> (* StreamNil *)                                               │

00:08:07 #27187 [Verbose] > │         v1                                                                   │

00:08:07 #27188 [Verbose] > │ and method15 (v0 : UH7, v1 : UH7) : UH7 =                                    │

00:08:07 #27189 [Verbose] > │     match v0 with                                                            │

00:08:07 #27190 [Verbose] > │     | UH7_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:08:07 #27191 [Verbose] > │         let v6 : UH7 = method15(v5, v1)                                      │

00:08:07 #27192 [Verbose] > │         UH7_1(v2, v3, v4, v6)                                                │

00:08:07 #27193 [Verbose] > │     | UH7_0 -> (* Nil *)                                                     │

00:08:07 #27194 [Verbose] > │         v1                                                                   │

00:08:07 #27195 [Verbose] > │ and method16 (v0 : UH7, v1 : UH10) : UH10 =                                  │

00:08:07 #27196 [Verbose] > │     match v0 with                                                            │

00:08:07 #27197 [Verbose] > │     | UH7_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:08:07 #27198 [Verbose] > │         let v6 : UH10 = method16(v5, v1)                                     │

00:08:07 #27199 [Verbose] > │         UH10_1(v2, v3, v6)                                                   │

00:08:07 #27200 [Verbose] > │     | UH7_0 -> (* Nil *)                                                     │

00:08:07 #27201 [Verbose] > │         v1                                                                   │

00:08:07 #27202 [Verbose] > │ and closure150 (v0 : UH11) () : UH11 =                                       │

00:08:07 #27203 [Verbose] > │     v0                                                                       │

00:08:07 #27204 [Verbose] > │ and method17 (v0 : UH10, v1 : UH11) : UH11 =                                 │

00:08:07 #27205 [Verbose] > │     match v0 with                                                            │

00:08:07 #27206 [Verbose] > │     | UH10_1(v2, v3, v4) -> (* Cons *)                                       │

00:08:07 #27207 [Verbose] > │         let v5 : UH11 = method17(v4, v1)                                     │

00:08:07 #27208 [Verbose] > │         let v6 : (unit -> UH11) = closure150(v5)                             │

00:08:07 #27209 [Verbose] > │         UH11_0(v2, v3, v6)                                                   │

00:08:07 #27210 [Verbose] > │     | UH10_0 -> (* Nil *)                                                    │

00:08:07 #27211 [Verbose] > │         v1                                                                   │

00:08:07 #27212 [Verbose] > │ and closure151 (v0 : UH0) () : UH0 =                                         │

00:08:07 #27213 [Verbose] > │     v0                                                                       │

00:08:07 #27214 [Verbose] > │ and closure152 (v0 : UH0) () : UH0 =                                         │

00:08:07 #27215 [Verbose] > │     v0                                                                       │

00:08:07 #27216 [Verbose] > │ and method18 (v0 : UH11) : struct (UH0 * UH0) =                              │

00:08:07 #27217 [Verbose] > │     match v0 with                                                            │

00:08:07 #27218 [Verbose] > │     | UH11_0(v1, v2, v3) -> (* StreamCons *)                                 │

00:08:07 #27219 [Verbose] > │         let v4 : UH11 = v3 ()                                                │

00:08:07 #27220 [Verbose] > │         let struct (v5 : UH0, v6 : UH0) = method18(v4)                       │

00:08:07 #27221 [Verbose] > │         let v7 : (unit -> UH0) = closure151(v5)                              │

00:08:07 #27222 [Verbose] > │         let v8 : UH0 = UH0_0(v1, v7)                                         │

00:08:07 #27223 [Verbose] > │         let v9 : (unit -> UH0) = closure152(v6)                              │

00:08:07 #27224 [Verbose] > │         let v10 : UH0 = UH0_0(v2, v9)                                        │

00:08:07 #27225 [Verbose] > │         struct (v8, v10)                                                     │

00:08:07 #27226 [Verbose] > │     | UH11_1 -> (* StreamNil *)                                              │

00:08:07 #27227 [Verbose] > │         let v11 : UH0 = UH0_1                                                │

00:08:07 #27228 [Verbose] > │         let v12 : UH0 = UH0_1                                                │

00:08:07 #27229 [Verbose] > │         struct (v11, v12)                                                    │

00:08:07 #27230 [Verbose] > │ and method19 (v0 : UH0, v1 : UH12) : UH12 =                                  │

00:08:07 #27231 [Verbose] > │     match v0 with                                                            │

00:08:07 #27232 [Verbose] > │     | UH0_0(v2, v3) -> (* StreamCons *)                                      │

00:08:07 #27233 [Verbose] > │         let v4 : UH0 = v3 ()                                                 │

00:08:07 #27234 [Verbose] > │         let v5 : UH12 = method19(v4, v1)                                     │

00:08:07 #27235 [Verbose] > │         UH12_1(v2, v5)                                                       │

00:08:07 #27236 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:08:07 #27237 [Verbose] > │         v1                                                                   │

00:08:07 #27238 [Verbose] > │ and method21 (v0 : UH12, v1 : int32) : int32 =                               │

00:08:07 #27239 [Verbose] > │     match v0 with                                                            │

00:08:07 #27240 [Verbose] > │     | UH12_1(v2, v3) -> (* Cons *)                                           │

00:08:07 #27241 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:08:07 #27242 [Verbose] > │         method21(v3, v4)                                                     │

00:08:07 #27243 [Verbose] > │     | UH12_0 -> (* Nil *)                                                    │

00:08:07 #27244 [Verbose] > │         v1                                                                   │

00:08:07 #27245 [Verbose] > │ and method22 (v0 : (float []), v1 : UH12, v2 : int32) : int32 =              │

00:08:07 #27246 [Verbose] > │     match v1 with                                                            │

00:08:07 #27247 [Verbose] > │     | UH12_1(v3, v4) -> (* Cons *)                                           │

00:08:07 #27248 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:08:07 #27249 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:08:07 #27250 [Verbose] > │         method22(v0, v4, v5)                                                 │

00:08:07 #27251 [Verbose] > │     | UH12_0 -> (* Nil *)                                                    │

00:08:07 #27252 [Verbose] > │         v2                                                                   │

00:08:07 #27253 [Verbose] > │ and method20 (v0 : UH12) : (float []) =                                      │

00:08:07 #27254 [Verbose] > │     let v1 : int32 = 0                                                       │

00:08:07 #27255 [Verbose] > │     let v2 : int32 = method21(v0, v1)                                        │

00:08:07 #27256 [Verbose] > │     let v3 : (float []) = Array.zeroCreate<float> (v2)                       │

00:08:07 #27257 [Verbose] > │     let v4 : int32 = 0                                                       │

00:08:07 #27258 [Verbose] > │     let v5 : int32 = method22(v3, v0, v4)                                    │

00:08:07 #27259 [Verbose] > │     v3                                                                       │

00:08:07 #27260 [Verbose] > │ and closure153 (v0 : UH2) () : UH2 =                                         │

00:08:07 #27261 [Verbose] > │     v0                                                                       │

00:08:07 #27262 [Verbose] > │ and method1 (v0 : UH1, v1 : UH0, v2 : UH2) : UH2 =                           │

00:08:07 #27263 [Verbose] > │     match v1 with                                                            │

00:08:07 #27264 [Verbose] > │     | UH0_0(v3, v4) -> (* StreamCons *)                                      │

00:08:07 #27265 [Verbose] > │         let v5 : UH0 = v4 ()                                                 │

00:08:07 #27266 [Verbose] > │         let v6 : UH2 = method1(v0, v5, v2)                                   │

00:08:07 #27267 [Verbose] > │         let v7 : ((UH1 -> UH3) -> (UH1 -> UH1)) = method2()                  │

00:08:07 #27268 [Verbose] > │         let v8 : UH4 = method4()                                             │

00:08:07 #27269 [Verbose] > │         let v9 : (UH1 -> UH3) = closure142(v8)                               │

00:08:07 #27270 [Verbose] > │         let v10 : (UH1 -> UH1) = v7 v9                                       │

00:08:07 #27271 [Verbose] > │         let v11 : UH1 = v10 v0                                               │

00:08:07 #27272 [Verbose] > │         let v12 : (unit -> UH8) = closure148(v10, v0, v11)                   │

00:08:07 #27273 [Verbose] > │         let v13 : UH8 = UH8_0(v0, v12)                                       │

00:08:07 #27274 [Verbose] > │         let v14 : US4 = method12(v3, v13)                                    │

00:08:07 #27275 [Verbose] > │         let v18 : UH1 =                                                      │

00:08:07 #27276 [Verbose] > │             match v14 with                                                   │

00:08:07 #27277 [Verbose] > │             | US4_1 -> (* None *)                                            │

00:08:07 #27278 [Verbose] > │                 failwith<UH1> "Option does not have a value."                │

00:08:07 #27279 [Verbose] > │             | US4_0(v15) -> (* Some *)                                       │

00:08:07 #27280 [Verbose] > │                 v15                                                          │

00:08:07 #27281 [Verbose] > │         let v19 : UH9 = UH9_1                                                │

00:08:07 #27282 [Verbose] > │         let v20 : UH9 = method13(v18, v19)                                   │

00:08:07 #27283 [Verbose] > │         let v21 : UH7 = UH7_0                                                │

00:08:07 #27284 [Verbose] > │         let v22 : UH7 = method14(v20, v21)                                   │

00:08:07 #27285 [Verbose] > │         let v23 : float = 0.65                                               │

00:08:07 #27286 [Verbose] > │         let v24 : float = 0.0                                                │

00:08:07 #27287 [Verbose] > │         let v25 : float = 0.0                                                │

00:08:07 #27288 [Verbose] > │         let v26 : UH7 = UH7_0                                                │

00:08:07 #27289 [Verbose] > │         let v27 : UH7 = UH7_1(v23, v24, v25, v26)                            │

00:08:07 #27290 [Verbose] > │         let v28 : UH7 = method15(v22, v27)                                   │

00:08:07 #27291 [Verbose] > │         let v29 : UH10 = UH10_0                                              │

00:08:07 #27292 [Verbose] > │         let v30 : UH10 = method16(v28, v29)                                  │

00:08:07 #27293 [Verbose] > │         let v31 : UH11 = UH11_1                                              │

00:08:07 #27294 [Verbose] > │         let v32 : UH11 = method17(v30, v31)                                  │

00:08:07 #27295 [Verbose] > │         let struct (v33 : UH0, v34 : UH0) = method18(v32)                    │

00:08:07 #27296 [Verbose] > │         let v35 : UH12 = UH12_0                                              │

00:08:07 #27297 [Verbose] > │         let v36 : UH12 = method19(v33, v35)                                  │

00:08:07 #27298 [Verbose] > │         let v37 : float = 0.0                                                │

00:08:07 #27299 [Verbose] > │         let v38 : UH12 = UH12_1(v37, v36)                                    │

00:08:07 #27300 [Verbose] > │         let v39 : (float []) = method20(v38)                                 │

00:08:07 #27301 [Verbose] > │         let v40 : UH12 = UH12_0                                              │

00:08:07 #27302 [Verbose] > │         let v41 : UH12 = method19(v34, v40)                                  │

00:08:07 #27303 [Verbose] > │         let v42 : float = 0.0                                                │

00:08:07 #27304 [Verbose] > │         let v43 : UH12 = UH12_1(v42, v41)                                    │

00:08:07 #27305 [Verbose] > │         let v44 : (float []) = method20(v43)                                 │

00:08:07 #27306 [Verbose] > │         let v45 : (unit -> UH2) = closure153(v6)                             │

00:08:07 #27307 [Verbose] > │         UH2_0(v39, v44, v45)                                                 │

00:08:07 #27308 [Verbose] > │     | UH0_1 -> (* StreamNil *)                                               │

00:08:07 #27309 [Verbose] > │         v2                                                                   │

00:08:07 #27310 [Verbose] > │ and closure154 (v0 : UH13) () : UH13 =                                       │

00:08:07 #27311 [Verbose] > │     v0                                                                       │

00:08:07 #27312 [Verbose] > │ and method23 (v0 : UH2, v1 : UH13, v2 : int32) : struct (UH13 * int32) =     │

00:08:07 #27313 [Verbose] > │     match v0 with                                                            │

00:08:07 #27314 [Verbose] > │     | UH2_0(v3, v4, v5) -> (* StreamCons *)                                  │

00:08:07 #27315 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:08:07 #27316 [Verbose] > │         let v7 : UH2 = v5 ()                                                 │

00:08:07 #27317 [Verbose] > │         let v8 : (unit -> UH13) = closure154(v1)                             │

00:08:07 #27318 [Verbose] > │         let v9 : UH13 = UH13_0(v2, v3, v4, v8)                               │

00:08:07 #27319 [Verbose] > │         method23(v7, v9, v6)                                                 │

00:08:07 #27320 [Verbose] > │     | UH2_1 -> (* StreamNil *)                                               │

00:08:07 #27321 [Verbose] > │         struct (v1, v2)                                                      │

00:08:07 #27322 [Verbose] > │ and closure155 (v0 : UH13) () : UH13 =                                       │

00:08:07 #27323 [Verbose] > │     v0                                                                       │

00:08:07 #27324 [Verbose] > │ and method24 (v0 : UH13, v1 : UH13) : UH13 =                                 │

00:08:07 #27325 [Verbose] > │     match v0 with                                                            │

00:08:07 #27326 [Verbose] > │     | UH13_0(v2, v3, v4, v5) -> (* StreamCons *)                             │

00:08:07 #27327 [Verbose] > │         let v6 : UH13 = v5 ()                                                │

00:08:07 #27328 [Verbose] > │         let v7 : (unit -> UH13) = closure155(v1)                             │

00:08:07 #27329 [Verbose] > │         let v8 : UH13 = UH13_0(v2, v3, v4, v7)                               │

00:08:07 #27330 [Verbose] > │         method24(v6, v8)                                                     │

00:08:07 #27331 [Verbose] > │     | UH13_1 -> (* StreamNil *)                                              │

00:08:07 #27332 [Verbose] > │         v1                                                                   │

00:08:07 #27333 [Verbose] > │ and closure156 (v0 : UH14) () : UH14 =                                       │

00:08:07 #27334 [Verbose] > │     v0                                                                       │

00:08:07 #27335 [Verbose] > │ and method25 (v0 : UH13, v1 : UH14) : UH14 =                                 │

00:08:07 #27336 [Verbose] > │     match v0 with                                                            │

00:08:07 #27337 [Verbose] > │     | UH13_0(v2, v3, v4, v5) -> (* StreamCons *)                             │

00:08:07 #27338 [Verbose] > │         let v6 : UH13 = v5 ()                                                │

00:08:07 #27339 [Verbose] > │         let v7 : UH14 = method25(v6, v1)                                     │

00:08:07 #27340 [Verbose] > │         let v8 : string = $"{v2}"                                            │

00:08:07 #27341 [Verbose] > │         let v9 : (struct (string * (float []) * (float [])) []) = [|struct   │

00:08:07 #27342 [Verbose] > │ (v8, v3, v4)|]                                                               │

00:08:07 #27343 [Verbose] > │         let v10 : string = "wave"                                            │

00:08:07 #27344 [Verbose] > │         let v11 : string = "position (m)"                                    │

00:08:07 #27345 [Verbose] > │         let v12 : string = "displacement (m)"                                │

00:08:07 #27346 [Verbose] > │         let v13 : (unit -> UH14) = closure156(v7)                            │

00:08:07 #27347 [Verbose] > │         UH14_0(v10, v11, v12, v9, v13)                                       │

00:08:07 #27348 [Verbose] > │     | UH13_1 -> (* StreamNil *)                                              │

00:08:07 #27349 [Verbose] > │         v1                                                                   │

00:08:07 #27350 [Verbose] > │ and method26 (v0 : UH14, v1 : UH15) : UH15 =                                 │

00:08:07 #27351 [Verbose] > │     match v0 with                                                            │

00:08:07 #27352 [Verbose] > │     | UH14_0(v2, v3, v4, v5, v6) -> (* StreamCons *)                         │

00:08:07 #27353 [Verbose] > │         let v7 : UH14 = v6 ()                                                │

00:08:07 #27354 [Verbose] > │         let v8 : UH15 = method26(v7, v1)                                     │

00:08:07 #27355 [Verbose] > │         UH15_1(v2, v3, v4, v5, v8)                                           │

00:08:07 #27356 [Verbose] > │     | UH14_1 -> (* StreamNil *)                                              │

00:08:07 #27357 [Verbose] > │         v1                                                                   │

00:08:07 #27358 [Verbose] > │ and method28 (v0 : UH15, v1 : int32) : int32 =                               │

00:08:07 #27359 [Verbose] > │     match v0 with                                                            │

00:08:07 #27360 [Verbose] > │     | UH15_1(v2, v3, v4, v5, v6) -> (* Cons *)                               │

00:08:07 #27361 [Verbose] > │         let v7 : int32 = v1 + 1                                              │

00:08:07 #27362 [Verbose] > │         method28(v6, v7)                                                     │

00:08:07 #27363 [Verbose] > │     | UH15_0 -> (* Nil *)                                                    │

00:08:07 #27364 [Verbose] > │         v1                                                                   │

00:08:07 #27365 [Verbose] > │ and method29 (v0 : (struct (string * string * string * (struct (string *     │

00:08:07 #27366 [Verbose] > │ (float []) * (float [])) [])) []), v1 : UH15, v2 : int32) : int32 =          │

00:08:07 #27367 [Verbose] > │     match v1 with                                                            │

00:08:07 #27368 [Verbose] > │     | UH15_1(v3, v4, v5, v6, v7) -> (* Cons *)                               │

00:08:07 #27369 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5, v6)                               │

00:08:07 #27370 [Verbose] > │         let v8 : int32 = v2 + 1                                              │

00:08:07 #27371 [Verbose] > │         method29(v0, v7, v8)                                                 │

00:08:07 #27372 [Verbose] > │     | UH15_0 -> (* Nil *)                                                    │

00:08:07 #27373 [Verbose] > │         v2                                                                   │

00:08:07 #27374 [Verbose] > │ and method27 (v0 : UH15) : (struct (string * string * string * (struct       │

00:08:07 #27375 [Verbose] > │ (string * (float []) * (float [])) [])) []) =                                │

00:08:07 #27376 [Verbose] > │     let v1 : int32 = 0                                                       │

00:08:07 #27377 [Verbose] > │     let v2 : int32 = method28(v0, v1)                                        │

00:08:07 #27378 [Verbose] > │     let v3 : (struct (string * string * string * (struct (string * (float [  │

00:08:07 #27379 [Verbose] > │ ]) * (float [])) [])) []) = Array.zeroCreate<struct (string * string *       │

00:08:07 #27380 [Verbose] > │ string * (struct (string * (float []) * (float [])) []))> (v2)               │

00:08:07 #27381 [Verbose] > │     let v4 : int32 = 0                                                       │

00:08:07 #27382 [Verbose] > │     let v5 : int32 = method29(v3, v0, v4)                                    │

00:08:07 #27383 [Verbose] > │     v3                                                                       │

00:08:07 #27384 [Verbose] > │ and method0 () : (struct (string * string * string * (struct (string *       │

00:08:07 #27385 [Verbose] > │ (float []) * (float [])) [])) []) =                                          │

00:08:07 #27386 [Verbose] > │     let v0 : float = 0.0                                                     │

00:08:07 #27387 [Verbose] > │     let v1 : (unit -> UH0) = closure0()                                      │

00:08:07 #27388 [Verbose] > │     let v2 : UH0 = UH0_0(v0, v1)                                             │

00:08:07 #27389 [Verbose] > │     let v3 : float = 0.0                                                     │

00:08:07 #27390 [Verbose] > │     let v4 : float = 8.422578125E-06                                         │

00:08:07 #27391 [Verbose] > │     let v5 : float = 0.01                                                    │

00:08:07 #27392 [Verbose] > │     let v6 : float = 0.0007224452478461068                                   │

00:08:07 #27393 [Verbose] > │     let v7 : float = 0.0                                                     │

00:08:07 #27394 [Verbose] > │     let v8 : float = 0.0                                                     │

00:08:07 #27395 [Verbose] > │     let v9 : float = 0.0                                                     │

00:08:07 #27396 [Verbose] > │     let v10 : float = 0.0                                                    │

00:08:07 #27397 [Verbose] > │     let v11 : float = 0.0                                                    │

00:08:07 #27398 [Verbose] > │     let v12 : (unit -> UH1) = closure66()                                    │

00:08:07 #27399 [Verbose] > │     let v13 : UH1 = UH1_0(v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)         │

00:08:07 #27400 [Verbose] > │     let v14 : UH2 = UH2_1                                                    │

00:08:07 #27401 [Verbose] > │     let v15 : UH2 = method1(v13, v2, v14)                                    │

00:08:07 #27402 [Verbose] > │     let v16 : UH13 = UH13_1                                                  │

00:08:07 #27403 [Verbose] > │     let v17 : int32 = 0                                                      │

00:08:07 #27404 [Verbose] > │     let struct (v18 : UH13, v19 : int32) = method23(v15, v16, v17)           │

00:08:07 #27405 [Verbose] > │     let v20 : UH13 = UH13_1                                                  │

00:08:07 #27406 [Verbose] > │     let v21 : UH13 = method24(v18, v20)                                      │

00:08:07 #27407 [Verbose] > │     let v22 : UH14 = UH14_1                                                  │

00:08:07 #27408 [Verbose] > │     let v23 : UH14 = method25(v21, v22)                                      │

00:08:07 #27409 [Verbose] > │     let v24 : UH15 = UH15_0                                                  │

00:08:07 #27410 [Verbose] > │     let v25 : UH15 = method26(v23, v24)                                      │

00:08:07 #27411 [Verbose] > │     method27(v25)                                                            │

00:08:07 #27412 [Verbose] > │ method0()                                                                    │

00:08:07 #27413 [Verbose] > │                                                                              │

00:08:07 #27414 [Verbose] > │                                                                              │

00:08:07 #27415 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:08:07 #27416 [Verbose] >

00:08:07 #27417 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:08:07 #27418 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:08:07 #27419 [Verbose] > │ ## end                                                                       │

00:08:07 #27420 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:08:09 #27421 [Verbose] > [NbConvertApp] Converting notebook physics.dib.ipynb to html

00:08:09 #27422 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:08:09 #27423 [Verbose] >   validate(nb)

00:08:10 #27424 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:08:10 #27425 [Verbose] >   return _pygments_highlight(

00:08:15 #27426 [Verbose] > [NbConvertApp] Writing 2732433 bytes to physics.dib.html

00:08:16 #27427 [Debug] executeAsync / exitCode: 0 / output.Length: 576504

00:08:16 #27428 [Debug] main / executeCommand / exitCode: 0

00:08:18 #27429 [Debug] runWithTimeoutChildAsync / timeout: 2000

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: file_system.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: console.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: optionm'.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: math.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: common.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: testing.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: date_time.dib

00:00:00 #2 [Debug] writeDibCode / output: Spi / path: guid.dib

00:00:00 #5 [Debug] parseDibCode / output: Spi / file: console.dib

00:00:00 #6 [Debug] parseDibCode / output: Spi / file: optionm'.dib

00:00:00 #5 [Debug] parseDibCode / output: Spi / file: common.dib

00:00:00 #5 [Debug] parseDibCode / output: Spi / file: guid.dib

00:00:00 #7 [Debug] parseDibCode / output: Spi / file: file_system.dib

00:00:00 #9 [Debug] parseDibCode / output: Spi / file: testing.dib

00:00:00 #8 [Debug] parseDibCode / output: Spi / file: math.dib

00:00:00 #10 [Debug] parseDibCode / output: Spi / file: date_time.dib

00:00:00 #13 [Debug] writeDibCode / output: Spi / path: stream.dib

00:00:00 #14 [Debug] writeDibCode / output: Spi / path: seq.dib

00:00:00 #12 [Debug] writeDibCode / output: Spi / path: benchmark.dib

00:00:00 #12 [Debug] writeDibCode / output: Spi / path: listm'.dib

00:00:00 #12 [Debug] writeDibCode / output: Spi / path: am'.dib

00:00:00 #12 [Debug] writeDibCode / output: Spi / path: sm'.dib

00:00:00 #15 [Debug] parseDibCode / output: Spi / file: stream.dib

00:00:00 #16 [Debug] parseDibCode / output: Spi / file: seq.dib

00:00:00 #17 [Debug] parseDibCode / output: Spi / file: benchmark.dib

00:00:00 #18 [Debug] parseDibCode / output: Spi / file: listm'.dib

00:00:00 #19 [Debug] parseDibCode / output: Spi / file: am'.dib

00:00:00 #20 [Debug] parseDibCode / output: Spi / file: sm'.dib

00:00:00 #23 [Debug] writeDibCode / output: Spi / path: physics.dib

00:00:00 #23 [Debug] writeDibCode / output: Spi / path: rust.dib

00:00:00 #21 [Debug] writeDibCode / output: Spi / path: util.dib

00:00:00 #24 [Debug] parseDibCode / output: Spi / file: physics.dib

00:00:00 #25 [Debug] parseDibCode / output: Spi / file: rust.dib

00:00:00 #26 [Debug] parseDibCode / output: Spi / file: util.dib

00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\spiral

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805

00:00:01 #11 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:01 #12 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:01 #13 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:01 #14 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # common\n\ninl array x = x\n\n// // ## prototype\n\nprototype (~:\u003E) r : forall t. t -\u003E r\nprototype append t : t -\u003E t -\u003E t\nprototype of_string t : string -\u003E t\nprototype to_string t : t -\u003E string\n\n// // ## null\n\ninl null forall t. () : t =\n    $\u0022null |\u003E unbox\u003C\u0060t\u003E\u0022\n\n// // ## unativeint\n\nnominal unativeint = $\u0022unativeint\u0022\n\ninl unativeint forall t {int}. (n : t) : unativeint =\n    $\u0022unativeint !n\u0022\n\n// // ## i32\n\ninl i32 forall t. (x : t) : i32 =\n    $\u0022int32 !x\u0022\n\n// // ## i64\n\ninl i64 forall t. (x : t) : i64 =\n    $\u0022int64 !x\u0022\n\n// // ## f32\n\ninl f32 forall t. (x : t) : f32 =\n    $\u0022float32 !x\u0022\n\n// // ## f64\n\ninl f64 forall t. (x : t) : f64 =\n    $\u0022float !x\u0022\n\n// // ## pair\n\ntype pair a b = $\u0022(\u0060a * \u0060b)\u0022\n\ninl pair x y =\n    x, y\n\n// // ## new_pair\n\ninl new_pair forall a b. (a : a) (b : b) : pair a b =\n    $\u0022!a, !b\u0022\n\n// // ## from_pair\n\ninl from_pair forall a b. (pair : pair a b) : a * b =\n    $\u0022let (a, b) = !pair\u0022\n    $\u0022a\u0022, $\u0022b\u0022\n\n// // ## memoize\n\nnominal lazy t = $\u0027Lazy\u003C\u0060t\u003E\u0027\n\ninl memoize forall t. (fn : () -\u003E t) : () -\u003E t =\n    inl result : lazy t = $\u0027lazy !fn ()\u0027\n    fun () =\u003E $\u0027!result.Value\u0027\n\n// // ## trace_level\n\nunion trace_level =\n    | Verbose\n    | Debug\n    | Info\n    | Warning\n    | Critical\n\ninstance to_string trace_level = function\n    | Verbose =\u003E \u0022Verbose\u0022\n    | Debug =\u003E \u0022Debug\u0022\n    | Info =\u003E \u0022Info\u0022\n    | Warning =\u003E \u0022Warning\u0022\n    | Critical =\u003E \u0022Critical\u0022\n\ninstance of_string trace_level = function\n    | \u0022Verbose\u0022 =\u003E Verbose\n    | \u0022Debug\u0022 =\u003E Debug\n    | \u0022Info\u0022 =\u003E Info\n    | \u0022Warning\u0022 =\u003E Warning\n    | \u0022Critical\u0022 =\u003E Critical\n\n// // ## get_locals\n\ninl get_locals () = \u0022\u0022\n\n// // ## trace_state\n\ninl trace_state () =\n    inl result =\n        fun () =\u003E\n            {\n                enabled = mut true\n                count = mut 0i64\n                level = mut Debug\n                dump = mut false\n            }\n        |\u003E memoize\n    result ()\n\n// // ## test_trace_level\n\ninl test_trace_level level =\n    inl state = trace_state ()\n    inl level\u0027 = *state.level\n    *state.enabled \u0026\u0026 $\u0027!level \u003E= !level\u0027 \u0027\n\n// // ## any\n\nnominal any = $\u0022obj\u0022\n\n// // ## to_any\n\ninl to_any forall t. (obj : t) : any =\n    $\u0022!obj\u0022\n\ninstance (~:\u003E) any = to_any\n\n// // ## (/@)\n\ninl (/@) a b =\n    b |\u003E append a\n\n// // ## unbox\n\ninl unbox forall t u. (x : t) : u =\n    $\u0022!x |\u003E unbox\u003C\u0060u\u003E\u0022\n\n// // ## (\u002B.)\n\ninl (\u002B.) forall t. (a : t) (b : t) : t =\n    $\u0022!a \u002B !b\u0022\n\n// // ## (-.)\n\ninl (-.) forall t. (a : t) (b : t) : t =\n    $\u0022!a - !b\u0022\n\n// // ## (*.)\n\ninl (*.) forall t. (a : t) (b : t) : t =\n    $\u0022!a * !b\u0022\n\n// // ## (/.)\n\ninl (/.) forall t. (a : t) (b : t) : t =\n    $\u0022!a / !b\u0022\n\n// // ## (=.)\n\ninl (=.) forall t. (a : t) (b : t) : bool =\n    $\u0022!a = !b\u0022\n\n// // ## (||\u003E)\n\ninl (||\u003E) (arg1, arg2) fn =\n    arg2 |\u003E fn arg1\n\n// // ## flip\n\ninl flip fn a b =\n    fn b a\n\n// // ## join_body\n\ninl join_body body acc x =\n    if var_is x |\u003E not\n    then body acc x\n    else\n        inl acc = dyn acc\n        join body acc x\n\n// // ## join_body_unit\n\ninl join_body_unit body d x =\n    if var_is d |\u003E not\n    then body x\n    else\n        inl x = dyn x\n        join body x\n\n// // ## run_target\n\nunion target_runtime =\n    | Native\n    | Fable\n    | Wasm\n    | Contract\n\nunion target =\n    | Rust : target_runtime\n    | Fsharp : target_runtime\n\ninl run_target forall t. (fn : target -\u003E (() -\u003E t)) : t =\n    inl result : optionm\u0027.option\u0027 t = $\u0027None\u0027\n    $\u0022let mutable _!result = !result\u0022\n    $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 \\!WASM \u0026\u0026 \\!CONTRACT\u0022\n    fn (Rust Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n    fn (Rust Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if FABLE_COMPILER_RUST \u0026\u0026 CONTRACT\u0022\n    fn (Rust Contract) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if \\!FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n    fn (Fsharp Native) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if FABLE_COMPILER \u0026\u0026 \\!FABLE_COMPILER_RUST \u0026\u0026 \\!WASM\u0022\n    fn (Fsharp Fable) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022#if \\!FABLE_COMPILER_RUST \u0026\u0026 WASM\u0022\n    fn (Fsharp Wasm) () |\u003E fun x =\u003E $\u0022!x\u0022\n    $\u0022#endif\u0022\n    $\u0022|\u003E fun x -\u003E _!result \u003C- Some x\u0022\n    $\u0022_!result |\u003E Option.get\u0022\n\n// // ## nameof\n\ninl nameof x : string =\n    $\u0022nameof !x\u0022\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n    $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\n// // ## disposable\n\nnominal disposable = $\u0022System.IDisposable\u0022\n\n// // ## use_disposable\n\ninl use_disposable (disposable : disposable) : disposable =\n    $\u0022use !disposable = !disposable\u0022 : ()\n    $\u0022!disposable\u0022\n\n// // ## new_disposable\n\ninl new_disposable (fn : () -\u003E ()) : disposable =\n    run_target function\n        | Fsharp _ =\u003E fun () =\u003E $\u0027{ new System.IDisposable with member _.Dispose () = !fn () }\u0027\n        // | Rust _ =\u003E\n        //     fun () =\u003E\n                // $\u0027{ new System.IDisposable with member _.Dispose () = Fable.Core.RustInterop.emitRustExpr () \u0022!fn()\u0022 }\u0027\n        | target =\u003E fun () =\u003E failwith $\u0027$\u0022new_disposable / target: {!target}\u0022\u0027\n\n// // ## exn\n\nnominal exn = $\u0022exn\u0022\n\n// // ## try\n\ninl try forall t. (fn : () -\u003E t) (ex_fn : exn -\u003E ()) : option t =\n    inl none = None : option t\n    inl some (s : t) = Some s\n    $\u0027try !fn () |\u003E !some with ex -\u003E !ex_fn ex; !none \u0027\n\n// // ## sleep\n\ninl sleep (n : i32) : () =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E $\u0027System.Threading.Thread.Sleep\u0027 n\n        | _ =\u003E fun () =\u003E ()\n\n// // ## retry_fn\n\ninl retry_fn forall t. retries (fn : () -\u003E t) : option t =\n    let rec loop retry =\n        try\n            fun () =\u003E\n                if retry \u003C retries\n                then fn () |\u003E Some\n                else None\n            fun ex =\u003E\n                let getLocals () = $\u0022retry: {retry} / ex: {ex |\u003E SpiralSm.format_exception} / {getLocals ()}\u0022\n                // trace Warning (fun () =\u003E \u0022retry_fn\u0022) getLocals\n                sleep 1\n        |\u003E function\n            | Some x =\u003E x\n            | None =\u003E loop (retry \u002B 1)\n    loop 0\n\n// // ## main\n\ninl main () =\n    inl retry_fn (r : i32) (x : () -\u003E _) : optionm\u0027.option\u0027 () =\n        retry_fn r x |\u003E optionm\u0027.box\n    $\u0022let new_disposable x = !new_disposable x\u0022 : ()\n    $\u0022let retry_fn x = !retry_fn x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result.Length:

00:00:02 #15 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result.Length:

00:00:02 #16 [Verbose] > Building c:\home\git\polyglot\lib\spiral\common.spi

00:00:02 #17 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:03 #18 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #19 [Debug] buildFile / takeWhileInclusive / fsxContent: type [<Struct>] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [<Struct>] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [<Struct>] US2 =

    | US2_0

    | US2_1

and [<Struct>] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos... / errors: [] / typeErrorCount: 0

00:00:04 #20 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite

00:00:04 #21 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:04 #22 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #23 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #24 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # date_time\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::DateTime\u003C$0\u003E\\\u0022)\u003E] type chrono_DateTime\u003C\u0027T\u003E = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Local\\\u0022)\u003E] type chrono_Local = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::NaiveDateTime\\\u0022)\u003E] type chrono_NaiveDateTime = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022chrono::Utc\\\u0022)\u003E] type chrono_Utc = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::time::Duration\\\u0022)\u003E] type std_time_Duration = class end\u0022\n\nnominal timestamp = i64\nnominal duration = $\u0022std_time_Duration\u0022\nnominal date_time = $\u0022System.DateTime\u0022\nnominal date_time\u0027 t = $\u0022chrono_DateTime\u003C\u0060t\u003E\u0022\nnominal local = $\u0022chrono_Local\u0022\nnominal naive_date_time = $\u0022chrono_NaiveDateTime\u0022\nnominal utc = $\u0022chrono_Utc\u0022\n\n// // ## naive_utc\n\ninl naive_utc (date_time : date_time\u0027 utc) : naive_date_time =\n    inl date_time = join date_time\n    !\\($\u0027\u0022!date_time.naive_utc()\u0022\u0027)\n\n// // ## to_local\n\ninl to_local (date_time : date_time\u0027 utc) : date_time\u0027 local =\n    inl naive_date_time = date_time |\u003E naive_utc\n    !\\($\u0027\u0022chrono::offset::TimeZone::from_utc_datetime(\u0026chrono::Local, \u0026!naive_date_time)\u0022\u0027)\n\n// // ## from_timestamp\u0027\n\ninl from_timestamp\u0027 forall t {number; int}. (timestamp : t) : option (date_time\u0027 utc) =\n    inl timestamp = join timestamp\n    inl result : optionm\u0027.option\u0027 (date_time\u0027 utc) =\n        !\\($\u0027\u0022chrono::DateTime::from_timestamp_micros(!timestamp / 1000i64)\u0022\u0027)\n    result |\u003E optionm\u0027.unbox\n\n// // ## ticks\n\ninl ticks (date_time : date_time) : timestamp =\n    date_time |\u003E $\u0027_.Ticks\u0027\n\n// // ## format\n\ninl format (format : string) (date_time : date_time) : string =\n    $\u0027!date_time.ToString\u0027 format\n\n// // ## format_iso8601\n\ninl format_iso8601 (date_time : date_time) =\n    date_time |\u003E format \u0022yyyy-MM-ddTHH-mm-ss.fff\u0022\n\n// // ## format\u0027\n\ninl format\u0027 (format : string) (date_time : date_time\u0027 utc) : sm\u0027.std_string =\n    inl format = #format\n    inl date_time = join date_time\n    !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format\u0027\u0027\n\ninl format\u0027\u0027 (format : string) (date_time : date_time\u0027 _) : sm\u0027.std_string =\n    inl format = #format\n    inl date_time = join date_time\n    !\\($\u0027\u0022!date_time.format(!format).to_string()\u0022\u0027)\n\n// // ## format_timestamp\n\ninl format_timestamp (timestamp : sm\u0027.std_string) =\n    inl timestamp = join timestamp\n    timestamp\n    |\u003E fun x =\u003E !\\($\u0027\u0022!x.parse().unwrap()\u0022\u0027) : i64\n    |\u003E from_timestamp\u0027\n    |\u003E optionm.map fun x =\u003E\n        x\n        |\u003E to_local\n        |\u003E format\u0027\u0027 \u0022%Y-%m-%d %H:%M:%S\u0022\n        |\u003E sm\u0027.from_std_string\n    |\u003E resultm.from_option\n\n// // ## duration_from_millis\n\ninl duration_from_millis (ms : u64) : duration =\n    inl ms = join ms\n    !\\($\u0027\u0022std::time::Duration::from_millis(!ms)\u0022\u0027)\n\n// // ## get_environment_variable\n\ninl get_environment_variable (var : string) : string =\n    $\u0022System.Environment.GetEnvironmentVariable !var\u0022\n\ntype timestamp_guid = guid.guid\ntype date_time_guid = guid.guid\n\n// // ## date_time_guid_from_date_time\n\ninl date_time_guid_from_date_time (guid : guid.guid) (date_time : date_time) =\n    inl guid = guid |\u003E sm\u0027.obj_to_string\n    inl prefix = $\u0027!date_time.ToString \u0022yyyyMMdd-HHmm-ssff-ffff-f\u0022\u0027 : string\n    $\u0027\u0060date_time_guid $\u0022{!prefix}{!guid.[!prefix.Length..]}\u0022\u0027 : date_time_guid\n\n// // ## date_time_from_guid\n\ninl date_time_from_guid (date_time_guid : date_time_guid) =\n    inl date_time_guid = date_time_guid |\u003E sm\u0027.obj_to_string\n    inl sm\u0027_replace = join sm\u0027.replace\n    run_target function\n        | Fsharp =\u003E fun () =\u003E $\u0027System.DateTime.ParseExact (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022, \u0022yyyyMMddHHmmssfffffff\u0022, null)\u0027 : date_time\n        | Rust _ =\u003E fun () =\u003E\n            $\u0027System.DateTime.Parse (!date_time_guid.[..24] |\u003E !sm\u0027_replace \u0022-\u0022 \u0022\u0022)\u0027 : date_time\n\n// // ## timestamp_guid_from_timestamp\n\ninl timestamp_guid_from_timestamp (guid : guid.guid) (timestamp : timestamp) : timestamp_guid =\n    inl guid = guid |\u003E sm\u0027.obj_to_string\n    inl timestamp = timestamp |\u003E sm\u0027.obj_to_string |\u003E sm\u0027.pad_left 18i32 \u00270\u0027\n    $\u0027\u0060timestamp_guid $\u0022{!timestamp.[0..7]}-{!timestamp.[8..11]}-{!timestamp.[12..15]}-{!timestamp.[16..17]}{!guid.[21..]}\u0022\u0027\n\n// // ## timestamp_from_guid\n\ninl timestamp_from_guid (guid : date_time_guid) : timestamp =\n    inl guid = guid |\u003E sm\u0027.obj_to_string\n    $\u0027\u0060i64 $\u0022{!guid.[0..7]}{!guid.[9..12]}{!guid.[14..17]}{!guid.[19..20]}\u0022\u0027\n\n// // ## utc_now\n\ninl utc_now () : date_time =\n    $\u0027System.DateTime.UtcNow\u0027\n\n// // ## time_span\n\nnominal time_span = $\u0027System.TimeSpan\u0027\n\n// // ## new_time_span\n\ninl new_time_span (a : date_time) (b : date_time) : time_span =\n    $\u0027!b - !a \u0027\n\n// // ## total_seconds\n\ninl total_seconds (time_span : time_span) : f64 =\n    time_span |\u003E $\u0027_.TotalSeconds\u0027\n\n// // ## new_guid_from_date_time\n\ninl new_guid_from_date_time (date_time : date_time) =\n    inl guid = guid.new_raw_guid ()\n    date_time_guid_from_date_time guid date_time\n\n// // ## new_guid_from_timestamp\n\ninl new_guid_from_timestamp (timestamp : timestamp) =\n    inl guid = guid.new_raw_guid ()\n    timestamp_guid_from_timestamp guid timestamp\n\n// // ## main\n\ninl main () =\n    $\u0022let date_time_guid_from_date_time x = !date_time_guid_from_date_time x\u0022 : ()\n    $\u0022let date_time_from_guid x = !date_time_from_guid x\u0022 : ()\n    $\u0022let timestamp_guid_from_timestamp x = !timestamp_guid_from_timestamp x\u0022 : ()\n    $\u0022let timestamp_from_guid x = !timestamp_from_guid x\u0022 : ()\n    $\u0022let new_guid_from_date_time x = !new_guid_from_date_time x\u0022 : ()\n    $\u0022let new_guid_from_timestamp x = !new_guid_from_timestamp x\u0022 : ()\n    $\u0022let format x = !format x\u0022 : ()\n    $\u0022let format_iso8601 x = !format_iso8601 x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result.Length:

00:00:04 #25 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result.Length:

00:00:04 #26 [Verbose] > Building c:\home\git\polyglot\lib\spiral\date_time.spi

00:00:04 #27 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[v4.Length..]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (... / errors: [] / typeErrorCount: 0

00:00:04 #28 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite

00:00:04 #29 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:04 #30 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #31 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #32 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # file_system\n\nopen rust_operators\nopen sm\u0027_operators\n\n// // ## types\n\ninl types () =\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::path::Path\\\u0022)\u003E] type std_path_Path = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::path::PathBuf\\\u0022)\u003E] type std_path_PathBuf = class end\u0022\n\ninl types () =\n    global \u0022#if FABLE_COMPILER // file_system.types\u0022\n    sm\u0027.types ()\n    rust.types ()\n    types ()\n    global \u0022#endif // file_system.types\u0022\n\n// // ## path\n\nnominal path = $\u0027std_path_Path\u0027\nnominal path_buf = $\u0027std_path_PathBuf\u0027\n\n// // ## new_path_buf\n\ninl new_path_buf (path : string) : path_buf =\n    inl path = path |\u003E sm\u0027.to_std_string\n    !\\\\(path, $\u0027\u0022std::path::PathBuf::from($0)\u0022\u0027)\n\n// // ## path_buf_from\n\ninl path_buf_from (path : rust.box path) : path_buf =\n    !\\\\(path, $\u0027\u0022std::path::PathBuf::from($0)\u0022\u0027)\n\n// // ## path_join\n\ninl path_join (s : string) (path_buf : path_buf) : path_buf =\n    !\\\\((path_buf, s |\u003E sm\u0027.to_std_string), $\u0027\u0022$0.join($1)\u0022\u0027)\n\n// // ## path_display\n\ninl path_display (path : rust.ref\u0027 path) : sm\u0027.std_string =\n    !\\\\(path, $\u0027\u0022$0.display().to_string()\u0022\u0027)\n\n// // ## path_buf_file_name\n\ninl path_buf_file_name (path : path_buf) : optionm\u0027.option\u0027 (rust.ref\u0027 sm\u0027.os_str) =\n    !\\($\u0027\u0022!path.file_name()\u0022\u0027)\n\n// // ## path_buf_display\n\ninl path_buf_display (path : path_buf) : sm\u0027.std_string =\n    !\\\\(path, $\u0027\u0022$0.display().to_string()\u0022\u0027)\n\n// // ## path_exists\n\ninl path_buf_exists (path_buf : path_buf) : bool =\n    !\\($\u0027\u0022!path_buf.exists()\u0022\u0027)\n\n// // ## path_is_dir\n\ninl path_buf_is_dir (path_buf : path_buf) : bool =\n    !\\($\u0027\u0022!path_buf.is_dir()\u0022\u0027)\n\n// // ## path_is_file\n\ninl path_buf_is_file (path_buf : path_buf) : bool =\n    !\\($\u0027\u0022!path_buf.is_file()\u0022\u0027)\n\n// // ## path_parent\n\ninl path_buf_parent (path_buf : path_buf) : optionm\u0027.option\u0027 path_buf =\n    !\\\\(path_buf, $\u0027\u0022$0.parent().map(std::path::PathBuf::from)\u0022\u0027)\n\n// // ## (\u003C /\u003E)\n\ninl (\u003C/\u003E) (a : string) (b : string) : string =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            $\u0027System.IO.Path.Combine (!a, !b)\u0027\n        | Rust (Native) =\u003E fun () =\u003E\n            a |\u003E new_path_buf |\u003E path_join b |\u003E path_buf_display |\u003E sm\u0027.from_std_string\n        | target =\u003E fun () =\u003E null ()\n\n// // ## get_temp_path\n\ninl get_temp_path () : string =\n    $\u0027System.IO.Path.GetTempPath\u0027 ()\n\n// // ## create_temp_directory_name\n\ninl create_temp_directory_name () =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            inl root = $\u0027System.Reflection.Assembly.GetEntryAssembly().GetName().Name\u0027 : string\n\n            get_temp_path ()\n            \u003C/\u003E ($\u0027$\u0022\\!{!root}\u0022\u0027 : string)\n            \u003C/\u003E (date_time.new_guid_from_date_time $\u0027System.DateTime.Now\u0027 |\u003E sm\u0027.obj_to_string)\n        | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info\n\nnominal directory_info = $\u0027System.IO.DirectoryInfo\u0027\n\ninl directory_info (path : string) : directory_info =\n    path |\u003E $\u0027\u0060directory_info \u0027\n\n// // ## directory_info_exists\n\ninl directory_info_exists (info : directory_info) : bool =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            $\u0027!info.Exists\u0027\n        | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info_creation_time\n\ninl directory_info_creation_time (info : directory_info) : date_time.date_time =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            $\u0027!info.CreationTime\u0027\n        | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info_name\n\ninl directory_info_name (info : directory_info) : string =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            $\u0027!info.Name\u0027\n        | target =\u003E fun () =\u003E null ()\n\n// // ## directory_info_full_name\n\ninl directory_info_full_name (info : directory_info) : string =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            $\u0027!info.FullName\u0027\n        | target =\u003E fun () =\u003E null ()\n\n// // ## create_directory\n\ninl create_directory (path : string) : directory_info =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            path |\u003E $\u0027System.IO.Directory.CreateDirectory\u0027\n        | target =\u003E fun () =\u003E null ()\n\n// // ## directory_exists\n\ninl directory_exists (path : string) : bool =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            path |\u003E $\u0027System.IO.Directory.Exists\u0027\n        | Rust (Native) =\u003E fun () =\u003E\n            inl path = path |\u003E new_path_buf\n            (path |\u003E path_buf_exists) \u0026\u0026 (path |\u003E path_buf_is_dir)\n        | target =\u003E fun () =\u003E null ()\n\n// // ## directory_get_parent\n\ninl directory_get_parent (path : string) : optionm\u0027.option\u0027 string =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            inl parent : directory_info = path |\u003E $\u0027System.IO.Directory.GetParent\u0027\n            if parent =. null ()\n            then None\n            else parent |\u003E directory_info_full_name |\u003E Some\n        | Rust (Native) =\u003E fun () =\u003E\n            path\n            |\u003E new_path_buf\n            |\u003E path_buf_parent\n            |\u003E optionm\u0027.try\u0027\n            |\u003E path_buf_display\n            |\u003E sm\u0027.from_std_string\n            |\u003E Some\n        | target =\u003E fun () =\u003E null ()\n    |\u003E optionm\u0027.box\n\n// // ## file_exists\n\ninl file_exists (path : string) : bool =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            path |\u003E $\u0027System.IO.File.Exists\u0027\n        | Rust (Native) =\u003E fun () =\u003E\n            inl path_buf = path |\u003E new_path_buf\n            (path_buf |\u003E path_buf_exists) \u0026\u0026 (path_buf |\u003E path_buf_is_file)\n        | target =\u003E fun () =\u003E null ()\n\n// // ## create_temp_directory\n\ninl create_temp_directory () =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E\n            inl temp_folder = create_temp_directory_name ()\n            inl result = temp_folder |\u003E create_directory\n\n            inl exists\u0027 = result |\u003E directory_info_exists\n            if not exists\u0027 then\n                inl creation_time = result |\u003E directory_info_creation_time\n                inl result = ($\u0027{| Exists = !exists\u0027; CreationTime = !creation_time |}\u0027 : any) |\u003E sm\u0027.format_debug\n                inl get_locals () : string =\n                    $\u0027$\u0022temp_folder: {!temp_folder} / result: {!result} {!get_locals ()}\u0022\u0027\n                // trace Debug (fun () =\u003E \u0022createTempDirectory\u0022) get_locals\n                console.write_line ($\u0027$\u0022create_temp_directory / {!get_locals ()}\u0022\u0027 : string)\n\n            temp_folder\n        | target =\u003E fun () =\u003E null ()\n\n// // ## get_source_directory\n\ninl get_source_directory () =\n    $\u0027__SOURCE_DIRECTORY__\u0027 : string\n\n// // ## find_parent\n\ninl find_parent name is_file root_dir =\n    let rec loop dir =\n        if dir \u003C/\u003E name |\u003E (if is_file then file_exists else directory_exists)\n        then dir\n        else\n            match dir |\u003E (join directory_get_parent) |\u003E optionm\u0027.unbox with\n            | Some parent =\u003E parent |\u003E loop\n            | None =\u003E failwith $\u0027$\u0022\u0022\u0022No parent for {if !is_file then \u0022file\u0022 else \u0022dir\u0022} \\\u0027{!name}\\\u0027 at \\\u0027{!root_dir}\\\u0027\u0022\u0022\u0022\u0027\n    loop root_dir\n\n// // ## main\n\ninl main () =\n    types ()\n    $\u0022let create_temp_directory_name () = !create_temp_directory_name ()\u0022 : ()\n    $\u0022let create_temp_directory () = !create_temp_directory ()\u0022 : ()\n    $\u0022let get_source_directory () = !get_source_directory ()\u0022 : ()\n    $\u0022let find_parent x = !find_parent x\u0022 : ()\n    inl combine x = (\u003C/\u003E) x\n    $\u0022let (\u003C/\u003E) x = !combine x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result.Length:

00:00:04 #33 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result.Length:

00:00:04 #34 [Verbose] > Building c:\home\git\polyglot\lib\spiral\file_system.spi

00:00:04 #35 [Debug] buildFile / takeWhileInclusive / fsxContent: #if FABLE_COMPILER // file_system.types

[<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end

[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type base64_DecodeError = class end

[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type borsh_io_Error = class end

[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type js_sys_JsString = class end

[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type serde_json_Error = class end

[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type serde_json_Value = class end

[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type serde_wasm_bindgen_Error = class end

[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_O... / errors: [] / typeErrorCount: 0

00:00:04 #36 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite

00:00:04 #37 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:04 #38 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #39 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:05 #40 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # guid\n\n// // ## guid\n\nnominal guid = $\u0022System.Guid\u0022\n\n// // ## new_guid\n\ninl new_guid (x : string) : guid =\n    $\u0027\u0060guid !x \u0027\n\n// // ## new_raw_guid\n\ninl new_raw_guid () : guid =\n    $\u0022System.Guid.NewGuid ()\u0022\n\n// // ## main\n\ninl main () =\n    $\u0022let new_guid x = !new_guid x\u0022 : ()\n    $\u0022let new_raw_guid x = !new_raw_guid x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result.Length:

00:00:05 #41 [Verbose] > Building c:\home\git\polyglot\lib\spiral\guid.spi

00:00:05 #42 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result.Length:

00:00:05 #43 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec closure0 () (v0 : string) : System.Guid =

    let v1 : System.Guid = System.Guid v0 

    v1

and closure1 () () : System.Guid =

    let v0 : System.Guid = System.Guid.NewGuid ()

    v0

let v0 : (string -> System.Guid) = closure0()

let new_guid x = v0 x

let v1 : (unit -> System.Guid) = closure1()

let new_raw_guid x = v1 x

()

 / errors: [] / typeErrorCount: 0

00:00:05 #44 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite

00:00:05 #45 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:05 #46 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:05 #47 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:05 #48 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # sm\u0027\n\nopen rust_operators\n\n// // ## types\n\ninl types () =\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022str\\\u0022)\u003E] type Str = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022base64::DecodeError\\\u0022)\u003E] type base64_DecodeError = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022borsh::io::Error\\\u0022)\u003E] type borsh_io_Error = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022js_sys::JsString\\\u0022)\u003E] type js_sys_JsString = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_json::Error\\\u0022)\u003E] type serde_json_Error = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_json::Value\\\u0022)\u003E] type serde_json_Value = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022serde_wasm_bindgen::Error\\\u0022)\u003E] type serde_wasm_bindgen_Error = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::ffi::OsStr\\\u0022)\u003E] type std_ffi_OsStr = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::ffi::OsString\\\u0022)\u003E] type std_ffi_OsString = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::str::Utf8Error\\\u0022)\u003E] type std_str_Utf8Error = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022std::string::String\\\u0022)\u003E] type std_string_String = class end\u0022\n\nnominal base64_decode_error = $\u0022base64_DecodeError\u0022\nnominal borsh_io_error = $\u0022borsh_io_Error\u0022\nnominal utf8_error = $\u0022std_str_Utf8Error\u0022\nnominal json_value = $\u0022serde_json_Value\u0022\nnominal json_error = $\u0022serde_json_Error\u0022\nnominal serde_wasm_bindgen_error = $\u0022serde_wasm_bindgen_Error\u0022\nnominal js_string = $\u0022js_sys_JsString\u0022\nnominal str = $\u0022Str\u0022\nnominal os_str = $\u0022std_ffi_OsStr\u0022\nnominal os_string = $\u0022std_ffi_OsString\u0022\nnominal std_string = $\u0022std_string_String\u0022\n\n// // ## contains\n\ninl contains (value : string) (s : string) : bool =\n    $\u0022!s.Contains !value\u0022\n\n// // ## ends_with\n\ninl ends_with (value : string) (s : string) : bool =\n    $\u0022!s.EndsWith !value\u0022\n\n// // ## pad_left\n\ninl pad_left (total_width : i32) (padding_char : char) (s : string) : string =\n    $\u0022!s.PadLeft (!total_width, !padding_char)\u0022\n\n// // ## pad_right\n\ninl pad_right (pad : i32) (s : string) : string =\n    $\u0022!s.PadRight !pad\u0022\n\n// // ## replace\n\ninl replace (old_value : string) (new_value : string) (s : string) : string =\n    $\u0022!s.Replace (!old_value, !new_value)\u0022\n\n// // ## starts_with\n\ninl starts_with (value : string) (s : string) : bool =\n    $\u0022!s.StartsWith !value\u0022\n\n// // ## substring\n\ninl substring (start : i32) (len : i32) (str : string) : string =\n    $\u0022!str.Substring (!start, !len)\u0022\n\n// // ## to_lower\n\ninl to_lower (input : string) : string =\n    $\u0022!input.ToLower ()\u0022\n\n// // ## to_upper\n\ninl to_upper (input : string) : string =\n    $\u0022!input.ToUpper ()\u0022\n\n// // ## trim\n\ninl trim (input : string) : string =\n    $\u0022!input.Trim ()\u0022\n\n// // ## trim_end\n\ninl trim_end (trim_chars : array_base char) (input : string) : string =\n    $\u0022!input.TrimEnd !trim_chars\u0022\n\n// // ## trim_start\n\ninl trim_start (trim_chars : array_base char) (input : string) : string =\n    $\u0022!input.TrimStart !trim_chars\u0022\n\n// // ## slice\n\ninl slice from to s : string =\n    sm.slice s { from to }\n\n// // ## raw_string_literal\n\ninl raw_string_literal (s : string) : rust.ref\u0027 str =\n    !\\($\u0022\\\u0022r#\\\\\\\u0022\\\u0022 \u002B !s \u002B \\\u0022\\\\\\\u0022#\\\u0022\u0022)\n\n// // ## raw_string_literal_static\n\ninl raw_string_literal_static (s : string) : rust.static_ref\u0027 str =\n    !\\($\u0022\\\u0022r#\\\\\\\u0022\\\u0022 \u002B !s \u002B \\\u0022\\\\\\\u0022#\\\u0022\u0022)\n\n// // ## include_str\n\ninl include_str (path : string) : rust.ref\u0027 str =\n    !\\($\u0027\u0022include_str\\!(\\\\\\\u0022\u0022 \u002B !path \u002B \u0022\\\\\\\u0022)\u0022\u0027)\n\n// // ## as_str\n\ninl as_str (s : string) : rust.ref\u0027 str =\n    !\\\\(s, $\u0027\u0022fable_library_rust::String_::LrcStr::as_str(\u0026$0)\u0022\u0027)\n\n// // ## as_os_ref\n\ninl as_os_ref (s : os_string) : rust.ref\u0027 os_str =\n    !\\\\(s, $\u0027\u0022$0.as_ref()\u0022\u0027)\n\n// // ## to_os_string\n\ninl to_os_string (s : rust.ref\u0027 os_str) : os_string =\n    !\\\\(s, $\u0027\u0022$0.to_os_string()\u0022\u0027)\n\n// // ## os_to_str\n\ninl os_to_str (s : os_string) : optionm\u0027.option\u0027 (rust.ref\u0027 str) =\n    !\\\\(s, $\u0027\u0022$0.to_str()\u0022\u0027)\n\n// // ## from_std_string\n\ninl from_std_string (str : std_string) : string =\n    !\\\\(str, $\u0027\u0022fable_library_rust::String_::fromString($0)\u0022\u0027)\n\n// // ## ref_to_std_string\n\ninl ref_to_std_string (str : rust.ref\u0027 str) : std_string =\n    !\\\\(str, $\u0027\u0022String::from($0)\u0022\u0027)\n\n// // ## to_std_string\n\ninl to_std_string (s : string) : std_string =\n    inl s = join s\n    s |\u003E as_str |\u003E ref_to_std_string\n\n// // ## as_str_std\n\ninl as_str_std (s : std_string) : rust.ref\u0027 str =\n    inl s = join s\n    !\\($\u0027\u0022!s.as_str()\u0022\u0027)\n\n// // ## into_boxed_str\n\ninl into_boxed_str (s : std_string) : rust.box str =\n    !\\($\u0027\u0022!s.into_boxed_str()\u0022\u0027)\n\n// // ## format\u0027\n\ninl format\u0027 x : std_string =\n    !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_debug\n\ninl format_debug x : string =\n    $\u0027$\u0022%A{!x}\u0022\u0027\n\n// // ## format_debug\u0027\n\ninl format_debug\u0027 x : std_string =\n    !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{:?}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_pretty\u0027\n\ninl format_pretty\u0027 x : std_string =\n    !\\\\(x, $\u0027@@$\u0022format\\!(\u0022\u0022{{:#?}}\u0022\u0022, $0)\u0022\u0027)\n\n// // ## format_exception\n\ninl format_exception (ex : exn) : string =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E $\u0027$\u0022{!ex.GetType ()}: {!ex.Message}\u0022\u0027\n        | _ =\u003E fun () =\u003E ex |\u003E format_debug\n\n// // ## obj_to_string\n\ninl obj_to_string x : string =\n    x |\u003E $\u0027_.ToString()\u0027\n\n// // ## to_string any\n\ninstance to_string any =\n    obj_to_string\n\n// // ## to_string result t u\n\ninstance to_string result t u = fun x =\u003E\n    real\n        open rust\n        typecase (t * u) with\n        | string * string =\u003E\n            match x with\n            | Ok x =\u003E x\n            | Error x =\u003E $\u0027\u0022Error: \u0022 \u002B !x \u002B \u0022\u0022\u0027 : string\n        | std_string * std_string =\u003E\n            match x with\n            | Ok x =\u003E from_std_string x\n            | Error x =\u003E $\u0027\u0022Error: \u0022 \u002B string !x \u002B \u0022\u0022\u0027 : string\n        | _ =\u003E obj_to_string \u0060u x\n\n// // ## serialize\n\ninl serialize forall t. (x : t) : resultm.result\u0027 std_string json_error =\n    !\\($\u0027\u0022serde_json::to_string(\u0026!x)\u0022\u0027)\n\n// // ## deserialize\n\ninl deserialize forall t. (json : string) : resultm.result\u0027 t std_string =\n    inl json = join json\n    inl json = json |\u003E as_str\n    !\\($\u0027\u0022serde_json::from_str(\u0026!json)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : json_error) =\u003E x |\u003E format\u0027\n\n// // ## borsh_deserialize\n\ninl borsh_deserialize forall t. (data : array_base u8) : resultm.result\u0027 t std_string =\n    inl data = data |\u003E am\u0027.as_slice\n    !\\($\u0027\u0022let mut !data = !data\u0022\u0027)\n    inl result = !\\($\u0027\u0022borsh::BorshDeserialize::deserialize(\u0026mut !data)\u0022\u0027)\n    result\n    |\u003E resultm.map_error\u0027 fun (x : borsh_io_error) =\u003E x |\u003E format\u0027\n\n// // ## deserialize_vec\n\ninl deserialize_vec (value : json_value) : resultm.result\u0027 (am\u0027.vec u8) std_string =\n    inl value = join value\n    !\\($\u0027\u0022serde_json::from_value(!value)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : json_error) =\u003E x |\u003E format\u0027\n\n// // ## encode_uri_component\n\ninl encode_uri_component (s : std_string) : js_string =\n    !\\($\u0027\u0022js_sys::encode_uri_component(\u0026!s)\u0022\u0027)\n\n// // ## strip_prefix\n\ninl strip_prefix (prefix : char) (s : std_string) : optionm\u0027.option\u0027 (rust.ref\u0027 str) =\n    inl s = join s\n    !\\($\u0027\u0022!s.strip_prefix(!prefix)\u0022\u0027)\n\n// // ## base64_decode\n\ninl base64_decode (s : std_string) : result std_string std_string =\n    fun () =\u003E\n        inl s = join s\n        inl bytes : resultm.result\u0027 (am\u0027.vec u8) base64_decode_error =\n            !\\($\u0027\u0022base64::Engine::decode(\u0026base64::engine::general_purpose::STANDARD, !s)\u0022\u0027)\n        inl bytes =\n            bytes\n            |\u003E resultm.map_error\u0027 format\u0027\n            |\u003E resultm.try\u0027\n        inl result : resultm.result\u0027 std_string utf8_error =\n            !\\($\u0027\u0022std::str::from_utf8(\u0026!bytes).map(String::from)\u0022\u0027)\n        result\n        |\u003E resultm.map_error\u0027 format\u0027\n    |\u003E fun x =\u003E\n        join x ()\n        |\u003E resultm.unbox\n\n// // ## concat_array_trailing\n\ninl concat_array_trailing (separator : string) (input : a i32 string) =\n    (\u0022\u0022, input)\n    ||\u003E am.fold fun acc (x : string) =\u003E\n        $\u0027!acc \u002B !x \u002B !separator \u002B \u0022\u0022\u0027\n\n// // ## concat_list_trailing\n\ninl concat_list_trailing separator input =\n    (\u0022\u0022, input)\n    ||\u003E listm.fold fun acc (x : string) =\u003E\n        $\u0027!acc \u002B !x \u002B !separator \u002B \u0022\u0022\u0027\n\n// // ## concat_list_heap_trailing\n\ninl concat_list_heap_trailing separator input =\n    inl separator = join separator\n    inl separator = separator |\u003E as_str\n    (\u0022\u0022, input)\n    ||\u003E listm.fold fun acc (x : string) =\u003E\n        inl acc = acc |\u003E to_std_string\n        inl x = x |\u003E as_str\n        $\u0027$\u0022{!acc}{!x}{!separator}\u0022\u0027\n\n// // ## concat\n\ninl concat (a : string) (b : seq.seq\u0027 _) : string =\n    $\u0022!b |\u003E String.concat !a\u0022\n\n// // ## ellipsis\n\ninl ellipsis (max : i32) (s : string) =\n    if sm.length s \u003C= max\n    then s\n    else s |\u003E slice 0 (max - 1) |\u003E fun x =\u003E $\u0027!x \u002B \u0022...\u0022\u0027\n\n// // ## ellipsis_end\n\ninl ellipsis_end (max : i64) (s : string) =\n    inl len = sm.length s\n    if len \u003C= max\n    then s\n    else\n        inl half = f64 max / 2\n        inl start_half = half |\u003E math.ceil |\u003E i64\n        inl end_half = half |\u003E math.floor |\u003E i64\n        inl start = s |\u003E slice 0 (start_half - 1)\n        inl end = s |\u003E slice (len - end_half) (len - 1)\n        (a ;[start; \u0022...\u0022; end] : _ i32 _)\n        |\u003E seq.of_array\n        |\u003E concat \u0022\u0022\n\n// // ## format_ellipsis\n\ninl format_ellipsis s =\n    s\n    |\u003E format_debug\n    |\u003E ellipsis_end 400\n\n// // ## split\n\ninl split (separator : string) (str : string) : array_base string =\n    $\u0022!str.Split !separator\u0022\n\n// // ## split_string\n\ninl split_string (separator : array_base string) (str : string) : array_base string =\n    run_target function\n        | Fsharp (Native) =\u003E fun () =\u003E $\u0022!str.Split (!separator, System.StringSplitOptions.None)\u0022\n        | _ =\u003E fun () =\u003E str |\u003E split ((a separator : _ i32 _) |\u003E seq.of_array |\u003E concat (join \u0022\u0022))\n\n// // ## join\u0027\n\ninl join\u0027 (concat : string) (s : a i32 string) : string =\n    $\u0022System.String.Join (!concat, !s)\u0022\n\n// // ## to_char_array\n\ninl to_char_array (str : string) : a i32 char =\n    am.init (str |\u003E sm.length) (fun i =\u003E sm.index str i)\n\n// // ## to_char_list\n\ninl to_char_list (str : string) : list char =\n    listm.init (str |\u003E sm.length) (fun (i : i64) =\u003E sm.index str i)\n\n// // ## to_string std_string\n\nopen rust\ninstance to_string std_string = from_std_string\n\n// // ## main\n\ninl main () =\n    $\u0022let contains x = !contains x\u0022 : ()\n    $\u0022let ends_with x = !ends_with x\u0022 : ()\n    $\u0022let pad_left x = !pad_left x\u0022 : ()\n    $\u0022let pad_right x = !pad_right x\u0022 : ()\n    $\u0022let replace x = !replace x\u0022 : ()\n    inl slice (a : i32) (b : i32) c = slice a b c\n    $\u0022let slice x = !slice x\u0022 : ()\n    $\u0022let split x = !split x\u0022 : ()\n    $\u0022let split_string x = !split_string x\u0022 : ()\n    $\u0022let starts_with x = !starts_with x\u0022 : ()\n    $\u0022let substring x = !substring x\u0022 : ()\n    $\u0022let to_lower x = !to_lower x\u0022 : ()\n    $\u0022let to_upper x = !to_upper x\u0022 : ()\n    $\u0022let trim x = !trim x\u0022 : ()\n    $\u0022let trim_end x = !trim_end x\u0022 : ()\n    $\u0022let trim_start x = !trim_start x\u0022 : ()\n    $\u0022let ellipsis x = !ellipsis x\u0022 : ()\n    $\u0022let ellipsis_end x = !ellipsis_end x\u0022 : ()\n    $\u0022let format_exception x = !format_exception x\u0022 : ()\n    $\u0022let concat_array_trailing x = !concat_array_trailing x\u0022 : ()\n    inl concat a (b : seq.seq\u0027 string) = concat a b\n    $\u0022let concat x = !concat x\u0022 : ()\n    $\u0022let join\u0027 x = !join\u0027 x\u0022 : ()\n    $\u0022let to_char_array x = !to_char_array x\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result.Length:

00:00:05 #49 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result.Length:

00:00:05 #50 [Verbose] > Building c:\home\git\polyglot\lib\spiral\sm'.spi

00:00:05 #51 [Debug] buildFile / takeWhileInclusive / fsxContent: type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri... / errors: [] / typeErrorCount: 0

00:00:05 #52 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite

00:00:07 #53 [Debug] runWithTimeoutChildAsync / timeout: 2000

In [ ]:
{ . "$ScriptDir/../lib/math/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\math

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:01 #6 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:01 #5 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:02 #9 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:02 #10 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:02 #11 [Verbose] > Server bound to: http://localhost:13805

00:00:02 #12 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 math.dib""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:06 #13 [Verbose] >

00:00:06 #14 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:07 #15 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:07 #16 [Verbose] > │ # math                                                                       │

00:00:07 #17 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:07 #18 [Verbose] >

00:00:07 #19 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:07 #20 [Verbose] > open testing

00:00:07 #21 [Verbose] > open rust_operators

00:00:11 #22 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2157-5765-5aaba2ae88ed\main.spi

00:00:16 #23 [Verbose] >

00:00:16 #24 [Verbose] > ╭─[ 9.17s - stdout ]───────────────────────────────────────────────────────────╮

00:00:16 #25 [Verbose] > │ ()                                                                           │

00:00:16 #26 [Verbose] > │                                                                              │

00:00:16 #27 [Verbose] > │                                                                              │

00:00:16 #28 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:16 #29 [Verbose] >

00:00:16 #30 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:16 #31 [Verbose] > inl types () =

00:00:16 #32 [Verbose] >     global "[[<Fable.Core.Erase;

00:00:16 #33 [Verbose] > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]] type num_complex_Complex<'T> =

00:00:16 #34 [Verbose] > class end"

00:00:16 #35 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::types::PyModule\")>]]

00:00:16 #36 [Verbose] > type pyo3_types_PyModule = class end"

00:00:16 #37 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Bound<$0>\")>]] type

00:00:16 #38 [Verbose] > pyo3_Bound<'T> = class end"

00:00:16 #39 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::Python\")>]] type

00:00:16 #40 [Verbose] > pyo3_Python = class end"

00:00:16 #41 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyAny\")>]] type

00:00:16 #42 [Verbose] > pyo3_PyAny = class end"

00:00:16 #43 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"pyo3::PyErr\")>]] type

00:00:16 #44 [Verbose] > pyo3_PyErr = class end"

00:00:16 #45 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2743-4319-432a4957e188\main.spi

00:00:16 #46 [Verbose] >

00:00:16 #47 [Verbose] > ╭─[ 330.32ms - stdout ]────────────────────────────────────────────────────────╮

00:00:16 #48 [Verbose] > │ ()                                                                           │

00:00:16 #49 [Verbose] > │                                                                              │

00:00:16 #50 [Verbose] > │                                                                              │

00:00:16 #51 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:16 #52 [Verbose] >

00:00:16 #53 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:16 #54 [Verbose] > inl types () =

00:00:16 #55 [Verbose] >     rust.types ()

00:00:16 #56 [Verbose] >     sm'.types ()

00:00:16 #57 [Verbose] >     types ()

00:00:16 #58 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2775-7566-707d92298e45\main.spi

00:00:16 #59 [Verbose] >

00:00:16 #60 [Verbose] > ╭─[ 306.56ms - stdout ]────────────────────────────────────────────────────────╮

00:00:16 #61 [Verbose] > │ ()                                                                           │

00:00:16 #62 [Verbose] > │                                                                              │

00:00:16 #63 [Verbose] > │                                                                              │

00:00:16 #64 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:16 #65 [Verbose] >

00:00:16 #66 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:16 #67 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:16 #68 [Verbose] > │ ## complex                                                                   │

00:00:16 #69 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:16 #70 [Verbose] >

00:00:16 #71 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:16 #72 [Verbose] > nominal complex t = $"num_complex_Complex<`t>"

00:00:16 #73 [Verbose] > nominal bound t = $"pyo3_Bound<`t>"

00:00:16 #74 [Verbose] > nominal python = $"pyo3_Python"

00:00:16 #75 [Verbose] > nominal pymodule = $"pyo3_types_PyModule"

00:00:16 #76 [Verbose] > nominal pyany = $"pyo3_PyAny"

00:00:16 #77 [Verbose] > nominal pyerr = $"pyo3_PyErr"

00:00:16 #78 [Verbose] >

00:00:16 #79 [Verbose] > inl complex forall t. ((re : t), (im : t)) : complex t =

00:00:16 #80 [Verbose] >     !\\((re, im), $'"num_complex::Complex::new($0, $1)"')

00:00:16 #81 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2807-0707-096a6b2e203f\main.spi

00:00:17 #82 [Verbose] >

00:00:17 #83 [Verbose] > ╭─[ 335.89ms - stdout ]────────────────────────────────────────────────────────╮

00:00:17 #84 [Verbose] > │ ()                                                                           │

00:00:17 #85 [Verbose] > │                                                                              │

00:00:17 #86 [Verbose] > │                                                                              │

00:00:17 #87 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:17 #88 [Verbose] >

00:00:17 #89 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:17 #90 [Verbose] > // // test

00:00:17 #91 [Verbose] > // // rust=

00:00:17 #92 [Verbose] >

00:00:17 #93 [Verbose] > types ()

00:00:17 #94 [Verbose] >

00:00:17 #95 [Verbose] > complex (0f64, 0f64)

00:00:17 #96 [Verbose] > |> sm'.format'

00:00:17 #97 [Verbose] > |> sm'.from_std_string

00:00:17 #98 [Verbose] > |> _assert_eq "0+0i"

00:00:17 #99 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-2841-4126-4cb7df0039dc\main.spi

00:00:25 #100 [Verbose] >

00:00:25 #101 [Verbose] > ╭─[ 8.18s - return value ]─────────────────────────────────────────────────────╮

00:00:25 #102 [Verbose] > │ .rs output:                                                                  │

00:00:25 #103 [Verbose] > │ "0+0i"                                                                       │

00:00:25 #104 [Verbose] > │                                                                              │

00:00:25 #105 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:25 #106 [Verbose] >

00:00:25 #107 [Verbose] > ╭─[ 8.20s - stdout ]───────────────────────────────────────────────────────────╮

00:00:25 #108 [Verbose] > │                                                                              │

00:00:25 #109 [Verbose] > │ .fsx:                                                                        │

00:00:25 #110 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │

00:00:25 #111 [Verbose] > │ end                                                                          │

00:00:25 #112 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │

00:00:25 #113 [Verbose] > │ class end                                                                    │

00:00:25 #114 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │

00:00:25 #115 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │

00:00:25 #116 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │

00:00:25 #117 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │

00:00:25 #118 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │

00:00:25 #119 [Verbose] > │ class end                                                                    │

00:00:25 #120 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │

00:00:25 #121 [Verbose] > │ class end                                                                    │

00:00:25 #122 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │

00:00:25 #123 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │

00:00:25 #124 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │

00:00:25 #125 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │

00:00:25 #126 [Verbose] > │ class end                                                                    │

00:00:25 #127 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │

00:00:25 #128 [Verbose] > │ class end                                                                    │

00:00:25 #129 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │

00:00:25 #130 [Verbose] > │ class end                                                                    │

00:00:25 #131 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │

00:00:25 #132 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │

00:00:25 #133 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │

00:00:25 #134 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │

00:00:25 #135 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │

00:00:25 #136 [Verbose] > │ = class end                                                                  │

00:00:25 #137 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │

00:00:25 #138 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │

00:00:25 #139 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │

00:00:25 #140 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │

00:00:25 #141 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │

00:00:25 #142 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │

00:00:25 #143 [Verbose] > │ base64_DecodeError = class end                                               │

00:00:25 #144 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │

00:00:25 #145 [Verbose] > │ borsh_io_Error = class end                                                   │

00:00:25 #146 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │

00:00:25 #147 [Verbose] > │ js_sys_JsString = class end                                                  │

00:00:25 #148 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │

00:00:25 #149 [Verbose] > │ serde_json_Error = class end                                                 │

00:00:25 #150 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │

00:00:25 #151 [Verbose] > │ serde_json_Value = class end                                                 │

00:00:25 #152 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │

00:00:25 #153 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │

00:00:25 #154 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr  │

00:00:25 #155 [Verbose] > │ = class end                                                                  │

00:00:25 #156 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type             │

00:00:25 #157 [Verbose] > │ std_ffi_OsString = class end                                                 │

00:00:25 #158 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │

00:00:25 #159 [Verbose] > │ std_str_Utf8Error = class end                                                │

00:00:25 #160 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │

00:00:25 #161 [Verbose] > │ std_string_String = class end                                                │

00:00:25 #162 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type       │

00:00:25 #163 [Verbose] > │ num_complex_Complex<'T> = class end                                          │

00:00:25 #164 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type          │

00:00:25 #165 [Verbose] > │ pyo3_types_PyModule = class end                                              │

00:00:25 #166 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │

00:00:25 #167 [Verbose] > │ = class end                                                                  │

00:00:25 #168 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python =     │

00:00:25 #169 [Verbose] > │ class end                                                                    │

00:00:25 #170 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │

00:00:25 #171 [Verbose] > │ end                                                                          │

00:00:25 #172 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │

00:00:25 #173 [Verbose] > │ end                                                                          │

00:00:25 #174 [Verbose] > │ let rec method1 (v0 : bool) : bool =                                         │

00:00:25 #175 [Verbose] > │     v0                                                                       │

00:00:25 #176 [Verbose] > │ and method0 () : unit =                                                      │

00:00:25 #177 [Verbose] > │     let v0 : string = "num_complex::Complex::new($0, $1)"                    │

00:00:25 #178 [Verbose] > │     let v1 : num_complex_Complex<float> =                                    │

00:00:25 #179 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v0                     │

00:00:25 #180 [Verbose] > │     let v2 : string = @$"format!(""{{}}"", $0)"                              │

00:00:25 #181 [Verbose] > │     let v3 : std_string_String = Fable.Core.RustInterop.emitRustExpr v1 v2   │

00:00:25 #182 [Verbose] > │     let v4 : string = "fable_library_rust::String_::fromString($0)"          │

00:00:25 #183 [Verbose] > │     let v5 : string = Fable.Core.RustInterop.emitRustExpr v3 v4              │

00:00:25 #184 [Verbose] > │     let v6 : string = $"%A{v5}"                                              │

00:00:25 #185 [Verbose] > │     System.Console.WriteLine v6                                              │

00:00:25 #186 [Verbose] > │     let v8 : bool = v5 = "0+0i"                                              │

00:00:25 #187 [Verbose] > │     let v10 : bool =                                                         │

00:00:25 #188 [Verbose] > │         if v8 then                                                           │

00:00:25 #189 [Verbose] > │             true                                                             │

00:00:25 #190 [Verbose] > │         else                                                                 │

00:00:25 #191 [Verbose] > │             method1(v8)                                                      │

00:00:25 #192 [Verbose] > │     let v11 : string = "0+0i"                                                │

00:00:25 #193 [Verbose] > │     let v12 : string = $"__expect / actual: %A{v5} / expected: %A{v11}"      │

00:00:25 #194 [Verbose] > │     let v13 : bool = v10 = false                                             │

00:00:25 #195 [Verbose] > │     if v13 then                                                              │

00:00:25 #196 [Verbose] > │         failwith<unit> v12                                                   │

00:00:25 #197 [Verbose] > │ method0()                                                                    │

00:00:25 #198 [Verbose] > │                                                                              │

00:00:25 #199 [Verbose] > │                                                                              │

00:00:25 #200 [Verbose] > │ .rs:                                                                         │

00:00:25 #201 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:00:25 #202 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:00:25 #203 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:00:25 #204 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:00:25 #205 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:00:25 #206 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:00:25 #207 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:00:25 #208 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:00:25 #209 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:00:25 #210 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:00:25 #211 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:00:25 #212 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:00:25 #213 [Verbose] > │         use super::*;                                                        │

00:00:25 #214 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:00:25 #215 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:00:25 #216 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │

00:00:25 #217 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:00:25 #218 [Verbose] > │         pub fn method1(v0: bool) -> bool { v0 }                              │

00:00:25 #219 [Verbose] > │         pub fn method0() {                                                   │

00:00:25 #220 [Verbose] > │             let v1: num_complex::Complex<f64> =                              │

00:00:25 #221 [Verbose] > │                 num_complex::Complex::new(0.0_f64, 0.0_f64);                 │

00:00:25 #222 [Verbose] > │             let v3: std::string::String = format!("{}", v1);                 │

00:00:25 #223 [Verbose] > │             let v5: string = fable_library_rust::String_::fromString(v3);    │

00:00:25 #224 [Verbose] > │             let v6: string = sprintf!("{:?}", v5.clone());                   │

00:00:25 #225 [Verbose] > │             printfn!("{0}", v6);                                             │

00:00:25 #226 [Verbose] > │             {                                                                │

00:00:25 #227 [Verbose] > │                 let v8: bool = v5.clone() == string("0+0i");                 │

00:00:25 #228 [Verbose] > │                 if (if v8 { true } else { Spiral_eval::method1(v8) }) ==     │

00:00:25 #229 [Verbose] > │ false                                                                        │

00:00:25 #230 [Verbose] > │                    {                                                         │

00:00:25 #231 [Verbose] > │                     panic!("{}",                                             │

00:00:25 #232 [Verbose] > │                            sprintf!("__expect / actual: {:?} / expected:     │

00:00:25 #233 [Verbose] > │ {:?}", v5, string("0+0i")));                                                 │

00:00:25 #234 [Verbose] > │                 }                                                            │

00:00:25 #235 [Verbose] > │             }                                                                │

00:00:25 #236 [Verbose] > │         }                                                                    │

00:00:25 #237 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:00:25 #238 [Verbose] > │     }                                                                        │

00:00:25 #239 [Verbose] > │ }                                                                            │

00:00:25 #240 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:00:25 #241 [Verbose] > │                                                                              │

00:00:25 #242 [Verbose] > │                                                                              │

00:00:25 #243 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:25 #244 [Verbose] >

00:00:25 #245 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:25 #246 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:25 #247 [Verbose] > │ ## complex_sin                                                               │

00:00:25 #248 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:25 #249 [Verbose] >

00:00:25 #250 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:25 #251 [Verbose] > inl re forall t. (c : complex t) : t =

00:00:25 #252 [Verbose] >     inl c = join c

00:00:25 #253 [Verbose] >     !\($'"!c.re"')

00:00:25 #254 [Verbose] >

00:00:25 #255 [Verbose] > inl im forall t. (c : complex t) : t =

00:00:25 #256 [Verbose] >     inl c = join c

00:00:25 #257 [Verbose] >     !\($'"!c.im"')

00:00:25 #258 [Verbose] >

00:00:25 #259 [Verbose] > inl complex_unbox forall t. (c : complex t) =

00:00:25 #260 [Verbose] >     re c, im c

00:00:25 #261 [Verbose] >

00:00:25 #262 [Verbose] > inl (~.^) c = complex c

00:00:25 #263 [Verbose] >

00:00:25 #264 [Verbose] > inl complex_eq forall t. (a : complex t) (b : complex t) : bool =

00:00:25 #265 [Verbose] >     !\($'"!a == !b"')

00:00:25 #266 [Verbose] >

00:00:25 #267 [Verbose] > inl (.=) a b = complex_eq a b

00:00:25 #268 [Verbose] >

00:00:25 #269 [Verbose] > instance equable complex t = complex_eq

00:00:25 #270 [Verbose] >

00:00:25 #271 [Verbose] > inl complex_add forall t. (a : complex t) (b : complex t) : complex t =

00:00:25 #272 [Verbose] >     !\($'"!a + !b"')

00:00:25 #273 [Verbose] >

00:00:25 #274 [Verbose] > inl (.+) a b = complex_add a b

00:00:25 #275 [Verbose] >

00:00:25 #276 [Verbose] > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t =

00:00:25 #277 [Verbose] >     !\\((a, b), $'"$0 - $1"')

00:00:25 #278 [Verbose] >

00:00:25 #279 [Verbose] > inl (.-) a b = complex_sub a b

00:00:25 #280 [Verbose] >

00:00:25 #281 [Verbose] > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t =

00:00:25 #282 [Verbose] >     !\\((a, b), $'"$0 * $1"')

00:00:25 #283 [Verbose] >

00:00:25 #284 [Verbose] > inl (.*) a b = complex_mult a b

00:00:25 #285 [Verbose] >

00:00:25 #286 [Verbose] > inl complex_div forall t. (a : complex t) (b : complex t) : complex t =

00:00:25 #287 [Verbose] >     !\($'"!a / !b"')

00:00:25 #288 [Verbose] >

00:00:25 #289 [Verbose] > inl (./) a b = complex_div a b

00:00:25 #290 [Verbose] >

00:00:25 #291 [Verbose] > inl powc forall t. (s : complex t) (c : complex t) : complex t =

00:00:25 #292 [Verbose] >     inl c = join c

00:00:25 #293 [Verbose] >     inl s = join s

00:00:25 #294 [Verbose] >     !\($'"num_complex::Complex::powc(!c, !s)"')

00:00:25 #295 [Verbose] >

00:00:25 #296 [Verbose] > inl (.**) a b = powc b a

00:00:25 #297 [Verbose] >

00:00:25 #298 [Verbose] > inl complex_sin forall t. (c : complex t) : complex t =

00:00:25 #299 [Verbose] >     !\($'"!c.sin()"')

00:00:25 #300 [Verbose] >

00:00:25 #301 [Verbose] > inl conj forall t. (c : complex t) : complex t =

00:00:25 #302 [Verbose] >     !\($'"!c.conj()"')

00:00:25 #303 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3672-7259-7b61cc2fae00\main.spi

00:00:25 #304 [Verbose] >

00:00:25 #305 [Verbose] > ╭─[ 474.27ms - stdout ]────────────────────────────────────────────────────────╮

00:00:25 #306 [Verbose] > │ ()                                                                           │

00:00:25 #307 [Verbose] > │                                                                              │

00:00:25 #308 [Verbose] > │                                                                              │

00:00:25 #309 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:25 #310 [Verbose] >

00:00:25 #311 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:25 #312 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:25 #313 [Verbose] > │ ## zeta                                                                      │

00:00:25 #314 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:25 #315 [Verbose] >

00:00:25 #316 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:25 #317 [Verbose] > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex

00:00:25 #318 [Verbose] > f64 =

00:00:25 #319 [Verbose] >     inl rec zeta count gamma s =

00:00:25 #320 [Verbose] >         if log then

00:00:25 #321 [Verbose] >             !\\(s, $'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", !count,

00:00:25 #322 [Verbose] > $0)"')

00:00:25 #323 [Verbose] >         if re s > 1 then

00:00:25 #324 [Verbose] >             (.^(0, 0), (am.init 10000i32 id : a i32 _))

00:00:25 #325 [Verbose] >             ||> am.fold fun acc n =>

00:00:25 #326 [Verbose] >                 acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))

00:00:25 #327 [Verbose] >         else

00:00:25 #328 [Verbose] >             inl gamma_term = gamma (.^(1, 0) .- s)

00:00:25 #329 [Verbose] >             inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin

00:00:25 #330 [Verbose] >             inl one_minus_s = .^(1 - re s, -(im s))

00:00:25 #331 [Verbose] >             inl mirror_term =

00:00:25 #332 [Verbose] >                 if re one_minus_s <= 1

00:00:25 #333 [Verbose] >                 then .^(0, 0)

00:00:25 #334 [Verbose] >                 else

00:00:25 #335 [Verbose] >                     if count <= 3

00:00:25 #336 [Verbose] >                     then zeta (count + 1) gamma one_minus_s

00:00:25 #337 [Verbose] >                     else one_minus_s

00:00:25 #338 [Verbose] >             inl reflection_formula =

00:00:25 #339 [Verbose] >                 .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .*

00:00:25 #340 [Verbose] > mirror_term

00:00:25 #341 [Verbose] >             reflection_formula

00:00:25 #342 [Verbose] >     join zeta 0i32 gamma s

00:00:26 #343 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3720-2096-27c982a2de1a\main.spi

00:00:26 #344 [Verbose] >

00:00:26 #345 [Verbose] > ╭─[ 350.03ms - stdout ]────────────────────────────────────────────────────────╮

00:00:26 #346 [Verbose] > │ ()                                                                           │

00:00:26 #347 [Verbose] > │                                                                              │

00:00:26 #348 [Verbose] > │                                                                              │

00:00:26 #349 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #350 [Verbose] >

00:00:26 #351 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:26 #352 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:26 #353 [Verbose] > │ ## eval                                                                      │

00:00:26 #354 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #355 [Verbose] >

00:00:26 #356 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:26 #357 [Verbose] > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =

00:00:26 #358 [Verbose] >     inl py = join py

00:00:26 #359 [Verbose] >     inl code = code |> sm'.as_str

00:00:26 #360 [Verbose] >     !\($'"pyo3::types::PyModule::from_code_bound(!py, !code, \\"\\", \\"\\")"')

00:00:26 #361 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'

00:00:26 #362 [Verbose] >

00:00:26 #363 [Verbose] > inl use_pyanymethods () =

00:00:26 #364 [Verbose] >     global "Fable.Core.RustInterop.emitRustExpr () \");\nuse

00:00:26 #365 [Verbose] > pyo3::prelude::PyAnyMethods;\n//\""

00:00:26 #366 [Verbose] >

00:00:26 #367 [Verbose] > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =

00:00:26 #368 [Verbose] >     inl attr = join attr

00:00:26 #369 [Verbose] >     inl attr = attr |> sm'.as_str

00:00:26 #370 [Verbose] >     inl module = join module

00:00:26 #371 [Verbose] >     use_pyanymethods ()

00:00:26 #372 [Verbose] >     !\($'"!module.getattr(!attr)"')

00:00:26 #373 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'

00:00:26 #374 [Verbose] >

00:00:26 #375 [Verbose] > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =

00:00:26 #376 [Verbose] >     inl args = join args

00:00:26 #377 [Verbose] >     inl module = join module

00:00:26 #378 [Verbose] >     !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1),

00:00:26 #379 [Verbose] > None)"')

00:00:26 #380 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'

00:00:26 #381 [Verbose] >

00:00:26 #382 [Verbose] > inl extract forall t. (result : bound pyany) : _ t _ =

00:00:26 #383 [Verbose] >     inl result = join result

00:00:26 #384 [Verbose] >     use_pyanymethods ()

00:00:26 #385 [Verbose] >     !\($'"!result.extract()"')

00:00:26 #386 [Verbose] >     |> resultm.map_error' fun (x : pyerr) => x |> sm'.format'

00:00:26 #387 [Verbose] >

00:00:26 #388 [Verbose] > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string =

00:00:26 #389 [Verbose] >     inl code =

00:00:26 #390 [Verbose] >         code

00:00:26 #391 [Verbose] >         |> module_from_code py

00:00:26 #392 [Verbose] >         |> resultm.unwrap'

00:00:26 #393 [Verbose] >     inl fn =

00:00:26 #394 [Verbose] >         code

00:00:26 #395 [Verbose] >         |> getattr "fn"

00:00:26 #396 [Verbose] >         |> resultm.unwrap'

00:00:26 #397 [Verbose] >

00:00:26 #398 [Verbose] >     fn

00:00:26 #399 [Verbose] >     |> call args

00:00:26 #400 [Verbose] >     |> resultm.try'

00:00:26 #401 [Verbose] >     |> extract

00:00:26 #402 [Verbose] >     |> resultm.try'

00:00:26 #403 [Verbose] >     |> complex

00:00:26 #404 [Verbose] >     |> Ok

00:00:26 #405 [Verbose] >     |> resultm.box

00:00:26 #406 [Verbose] >

00:00:26 #407 [Verbose] > inl call1_ log py s code =

00:00:26 #408 [Verbose] >     inl code = join (a code : _ i32 _) |> sm'.concat_array_trailing "\n"

00:00:26 #409 [Verbose] >

00:00:26 #410 [Verbose] >     inl s = new_pair (re s) (im s)

00:00:26 #411 [Verbose] >     inl args = new_pair log s

00:00:26 #412 [Verbose] >

00:00:26 #413 [Verbose] >     eval py code args

00:00:26 #414 [Verbose] >

00:00:26 #415 [Verbose] > inl call1_ log name py s line =

00:00:26 #416 [Verbose] >     inl s = join s

00:00:26 #417 [Verbose] >     join

00:00:26 #418 [Verbose] >         ;[[

00:00:26 #419 [Verbose] >             $'$"import sys"'

00:00:26 #420 [Verbose] >             $'$"import traceback"'

00:00:26 #421 [Verbose] >             $'$"import re"'

00:00:26 #422 [Verbose] >             $'$"count = 0"'

00:00:26 #423 [Verbose] >             $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"'

00:00:26 #424 [Verbose] >             $'$"def trace_calls(frame, event, arg):"'

00:00:26 #425 [Verbose] >             $'$"    global count"'

00:00:26 #426 [Verbose] >             $'$"    count += 1"'

00:00:26 #427 [Verbose] >             $'$"    if count < 200:"'

00:00:26 #428 [Verbose] >             $'$"        try:"'

00:00:26 #429 [Verbose] >             $'$"            args = {{ k: v for k, v in frame.f_locals.items() if

00:00:26 #430 [Verbose] > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not

00:00:26 #431 [Verbose] > callable(v) }}"'

00:00:26 #432 [Verbose] >             $'$"            args_str = \', \'.join([[

00:00:26 #433 [Verbose] > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k,

00:00:26 #434 [Verbose] > v in args.items() ]])"'

00:00:26 #435 [Verbose] >             $'$"            print(f\\\"{{event}}({!name}) / f_code.co_name:

00:00:26 #436 [Verbose] > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}}

00:00:26 #437 [Verbose] > / f_code.co_filename:

00:00:26 #438 [Verbose] > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno:

00:00:26 #439 [Verbose] > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }}

00:00:26 #440 [Verbose] > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else

00:00:26 #441 [Verbose] > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg:

00:00:26 #442 [Verbose] > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"'

00:00:26 #443 [Verbose] >             $'$"        except ValueError as e:"'

00:00:26 #444 [Verbose] >             $'$"            print(f\'{!name} / e: {{e}}\', flush=True)"'

00:00:26 #445 [Verbose] >             $'$"        return trace_calls"'

00:00:26 #446 [Verbose] >             $'$"import mpmath"'

00:00:26 #447 [Verbose] >             $'$"def fn(log, s):"'

00:00:26 #448 [Verbose] >             $'$"    global count"'

00:00:26 #449 [Verbose] >             $'$"    if log:"'

00:00:26 #450 [Verbose] >             $'$"        print(f\'{!name} / s: {{s}} / count: {{count}}\',

00:00:26 #451 [Verbose] > flush=True)"'

00:00:26 #452 [Verbose] >             $'$"    s = complex(*s)"'

00:00:26 #453 [Verbose] >             $'$"    try:"'

00:00:26 #454 [Verbose] >             $'$"        if log: sys.settrace(trace_calls)"'

00:00:26 #455 [Verbose] >             line

00:00:26 #456 [Verbose] >             $'$"        if log:"'

00:00:26 #457 [Verbose] >             $'$"            sys.settrace(None)"'

00:00:26 #458 [Verbose] >             $'$"            print(f\'{!name} / result: {{s}} / count:

00:00:26 #459 [Verbose] > {{count}}\', flush=True)"'

00:00:26 #460 [Verbose] >             $'$"    except ValueError as e:"'

00:00:26 #461 [Verbose] >             $'$"        if s.real == 1:"'

00:00:26 #462 [Verbose] >             $'$"            s = complex(float(\'inf\'), 0)"'

00:00:26 #463 [Verbose] >             $'$"    return (s.real, s.imag)"'

00:00:26 #464 [Verbose] >         ]]

00:00:26 #465 [Verbose] >         |> call1_ log py s

00:00:26 #466 [Verbose] >

00:00:26 #467 [Verbose] > inl gamma_ log py s =

00:00:26 #468 [Verbose] >     call1_ log "gamma_" py s $'$"        s = mpmath.gamma(s)"'

00:00:26 #469 [Verbose] >

00:00:26 #470 [Verbose] > inl zeta_ log py s =

00:00:26 #471 [Verbose] >     call1_ log "zeta_" py s $'$"        s = mpmath.zeta(s)"'

00:00:26 #472 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3761-6119-62b579f0dec3\main.spi

00:00:26 #473 [Verbose] >

00:00:26 #474 [Verbose] > ╭─[ 423.68ms - stdout ]────────────────────────────────────────────────────────╮

00:00:26 #475 [Verbose] > │ ()                                                                           │

00:00:26 #476 [Verbose] > │                                                                              │

00:00:26 #477 [Verbose] > │                                                                              │

00:00:26 #478 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #479 [Verbose] >

00:00:26 #480 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:26 #481 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:26 #482 [Verbose] > │ ## run_test                                                                  │

00:00:26 #483 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #484 [Verbose] >

00:00:26 #485 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:26 #486 [Verbose] > inl run_test log closure_fix (fn : (complex f64 -> complex f64) * (complex f64

00:00:26 #487 [Verbose] > -> complex f64) -> ()) =

00:00:26 #488 [Verbose] >     inl fn_ (py : python) : resultm.result' () pyerr =

00:00:26 #489 [Verbose] >         inl nan () =

00:00:26 #490 [Verbose] >             !\($'"f64::NAN"')

00:00:26 #491 [Verbose] >         inl gamma__ = fun (s : complex f64) =>

00:00:26 #492 [Verbose] >             inl result = gamma_ log py s

00:00:26 #493 [Verbose] >             if log then

00:00:26 #494 [Verbose] >                 inl s = join s

00:00:26 #495 [Verbose] >                 !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s,

00:00:26 #496 [Verbose] > !result)"')

00:00:26 #497 [Verbose] >             result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value

00:00:26 #498 [Verbose] > .^(nan (), nan ())

00:00:26 #499 [Verbose] >         inl zeta__ = fun (s : complex f64) =>

00:00:26 #500 [Verbose] >             inl result = zeta_ log py s

00:00:26 #501 [Verbose] >

00:00:26 #502 [Verbose] >             inl z = zeta true gamma__ s

00:00:26 #503 [Verbose] >

00:00:26 #504 [Verbose] >             if log then

00:00:26 #505 [Verbose] >                 inl s = join s

00:00:26 #506 [Verbose] >                 !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z:

00:00:26 #507 [Verbose] > {:?}\\\", !s, !result, !z)"')

00:00:26 #508 [Verbose] >

00:00:26 #509 [Verbose] >     //             re result - re x |> abs

00:00:26 #510 [Verbose] >     //             |> _assert_lt 0.001

00:00:26 #511 [Verbose] >

00:00:26 #512 [Verbose] >     //             im result - im x |> abs

00:00:26 #513 [Verbose] >     //             |> _assert_lt 0.001

00:00:26 #514 [Verbose] >

00:00:26 #515 [Verbose] >             result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value

00:00:26 #516 [Verbose] > .^(nan (), nan ())

00:00:26 #517 [Verbose] >         join fn (zeta__, gamma__)

00:00:26 #518 [Verbose] >

00:00:26 #519 [Verbose] >         Ok ()

00:00:26 #520 [Verbose] >         |> resultm.box

00:00:26 #521 [Verbose] >

00:00:26 #522 [Verbose] >     join

00:00:26 #523 [Verbose] >         !\($'"pyo3::prepare_freethreaded_python()"') : ()

00:00:26 #524 [Verbose] >

00:00:26 #525 [Verbose] >         !\($'"let __result = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> {

00:00:26 #526 [Verbose] > //"')

00:00:26 #527 [Verbose] >

00:00:26 #528 [Verbose] >         let x' = fn_ (!\($'"py"') : python)

00:00:26 #529 [Verbose] >         inl x' = join x'

00:00:26 #530 [Verbose] >

00:00:26 #531 [Verbose] >         inl closure_fix = 2u8, 1u8

00:00:26 #532 [Verbose] >         x' |> rust.fix_closure closure_fix

00:00:26 #533 [Verbose] >

00:00:26 #534 [Verbose] >         (!\($'"__result"') : _ () pyerr)

00:00:26 #535 [Verbose] >         |> resultm.unwrap'

00:00:26 #536 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3800-0040-045d91fca3b4\main.spi

00:00:27 #537 [Verbose] >

00:00:27 #538 [Verbose] > ╭─[ 318.15ms - stdout ]────────────────────────────────────────────────────────╮

00:00:27 #539 [Verbose] > │ ()                                                                           │

00:00:27 #540 [Verbose] > │                                                                              │

00:00:27 #541 [Verbose] > │                                                                              │

00:00:27 #542 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:27 #543 [Verbose] >

00:00:27 #544 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:27 #545 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:27 #546 [Verbose] > │ ## test_zeta_at_known_values_                                                │

00:00:27 #547 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:27 #548 [Verbose] >

00:00:27 #549 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:27 #550 [Verbose] > inl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =>

00:00:27 #551 [Verbose] >     ;[[

00:00:27 #552 [Verbose] >         .^(2, 0), pi ** 2 / 6

00:00:27 #553 [Verbose] >         .^(-1, 0), -1 / 12

00:00:27 #554 [Verbose] >     ]]

00:00:27 #555 [Verbose] >     |> fun x => a x : _ i32 _

00:00:27 #556 [Verbose] >     |> am.iter fun s, e =>

00:00:27 #557 [Verbose] >         inl result = zeta s

00:00:27 #558 [Verbose] >

00:00:27 #559 [Verbose] >         result |> im |> _assert_eq 0

00:00:27 #560 [Verbose] >         re result - e |> abs |> _assert_lt 0.0001

00:00:27 #561 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3832-3224-38e92513ed10\main.spi

00:00:27 #562 [Verbose] >

00:00:27 #563 [Verbose] > ╭─[ 306.70ms - stdout ]────────────────────────────────────────────────────────╮

00:00:27 #564 [Verbose] > │ ()                                                                           │

00:00:27 #565 [Verbose] > │                                                                              │

00:00:27 #566 [Verbose] > │                                                                              │

00:00:27 #567 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:27 #568 [Verbose] >

00:00:27 #569 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:27 #570 [Verbose] > // // test

00:00:27 #571 [Verbose] > // // rust=

00:00:27 #572 [Verbose] > // // print_code=false

00:00:27 #573 [Verbose] >

00:00:27 #574 [Verbose] > types ()

00:00:27 #575 [Verbose] > test_zeta_at_known_values_ true

00:00:27 #576 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-3863-6316-6c95e3efbce7\main.spi

00:00:41 #577 [Verbose] >

00:00:41 #578 [Verbose] > ╭─[ 13.75s - return value ]────────────────────────────────────────────────────╮

00:00:41 #579 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0                                             │

00:00:41 #580 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:00:41 #581 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:00:41 #582 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:00:41 #583 [Verbose] > │ / arg: None                                                                  │

00:00:41 #584 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:00:41 #585 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:00:41 #586 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:00:41 #587 [Verbose] > │ / arg: None                                                                  │

00:00:41 #588 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:00:41 #589 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:00:41 #590 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:00:41 #591 [Verbose] > │ / arg: None                                                                  │

00:00:41 #592 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │

00:00:41 #593 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:41 #594 [Verbose] >

00:00:41 #595 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:41 #596 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:41 #597 [Verbose] > │ ## test_zeta_at_2_minus2                                                     │

00:00:41 #598 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:41 #599 [Verbose] >

00:00:41 #600 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:41 #601 [Verbose] > inl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =>

00:00:41 #602 [Verbose] >     inl s = .^(2, -2)

00:00:41 #603 [Verbose] >     inl result = zeta s

00:00:41 #604 [Verbose] >

00:00:41 #605 [Verbose] >     (re result - 0.8673) |> abs |> _assert_lt 0.001

00:00:41 #606 [Verbose] >     (im result - 0.2750) |> abs |> _assert_lt 0.001

00:00:41 #607 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-5240-4034-447a877a9f5b\main.spi

00:00:41 #608 [Verbose] >

00:00:41 #609 [Verbose] > ╭─[ 251.92ms - stdout ]────────────────────────────────────────────────────────╮

00:00:41 #610 [Verbose] > │ ()                                                                           │

00:00:41 #611 [Verbose] > │                                                                              │

00:00:41 #612 [Verbose] > │                                                                              │

00:00:41 #613 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:41 #614 [Verbose] >

00:00:41 #615 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:41 #616 [Verbose] > // // test

00:00:41 #617 [Verbose] > // // rust=

00:00:41 #618 [Verbose] > // // print_code=false

00:00:41 #619 [Verbose] >

00:00:41 #620 [Verbose] > types ()

00:00:41 #621 [Verbose] > test_zeta_at_2_minus2 true

00:00:41 #622 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1258-5265-6587-600564302e15\main.spi

00:00:50 #623 [Verbose] >

00:00:50 #624 [Verbose] > ╭─[ 9.26s - return value ]─────────────────────────────────────────────────────╮

00:00:50 #625 [Verbose] > │ zeta_ / s: (2.0, -2.0) / count: 0                                            │

00:00:50 #626 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0,  │

00:00:50 #627 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:00:50 #628 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:00:50 #629 [Verbose] > │ / arg: None                                                                  │

00:00:50 #630 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0,  │

00:00:50 #631 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:00:50 #632 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:00:50 #633 [Verbose] > │ / arg: None                                                                  │

00:00:50 #634 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, derivative=0,  │

00:00:50 #635 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:00:50 #636 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:00:50 #637 [Verbose] > │ / arg: None                                                                  │

00:00:50 #638 [Verbose] > │ line(zeta_) / f_code.co_name: ...                                            │

00:00:50 #639 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #640 [Verbose] >

00:00:50 #641 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:50 #642 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:50 #643 [Verbose] > │ ## test_trivial_zero_at_negative_even___                                     │

00:00:50 #644 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #645 [Verbose] >

00:00:50 #646 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:50 #647 [Verbose] > inl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun

00:00:50 #648 [Verbose] > zeta, gamma =>

00:00:50 #649 [Verbose] >     (join listm'.init_series -2f64 -40 -2)

00:00:50 #650 [Verbose] >     |> listm.iter fun n =>

00:00:50 #651 [Verbose] >         inl s = .^(n, 0)

00:00:50 #652 [Verbose] >         inl result = zeta s

00:00:50 #653 [Verbose] >

00:00:50 #654 [Verbose] >         result |> re |> _assert_eq 0

00:00:50 #655 [Verbose] >         result |> im |> _assert_eq 0

00:00:50 #656 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-0192-9256-957d3d040a31\main.spi

00:00:50 #657 [Verbose] >

00:00:50 #658 [Verbose] > ╭─[ 230.25ms - stdout ]────────────────────────────────────────────────────────╮

00:00:50 #659 [Verbose] > │ ()                                                                           │

00:00:50 #660 [Verbose] > │                                                                              │

00:00:50 #661 [Verbose] > │                                                                              │

00:00:50 #662 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:50 #663 [Verbose] >

00:00:50 #664 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:50 #665 [Verbose] > // // test

00:00:50 #666 [Verbose] > // // rust=

00:00:50 #667 [Verbose] > // // print_code=false

00:00:50 #668 [Verbose] >

00:00:50 #669 [Verbose] > types ()

00:00:50 #670 [Verbose] > test_trivial_zero_at_negative_even___ true

00:00:51 #671 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-0215-1574-13571280073c\main.spi

00:01:01 #672 [Verbose] >

00:01:01 #673 [Verbose] > ╭─[ 10.75s - return value ]────────────────────────────────────────────────────╮

00:01:01 #674 [Verbose] > │ zeta_ / s: (-2.0, 0.0) / count: 0                                            │

00:01:01 #675 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │

00:01:01 #676 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:01:01 #677 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:01 #678 [Verbose] > │ / arg: None                                                                  │

00:01:01 #679 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │

00:01:01 #680 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:01:01 #681 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:01 #682 [Verbose] > │ / arg: None                                                                  │

00:01:01 #683 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), a=1, derivative=0, │

00:01:01 #684 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:01:01 #685 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:01 #686 [Verbose] > │ / arg: None                                                                  │

00:01:01 #687 [Verbose] > │ line(zeta_) / f_code.co_nam...                                               │

00:01:01 #688 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:01 #689 [Verbose] >

00:01:01 #690 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:01 #691 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:01 #692 [Verbose] > │ ## test_non_trivial_zero___                                                  │

00:01:01 #693 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:01 #694 [Verbose] >

00:01:01 #695 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:01 #696 [Verbose] > inl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =>

00:01:01 #697 [Verbose] >     ;[[

00:01:01 #698 [Verbose] >         .^(0.5, 14.134725)

00:01:01 #699 [Verbose] >         .^(0.5, 21.022040)

00:01:01 #700 [Verbose] >         .^(0.5, 25.010857)

00:01:01 #701 [Verbose] >         .^(0.5, 30.424876)

00:01:01 #702 [Verbose] >         .^(0.5, 32.935062)

00:01:01 #703 [Verbose] >         .^(0.5, 37.586178)

00:01:01 #704 [Verbose] >     ]]

00:01:01 #705 [Verbose] >     |> fun x => a x : _ i32 _

00:01:01 #706 [Verbose] >     |> am.iter fun x =>

00:01:01 #707 [Verbose] >             inl result = zeta x

00:01:01 #708 [Verbose] >             result |> re |> abs |> _assert_lt 0.0001

00:01:01 #709 [Verbose] >             result |> im |> abs |> _assert_lt 0.0001

00:01:01 #710 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-1295-9583-9d94697b5120\main.spi

00:01:02 #711 [Verbose] >

00:01:02 #712 [Verbose] > ╭─[ 282.93ms - stdout ]────────────────────────────────────────────────────────╮

00:01:02 #713 [Verbose] > │ ()                                                                           │

00:01:02 #714 [Verbose] > │                                                                              │

00:01:02 #715 [Verbose] > │                                                                              │

00:01:02 #716 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:02 #717 [Verbose] >

00:01:02 #718 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:02 #719 [Verbose] > // // test

00:01:02 #720 [Verbose] > // // rust=

00:01:02 #721 [Verbose] > // // print_code=false

00:01:02 #722 [Verbose] >

00:01:02 #723 [Verbose] > types ()

00:01:02 #724 [Verbose] > test_non_trivial_zero___ true

00:01:02 #725 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-1324-2437-210d2c6f561d\main.spi

00:01:12 #726 [Verbose] >

00:01:12 #727 [Verbose] > ╭─[ 10.66s - return value ]────────────────────────────────────────────────────╮

00:01:12 #728 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0                                       │

00:01:12 #729 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │

00:01:12 #730 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:   │

00:01:12 #731 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:12 #732 [Verbose] > │ / arg: None                                                                  │

00:01:12 #733 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │

00:01:12 #734 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:   │

00:01:12 #735 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:12 #736 [Verbose] > │ / arg: None                                                                  │

00:01:12 #737 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │

00:01:12 #738 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /                  │

00:01:12 #739 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 /        │

00:01:12 #740 [Verbose] > │ f_back.f_code.co_filename:  / arg: ...                                       │

00:01:12 #741 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:12 #742 [Verbose] >

00:01:12 #743 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:12 #744 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:12 #745 [Verbose] > │ ## test_real_part_greater_than_one___                                        │

00:01:13 #746 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:13 #747 [Verbose] >

00:01:13 #748 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:13 #749 [Verbose] > inl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta,

00:01:13 #750 [Verbose] > gamma =>

00:01:13 #751 [Verbose] >     inl points = ;[[2; 3; 4; 5; 10; 20; 50]]

00:01:13 #752 [Verbose] >     (a points : _ i32 _)

00:01:13 #753 [Verbose] >     |> am.iter fun point =>

00:01:13 #754 [Verbose] >         inl s = .^(point, 0)

00:01:13 #755 [Verbose] >         inl result = zeta s

00:01:13 #756 [Verbose] >         result |> re |> _assert_gt 0

00:01:13 #757 [Verbose] >         result |> im |> _assert_eq 0

00:01:13 #758 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-2428-2870-29d09ed7a4df\main.spi

00:01:13 #759 [Verbose] >

00:01:13 #760 [Verbose] > ╭─[ 383.62ms - stdout ]────────────────────────────────────────────────────────╮

00:01:13 #761 [Verbose] > │ ()                                                                           │

00:01:13 #762 [Verbose] > │                                                                              │

00:01:13 #763 [Verbose] > │                                                                              │

00:01:13 #764 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:13 #765 [Verbose] >

00:01:13 #766 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:13 #767 [Verbose] > // // test

00:01:13 #768 [Verbose] > // // rust=

00:01:13 #769 [Verbose] > // // print_code=false

00:01:13 #770 [Verbose] >

00:01:13 #771 [Verbose] > types ()

00:01:13 #772 [Verbose] > test_real_part_greater_than_one___ true

00:01:13 #773 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-2465-6563-6c85cc5693d8\main.spi

00:01:27 #774 [Verbose] >

00:01:27 #775 [Verbose] > ╭─[ 14.47s - return value ]────────────────────────────────────────────────────╮

00:01:27 #776 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0                                             │

00:01:27 #777 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:01:27 #778 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:01:27 #779 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:27 #780 [Verbose] > │ / arg: None                                                                  │

00:01:27 #781 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:01:27 #782 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:01:27 #783 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:27 #784 [Verbose] > │ / arg: None                                                                  │

00:01:27 #785 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:01:27 #786 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:01:27 #787 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:27 #788 [Verbose] > │ / arg: None                                                                  │

00:01:27 #789 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │

00:01:27 #790 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:27 #791 [Verbose] >

00:01:27 #792 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:27 #793 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:27 #794 [Verbose] > │ ## test_zeta_at_1___                                                         │

00:01:27 #795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:27 #796 [Verbose] >

00:01:27 #797 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:27 #798 [Verbose] > inl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =>

00:01:27 #799 [Verbose] >     inl s = .^(1, 0)

00:01:27 #800 [Verbose] >     inl result = zeta s

00:01:27 #801 [Verbose] >     result |> re |> _assert_eq limit.max

00:01:27 #802 [Verbose] >     result |> im |> _assert_eq 0

00:01:28 #803 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-3915-1551-1e52bf4a2e4f\main.spi

00:01:28 #804 [Verbose] >

00:01:28 #805 [Verbose] > ╭─[ 229.93ms - stdout ]────────────────────────────────────────────────────────╮

00:01:28 #806 [Verbose] > │ ()                                                                           │

00:01:28 #807 [Verbose] > │                                                                              │

00:01:28 #808 [Verbose] > │                                                                              │

00:01:28 #809 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:28 #810 [Verbose] >

00:01:28 #811 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:28 #812 [Verbose] > // // test

00:01:28 #813 [Verbose] > // // rust=

00:01:28 #814 [Verbose] > // // print_code=false

00:01:28 #815 [Verbose] >

00:01:28 #816 [Verbose] > types ()

00:01:28 #817 [Verbose] > test_zeta_at_1___ true

00:01:28 #818 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-3938-3853-362c947815be\main.spi

00:01:38 #819 [Verbose] >

00:01:38 #820 [Verbose] > ╭─[ 10.76s - return value ]────────────────────────────────────────────────────╮

00:01:38 #821 [Verbose] > │ zeta_ / s: (1.0, 0.0) / count: 0                                             │

00:01:38 #822 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0,  │

00:01:38 #823 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:01:38 #824 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:38 #825 [Verbose] > │ / arg: None                                                                  │

00:01:38 #826 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0,  │

00:01:38 #827 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:01:38 #828 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:38 #829 [Verbose] > │ / arg: None                                                                  │

00:01:38 #830 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, derivative=0,  │

00:01:38 #831 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:01:38 #832 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:38 #833 [Verbose] > │ / arg: None                                                                  │

00:01:38 #834 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │

00:01:38 #835 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #836 [Verbose] >

00:01:38 #837 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #838 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #839 [Verbose] > │ ## test_symmetry_across_real_axis___                                         │

00:01:38 #840 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #841 [Verbose] >

00:01:38 #842 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #843 [Verbose] > inl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta,

00:01:38 #844 [Verbose] > gamma =>

00:01:38 #845 [Verbose] >     inl s = .^(2, 10)

00:01:38 #846 [Verbose] >     inl result_positive_im = zeta s

00:01:38 #847 [Verbose] >     inl result_negative_im = zeta .^(re s, -(im s))

00:01:38 #848 [Verbose] >     inl conj = result_negative_im |> conj

00:01:38 #849 [Verbose] >     result_positive_im |> re |> _assert_eq (conj |> re)

00:01:38 #850 [Verbose] >     result_positive_im |> im |> _assert_eq (conj |> im)

00:01:39 #851 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-5016-1684-153439a6e959\main.spi

00:01:39 #852 [Verbose] >

00:01:39 #853 [Verbose] > ╭─[ 212.79ms - stdout ]────────────────────────────────────────────────────────╮

00:01:39 #854 [Verbose] > │ ()                                                                           │

00:01:39 #855 [Verbose] > │                                                                              │

00:01:39 #856 [Verbose] > │                                                                              │

00:01:39 #857 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:39 #858 [Verbose] >

00:01:39 #859 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:39 #860 [Verbose] > // // test

00:01:39 #861 [Verbose] > // // rust=

00:01:39 #862 [Verbose] > // // print_code=false

00:01:39 #863 [Verbose] >

00:01:39 #864 [Verbose] > types ()

00:01:39 #865 [Verbose] > test_symmetry_across_real_axis___ true

00:01:39 #866 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1259-5038-3814-370614dded84\main.spi

00:01:49 #867 [Verbose] >

00:01:49 #868 [Verbose] > ╭─[ 10.45s - return value ]────────────────────────────────────────────────────╮

00:01:49 #869 [Verbose] > │ zeta_ / s: (2.0, 10.0) / count: 0                                            │

00:01:49 #870 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │

00:01:49 #871 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:01:49 #872 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:49 #873 [Verbose] > │ / arg: None                                                                  │

00:01:49 #874 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │

00:01:49 #875 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:01:49 #876 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:49 #877 [Verbose] > │ / arg: None                                                                  │

00:01:49 #878 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), a=1, derivative=0, │

00:01:49 #879 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:01:49 #880 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:49 #881 [Verbose] > │ / arg: None                                                                  │

00:01:49 #882 [Verbose] > │ line(zeta_) / f_code.co_nam...                                               │

00:01:49 #883 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:49 #884 [Verbose] >

00:01:49 #885 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:49 #886 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:49 #887 [Verbose] > │ ## test_behavior_near_origin___                                              │

00:01:49 #888 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:49 #889 [Verbose] >

00:01:49 #890 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:49 #891 [Verbose] > inl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma

00:01:49 #892 [Verbose] > =>

00:01:49 #893 [Verbose] >     inl s = .^(0.01, 0.01)

00:01:49 #894 [Verbose] >     inl result = zeta s

00:01:49 #895 [Verbose] >     result |> re |> _assert_lt limit.max

00:01:49 #896 [Verbose] >     result |> im |> _assert_lt limit.max

00:01:49 #897 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-0085-8521-877ae6c48b86\main.spi

00:01:49 #898 [Verbose] >

00:01:49 #899 [Verbose] > ╭─[ 221.40ms - stdout ]────────────────────────────────────────────────────────╮

00:01:49 #900 [Verbose] > │ ()                                                                           │

00:01:49 #901 [Verbose] > │                                                                              │

00:01:49 #902 [Verbose] > │                                                                              │

00:01:49 #903 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:49 #904 [Verbose] >

00:01:49 #905 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:49 #906 [Verbose] > // // test

00:01:49 #907 [Verbose] > // // rust=

00:01:49 #908 [Verbose] > // // print_code=false

00:01:49 #909 [Verbose] >

00:01:49 #910 [Verbose] > types ()

00:01:49 #911 [Verbose] > test_behavior_near_origin___ true

00:01:49 #912 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-0107-0746-0d0a430d6a2e\main.spi

00:01:59 #913 [Verbose] >

00:01:59 #914 [Verbose] > ╭─[ 9.60s - return value ]─────────────────────────────────────────────────────╮

00:01:59 #915 [Verbose] > │ zeta_ / s: (0.01, 0.01) / count: 0                                           │

00:01:59 #916 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1,          │

00:01:59 #917 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:   │

00:01:59 #918 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:59 #919 [Verbose] > │ / arg: None                                                                  │

00:01:59 #920 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1,          │

00:01:59 #921 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:   │

00:01:59 #922 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:01:59 #923 [Verbose] > │ / arg: None                                                                  │

00:01:59 #924 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.01+0.01j), a=1,          │

00:01:59 #925 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /                  │

00:01:59 #926 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 /        │

00:01:59 #927 [Verbose] > │ f_back.f_code.co_filename:  / arg: None                                      │

00:01:59 #928 [Verbose] > │ line(zeta_)...                                                               │

00:01:59 #929 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:59 #930 [Verbose] >

00:01:59 #931 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:59 #932 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:59 #933 [Verbose] > │ ## test_imaginary_axis                                                       │

00:01:59 #934 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:59 #935 [Verbose] >

00:01:59 #936 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:59 #937 [Verbose] > inl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =>

00:01:59 #938 [Verbose] >     (join a ;[[10; 20; 30; 40; 50; 60; 70; 80; 90; 100]] : _ i32 _)

00:01:59 #939 [Verbose] >     |> am.iter fun s =>

00:01:59 #940 [Verbose] >         inl s = .^(0, s)

00:01:59 #941 [Verbose] >         inl result = zeta s

00:01:59 #942 [Verbose] >         result |> re |> _assert_ne 0

00:01:59 #943 [Verbose] >         result |> im |> _assert_ne 0

00:01:59 #944 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-1069-6936-6f6c6cd36d9f\main.spi

00:01:59 #945 [Verbose] >

00:01:59 #946 [Verbose] > ╭─[ 204.12ms - stdout ]────────────────────────────────────────────────────────╮

00:01:59 #947 [Verbose] > │ ()                                                                           │

00:01:59 #948 [Verbose] > │                                                                              │

00:01:59 #949 [Verbose] > │                                                                              │

00:01:59 #950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:59 #951 [Verbose] >

00:01:59 #952 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:59 #953 [Verbose] > // // test

00:01:59 #954 [Verbose] > // // rust=

00:01:59 #955 [Verbose] > // // print_code=false

00:01:59 #956 [Verbose] >

00:01:59 #957 [Verbose] > types ()

00:01:59 #958 [Verbose] > test_imaginary_axis true

00:01:59 #959 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-1089-8976-8e1885b8e5ae\main.spi

00:02:09 #960 [Verbose] >

00:02:09 #961 [Verbose] > ╭─[ 9.55s - return value ]─────────────────────────────────────────────────────╮

00:02:09 #962 [Verbose] > │ zeta_ / s: (0.0, 10.0) / count: 0                                            │

00:02:09 #963 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0,     │

00:02:09 #964 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:02:09 #965 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:09 #966 [Verbose] > │ / arg: None                                                                  │

00:02:09 #967 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0,     │

00:02:09 #968 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:02:09 #969 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:09 #970 [Verbose] > │ / arg: None                                                                  │

00:02:09 #971 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, derivative=0,     │

00:02:09 #972 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:02:09 #973 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:09 #974 [Verbose] > │ / arg: None                                                                  │

00:02:09 #975 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_...                                   │

00:02:09 #976 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #977 [Verbose] >

00:02:09 #978 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:09 #979 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:09 #980 [Verbose] > │ ## test_critical_strip                                                       │

00:02:09 #981 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #982 [Verbose] >

00:02:09 #983 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:09 #984 [Verbose] > inl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =>

00:02:09 #985 [Verbose] >     ;[[

00:02:09 #986 [Verbose] >         .^(0.5, 14.134725)

00:02:09 #987 [Verbose] >         .^(0.75, 20.5)

00:02:09 #988 [Verbose] >         .^(1.25, 30.1)

00:02:09 #989 [Verbose] >         .^(0.25, 40.0)

00:02:09 #990 [Verbose] >         .^(1.0, 50.0)

00:02:09 #991 [Verbose] >     ]]

00:02:09 #992 [Verbose] >     |> fun x => a x : _ i32 _

00:02:09 #993 [Verbose] >     |> am.iter fun s =>

00:02:09 #994 [Verbose] >         inl result = zeta s

00:02:09 #995 [Verbose] >         result |> re |> _assert_ne 0

00:02:09 #996 [Verbose] >         result |> im |> _assert_ne 0

00:02:09 #997 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-2046-4626-42bd388a67ad\main.spi

00:02:09 #998 [Verbose] >

00:02:09 #999 [Verbose] > ╭─[ 237.51ms - stdout ]────────────────────────────────────────────────────────╮

00:02:09 #1000 [Verbose] > │ ()                                                                           │

00:02:09 #1001 [Verbose] > │                                                                              │

00:02:09 #1002 [Verbose] > │                                                                              │

00:02:09 #1003 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:09 #1004 [Verbose] >

00:02:09 #1005 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:09 #1006 [Verbose] > // // test

00:02:09 #1007 [Verbose] > // // rust=

00:02:09 #1008 [Verbose] > // // print_code=false

00:02:09 #1009 [Verbose] >

00:02:09 #1010 [Verbose] > types ()

00:02:09 #1011 [Verbose] > test_critical_strip true

00:02:09 #1012 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-2070-7023-7fb8713c2640\main.spi

00:02:19 #1013 [Verbose] >

00:02:19 #1014 [Verbose] > ╭─[ 10.41s - return value ]────────────────────────────────────────────────────╮

00:02:19 #1015 [Verbose] > │ zeta_ / s: (0.5, 14.134725) / count: 0                                       │

00:02:19 #1016 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │

00:02:19 #1017 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:   │

00:02:19 #1018 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:19 #1019 [Verbose] > │ / arg: None                                                                  │

00:02:19 #1020 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │

00:02:19 #1021 [Verbose] > │ derivative=0, method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:   │

00:02:19 #1022 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:19 #1023 [Verbose] > │ / arg: None                                                                  │

00:02:19 #1024 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(0.5+14.134725j), a=1,      │

00:02:19 #1025 [Verbose] > │ derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 /                  │

00:02:19 #1026 [Verbose] > │ f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 /        │

00:02:19 #1027 [Verbose] > │ f_back.f_code.co_filename:  / arg: ...                                       │

00:02:19 #1028 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:19 #1029 [Verbose] >

00:02:19 #1030 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:19 #1031 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:19 #1032 [Verbose] > │ ## test_reflection_formula_for_specific_value                                │

00:02:19 #1033 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:19 #1034 [Verbose] >

00:02:19 #1035 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:19 #1036 [Verbose] > inl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun

00:02:19 #1037 [Verbose] > zeta, gamma =>

00:02:19 #1038 [Verbose] >     ;[[

00:02:19 #1039 [Verbose] >         .^(3, 4)

00:02:19 #1040 [Verbose] >         .^(2.5, -3.5)

00:02:19 #1041 [Verbose] >         .^(1.5, 2.5)

00:02:19 #1042 [Verbose] >         .^(0.5, 14.134725)

00:02:19 #1043 [Verbose] >     ]]

00:02:19 #1044 [Verbose] >     |> fun x => a x : _ i32 _

00:02:19 #1045 [Verbose] >     |> am.iter fun s =>

00:02:19 #1046 [Verbose] >         inl lhs = zeta s

00:02:19 #1047 [Verbose] >         inl reflection_coefficient =

00:02:19 #1048 [Verbose] >             (.^(2, 0) .** s)

00:02:19 #1049 [Verbose] >             .* (.^(pi, 0) .** (s .- .^(1, 0)))

00:02:19 #1050 [Verbose] >             .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)

00:02:19 #1051 [Verbose] >             .* gamma (.^(1, 0) .- s)

00:02:19 #1052 [Verbose] >

00:02:19 #1053 [Verbose] >         inl one_minus_s = .^(1 - re s, -(im s))

00:02:19 #1054 [Verbose] >         inl rhs = reflection_coefficient .* zeta one_minus_s

00:02:19 #1055 [Verbose] >

00:02:19 #1056 [Verbose] >         re lhs - re rhs |> abs |> _assert_lt 0.0001

00:02:19 #1057 [Verbose] >         im lhs - im rhs |> abs |> _assert_lt 0.0001

00:02:20 #1058 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-3112-1278-12420b57c3e7\main.spi

00:02:20 #1059 [Verbose] >

00:02:20 #1060 [Verbose] > ╭─[ 244.81ms - stdout ]────────────────────────────────────────────────────────╮

00:02:20 #1061 [Verbose] > │ ()                                                                           │

00:02:20 #1062 [Verbose] > │                                                                              │

00:02:20 #1063 [Verbose] > │                                                                              │

00:02:20 #1064 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:20 #1065 [Verbose] >

00:02:20 #1066 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:20 #1067 [Verbose] > // // test

00:02:20 #1068 [Verbose] > // // rust=

00:02:20 #1069 [Verbose] > // // print_code=false

00:02:20 #1070 [Verbose] >

00:02:20 #1071 [Verbose] > types ()

00:02:20 #1072 [Verbose] > test_reflection_formula_for_specific_value true

00:02:20 #1073 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-3137-3738-31a619a43bfe\main.spi

00:02:30 #1074 [Verbose] >

00:02:30 #1075 [Verbose] > ╭─[ 10.65s - return value ]────────────────────────────────────────────────────╮

00:02:30 #1076 [Verbose] > │ zeta_ / s: (3.0, 4.0) / count: 0                                             │

00:02:30 #1077 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0,  │

00:02:30 #1078 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:02:30 #1079 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:30 #1080 [Verbose] > │ / arg: None                                                                  │

00:02:30 #1081 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0,  │

00:02:30 #1082 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:02:30 #1083 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:30 #1084 [Verbose] > │ / arg: None                                                                  │

00:02:30 #1085 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, derivative=0,  │

00:02:30 #1086 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:02:30 #1087 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:30 #1088 [Verbose] > │ / arg: None                                                                  │

00:02:30 #1089 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │

00:02:30 #1090 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #1091 [Verbose] >

00:02:30 #1092 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:30 #1093 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:30 #1094 [Verbose] > │ ## test_euler_product_formula                                                │

00:02:30 #1095 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:30 #1096 [Verbose] >

00:02:30 #1097 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:30 #1098 [Verbose] > inl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =>

00:02:30 #1099 [Verbose] >     inl s_values = ;[[2; 2.5; 3; 3.5; 4; 4.5; 5]]

00:02:30 #1100 [Verbose] >     inl primes = ;[[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53;

00:02:30 #1101 [Verbose] > 59; 61; 67; 71]]

00:02:30 #1102 [Verbose] >     (a s_values : _ i32 _)

00:02:30 #1103 [Verbose] >     |> am.iter fun s_re =>

00:02:30 #1104 [Verbose] >         inl s = .^(s_re, 0)

00:02:30 #1105 [Verbose] >         inl product =

00:02:30 #1106 [Verbose] >             (1, (a primes : _ i32 _))

00:02:30 #1107 [Verbose] >             ||> am.fold fun acc x =>

00:02:30 #1108 [Verbose] >                 acc * 1 / (1 - x ** -s_re)

00:02:30 #1109 [Verbose] >

00:02:30 #1110 [Verbose] >         inl result = zeta s

00:02:30 #1111 [Verbose] >         re result - product |> abs |> _assert_lt 0.01

00:02:30 #1112 [Verbose] >         result |> im |> _assert_lt 0.01

00:02:30 #1113 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-4204-0441-053ca8f371c9\main.spi

00:02:31 #1114 [Verbose] >

00:02:31 #1115 [Verbose] > ╭─[ 284.30ms - stdout ]────────────────────────────────────────────────────────╮

00:02:31 #1116 [Verbose] > │ ()                                                                           │

00:02:31 #1117 [Verbose] > │                                                                              │

00:02:31 #1118 [Verbose] > │                                                                              │

00:02:31 #1119 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:31 #1120 [Verbose] >

00:02:31 #1121 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:31 #1122 [Verbose] > // // test

00:02:31 #1123 [Verbose] > // // rust=

00:02:31 #1124 [Verbose] > // // print_code=false

00:02:31 #1125 [Verbose] >

00:02:31 #1126 [Verbose] > types ()

00:02:31 #1127 [Verbose] > test_euler_product_formula true

00:02:31 #1128 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-4233-3301-341700e72dca\main.spi

00:02:41 #1129 [Verbose] >

00:02:41 #1130 [Verbose] > ╭─[ 10.37s - return value ]────────────────────────────────────────────────────╮

00:02:41 #1131 [Verbose] > │ zeta_ / s: (2.0, 0.0) / count: 0                                             │

00:02:41 #1132 [Verbose] > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:02:41 #1133 [Verbose] > │ method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:                 │

00:02:41 #1134 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:41 #1135 [Verbose] > │ / arg: None                                                                  │

00:02:41 #1136 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:02:41 #1137 [Verbose] > │ method=None, kwargs={} / f_lineno: 532 / f_code.co_filename:                 │

00:02:41 #1138 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:41 #1139 [Verbose] > │ / arg: None                                                                  │

00:02:41 #1140 [Verbose] > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, derivative=0,  │

00:02:41 #1141 [Verbose] > │ method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:            │

00:02:41 #1142 [Verbose] > │ \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: │

00:02:41 #1143 [Verbose] > │ / arg: None                                                                  │

00:02:41 #1144 [Verbose] > │ line(zeta_) / f_code.co_name: z...                                           │

00:02:41 #1145 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:41 #1146 [Verbose] >

00:02:41 #1147 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:41 #1148 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:41 #1149 [Verbose] > │ ## graph                                                                     │

00:02:41 #1150 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:41 #1151 [Verbose] >

00:02:41 #1152 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────

00:02:41 #1153 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:41 #1154 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white">        │

00:02:41 #1155 [Verbose] > │ <link rel="stylesheet"                                                       │

00:02:41 #1156 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │

00:02:41 #1157 [Verbose] > │ css">                                                                        │

00:02:41 #1158 [Verbose] > │ <div id="e6c46050c7e44890b17dcfe5122fb2ff"></div>                            │

00:02:41 #1159 [Verbose] > │ <script type="module">                                                       │

00:02:41 #1160 [Verbose] > │                                                                              │

00:02:41 #1161 [Verbose] > │             import mermaid from                                              │

00:02:41 #1162 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';      │

00:02:41 #1163 [Verbose] > │             let renderTarget =                                               │

00:02:41 #1164 [Verbose] > │ document.getElementById('e6c46050c7e44890b17dcfe5122fb2ff');                 │

00:02:41 #1165 [Verbose] > │             try {                                                            │

00:02:41 #1166 [Verbose] > │                 const {svg, bindFunctions} = await                           │

00:02:41 #1167 [Verbose] > │ mermaid.mermaidAPI.render(                                                   │

00:02:41 #1168 [Verbose] > │                     'mermaid_e6c46050c7e44890b17dcfe5122fb2ff',              │

00:02:41 #1169 [Verbose] > │                     `graph TD                                                │

00:02:41 #1170 [Verbose] > │     zeta("zeta()") --> convert                                               │

00:02:41 #1171 [Verbose] > │     zeta --> f["f()"]                                                        │

00:02:41 #1172 [Verbose] > │     f --> mpc_f["mpc_zeta()"]                                                │

00:02:41 #1173 [Verbose] > │     f --> mpf_f["mpf_zeta()"]                                                │

00:02:41 #1174 [Verbose] > │     convert --> from_float                                                   │

00:02:41 #1175 [Verbose] > │     from_float --> from_man_exp                                              │

00:02:41 #1176 [Verbose] > │     from_man_exp --> python_bitcount                                         │

00:02:41 #1177 [Verbose] > │     python_bitcount --> _normalize                                           │

00:02:41 #1178 [Verbose] > │     _normalize --> make_mpc                                                  │

00:02:41 #1179 [Verbose] > │     make_mpc --> mpc_zeta["mpc_zeta()"]                                      │

00:02:41 #1180 [Verbose] > │     mpc_zeta --> mpf_zeta["mpf_zeta()"]                                      │

00:02:41 #1181 [Verbose] > │     mpf_zeta --> to_int                                                      │

00:02:41 #1182 [Verbose] > │     to_int --> mpf_zeta_int["mpf_zeta_int()"]                                │

00:02:41 #1183 [Verbose] > │     mpf_zeta_int --> borwein_coefficients                                    │

00:02:41 #1184 [Verbose] > │     borwein_coefficients --> from_man_exp_2("from_man_exp()")                │

00:02:41 #1185 [Verbose] > │     from_man_exp_2 --> python_bitcount_2("python_bitcount()")                │

00:02:41 #1186 [Verbose] > │     python_bitcount_2 --> _normalize_2("_normalize()")                       │

00:02:41 #1187 [Verbose] > │     _normalize_2 --> make_mpc_2("make_mpc()")                                │

00:02:41 #1188 [Verbose] > │     make_mpc_2 --> stop_trace                                                │

00:02:41 #1189 [Verbose] > │     mpf_zeta_int --> mpf_bernoulli                                           │

00:02:41 #1190 [Verbose] > │     mpf_bernoulli --> bernoulli_size                                         │

00:02:41 #1191 [Verbose] > │     bernoulli_size --> mpf_rdiv_int                                          │

00:02:41 #1192 [Verbose] > │     mpf_rdiv_int --> python_bitcount_3("python_bitcount()")                  │

00:02:41 #1193 [Verbose] > │     python_bitcount_3 --> _normalize1                                        │

00:02:41 #1194 [Verbose] > │     _normalize1 --> from_man_exp_3("from_man_exp()")                         │

00:02:41 #1195 [Verbose] > │     from_man_exp_3 --> _normalize_3("_normalize()")                          │

00:02:41 #1196 [Verbose] > │     _normalize_3 --> mpf_sub                                                 │

00:02:41 #1197 [Verbose] > │     mpf_sub --> mpf_add                                                      │

00:02:41 #1198 [Verbose] > │     mpf_add --> mpf_neg                                                      │

00:02:41 #1199 [Verbose] > │     mpf_neg --> _normalize1_2("_normalize1()")                               │

00:02:41 #1200 [Verbose] > │     _normalize1_2 --> from_int                                               │

00:02:41 #1201 [Verbose] > │     from_int --> mpf_div                                                     │

00:02:41 #1202 [Verbose] > │     mpf_div --> python_bitcount_4("python_bitcount()")                       │

00:02:41 #1203 [Verbose] > │     python_bitcount_4 --> _normalize1_3("_normalize1()")                     │

00:02:41 #1204 [Verbose] > │     _normalize1_3 --> make_mpc_3("make_mpc()")                               │

00:02:41 #1205 [Verbose] > │     make_mpc_3 --> final_stop["stop_trace()"]`);                             │

00:02:41 #1206 [Verbose] > │                 renderTarget.innerHTML = svg;                                │

00:02:41 #1207 [Verbose] > │                 bindFunctions?.(renderTarget);                               │

00:02:41 #1208 [Verbose] > │             }                                                                │

00:02:41 #1209 [Verbose] > │             catch (error) {                                                  │

00:02:41 #1210 [Verbose] > │                 console.log(error);                                          │

00:02:41 #1211 [Verbose] > │             }                                                                │

00:02:41 #1212 [Verbose] > │ </script>                                                                    │

00:02:41 #1213 [Verbose] > │ </div>                                                                       │

00:02:41 #1214 [Verbose] > │                                                                              │

00:02:41 #1215 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:41 #1216 [Verbose] >

00:02:41 #1217 [Verbose] > ── mermaid ─────────────────────────────────────────────────────────────────────

00:02:41 #1218 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:41 #1219 [Verbose] > │ <div class="mermaidMarkdownContainer" style="background-color:white">        │

00:02:41 #1220 [Verbose] > │ <link rel="stylesheet"                                                       │

00:02:41 #1221 [Verbose] > │ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min. │

00:02:41 #1222 [Verbose] > │ css">                                                                        │

00:02:41 #1223 [Verbose] > │ <div id="1b4bab40f05a4191925ad7dbf6f007fa"></div>                            │

00:02:41 #1224 [Verbose] > │ <script type="module">                                                       │

00:02:41 #1225 [Verbose] > │                                                                              │

00:02:41 #1226 [Verbose] > │             import mermaid from                                              │

00:02:41 #1227 [Verbose] > │ 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs';      │

00:02:41 #1228 [Verbose] > │             let renderTarget =                                               │

00:02:41 #1229 [Verbose] > │ document.getElementById('1b4bab40f05a4191925ad7dbf6f007fa');                 │

00:02:41 #1230 [Verbose] > │             try {                                                            │

00:02:41 #1231 [Verbose] > │                 const {svg, bindFunctions} = await                           │

00:02:41 #1232 [Verbose] > │ mermaid.mermaidAPI.render(                                                   │

00:02:41 #1233 [Verbose] > │                     'mermaid_1b4bab40f05a4191925ad7dbf6f007fa',              │

00:02:41 #1234 [Verbose] > │                     `graph TD                                                │

00:02:41 #1235 [Verbose] > │     zeta_rust("zeta() - Rust") --> num_traits("num-traits")                  │

00:02:41 #1236 [Verbose] > │     zeta_rust --> num_bigint("num-bigint")                                   │

00:02:41 #1237 [Verbose] > │     zeta_rust --> rust_decimal("rust_decimal for precision")                 │

00:02:41 #1238 [Verbose] > │     zeta_rust --> error_handling("Rust Error Handling")                      │

00:02:41 #1239 [Verbose] > │                                                                              │

00:02:41 #1240 [Verbose] > │     num_traits --> num_traits_usage("Use for common traits")                 │

00:02:41 #1241 [Verbose] > │     num_bigint --> bigint_operations("Arbitrary-precision arithmetic         │

00:02:41 #1242 [Verbose] > │ operations")                                                                 │

00:02:41 #1243 [Verbose] > │     rust_decimal --> decimal_operations("High-precision decimal operations") │

00:02:41 #1244 [Verbose] > │     error_handling --> result_type("Use Result<T, E> for error handling")    │

00:02:41 #1245 [Verbose] > │                                                                              │

00:02:41 #1246 [Verbose] > │     bigint_operations --> convert_rust("convert() - Rust")                   │

00:02:41 #1247 [Verbose] > │     bigint_operations --> normalize_rust("_normalize() - Rust")              │

00:02:41 #1248 [Verbose] > │                                                                              │

00:02:41 #1249 [Verbose] > │     convert_rust --> from_float_rust("from_float() - Rust")                  │

00:02:41 #1250 [Verbose] > │     from_float_rust --> from_man_exp_rust("from_man_exp() - Rust")           │

00:02:41 #1251 [Verbose] > │     from_man_exp_rust --> bitcount_rust("bitcount() - Rust")                 │

00:02:41 #1252 [Verbose] > │     bitcount_rust --> normalize_rust                                         │

00:02:41 #1253 [Verbose] > │     normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust")                    │

00:02:41 #1254 [Verbose] > │     mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust")                     │

00:02:41 #1255 [Verbose] > │     mpf_zeta_rust --> to_int_rust("to_int() - Rust")                         │

00:02:41 #1256 [Verbose] > │     to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - Rust")               │

00:02:41 #1257 [Verbose] > │                                                                              │

00:02:41 #1258 [Verbose] > │     mpf_zeta_int_rust --> borwein_coefficients_rust("borwein_coefficients()  │

00:02:41 #1259 [Verbose] > │ - Rust")                                                                     │

00:02:41 #1260 [Verbose] > │     borwein_coefficients_rust --> from_man_exp_rust_2("from_man_exp() -      │

00:02:41 #1261 [Verbose] > │ Rust")                                                                       │

00:02:41 #1262 [Verbose] > │     from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - Rust")             │

00:02:41 #1263 [Verbose] > │     bitcount_rust_2 --> normalize_rust_2("_normalize() - Rust")              │

00:02:41 #1264 [Verbose] > │     normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust")                  │

00:02:41 #1265 [Verbose] > │                                                                              │

00:02:41 #1266 [Verbose] > │     mpf_zeta_int_rust --> mpf_bernoulli_rust("mpf_bernoulli() - Rust")       │

00:02:41 #1267 [Verbose] > │     mpf_bernoulli_rust --> bernoulli_size_rust("bernoulli_size() - Rust")    │

00:02:41 #1268 [Verbose] > │     bernoulli_size_rust --> mpf_rdiv_int_rust("mpf_rdiv_int() - Rust")       │

00:02:41 #1269 [Verbose] > │     mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - Rust")               │

00:02:41 #1270 [Verbose] > │     bitcount_rust_3 --> normalize1_rust("_normalize1() - Rust")              │

00:02:41 #1271 [Verbose] > │     normalize1_rust --> from_man_exp_rust_3("from_man_exp() - Rust")         │

00:02:41 #1272 [Verbose] > │     from_man_exp_rust_3 --> normalize_rust_3("_normalize() - Rust")          │

00:02:41 #1273 [Verbose] > │     normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust")                    │

00:02:41 #1274 [Verbose] > │     mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust")                        │

00:02:41 #1275 [Verbose] > │     mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust")                        │

00:02:41 #1276 [Verbose] > │     mpf_neg_rust --> normalize1_rust_2("_normalize1() - Rust")               │

00:02:41 #1277 [Verbose] > │     normalize1_rust_2 --> from_int_rust("from_int() - Rust")                 │

00:02:41 #1278 [Verbose] > │     from_int_rust --> mpf_div_rust("mpf_div() - Rust")                       │

00:02:41 #1279 [Verbose] > │     mpf_div_rust --> bitcount_rust_4("bitcount() - Rust")                    │

00:02:41 #1280 [Verbose] > │     bitcount_rust_4 --> normalize1_rust_3("_normalize1() - Rust")            │

00:02:41 #1281 [Verbose] > │                                                                              │

00:02:41 #1282 [Verbose] > │     style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px                   │

00:02:41 #1283 [Verbose] > │     style num_traits fill:#bbf,stroke:#333,stroke-width:2px                  │

00:02:41 #1284 [Verbose] > │     style num_bigint fill:#bbf,stroke:#333,stroke-width:2px                  │

00:02:41 #1285 [Verbose] > │     style rust_decimal fill:#bbf,stroke:#333,stroke-width:2px                │

00:02:41 #1286 [Verbose] > │     style error_handling fill:#bbf,stroke:#333,stroke-width:2px              │

00:02:41 #1287 [Verbose] > │     style bigint_operations fill:#bfb,stroke:#333,stroke-width:2px           │

00:02:41 #1288 [Verbose] > │     style decimal_operations fill:#bfb,stroke:#333,stroke-width:2px          │

00:02:41 #1289 [Verbose] > │     style result_type fill:#bfb,stroke:#333,stroke-width:2px`);              │

00:02:41 #1290 [Verbose] > │                 renderTarget.innerHTML = svg;                                │

00:02:41 #1291 [Verbose] > │                 bindFunctions?.(renderTarget);                               │

00:02:41 #1292 [Verbose] > │             }                                                                │

00:02:41 #1293 [Verbose] > │             catch (error) {                                                  │

00:02:41 #1294 [Verbose] > │                 console.log(error);                                          │

00:02:41 #1295 [Verbose] > │             }                                                                │

00:02:41 #1296 [Verbose] > │ </script>                                                                    │

00:02:41 #1297 [Verbose] > │ </div>                                                                       │

00:02:41 #1298 [Verbose] > │                                                                              │

00:02:41 #1299 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:41 #1300 [Verbose] >

00:02:41 #1301 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:02:41 #1302 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:02:41 #1303 [Verbose] > │ ## tests                                                                     │

00:02:41 #1304 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:41 #1305 [Verbose] >

00:02:41 #1306 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:41 #1307 [Verbose] > inl tests () =

00:02:41 #1308 [Verbose] >     !\($'"}//"') : ()

00:02:41 #1309 [Verbose] >

00:02:41 #1310 [Verbose] >     !\($'"#[[test]] fn test_zeta_at_known_values_() { //"') : ()

00:02:41 #1311 [Verbose] >     test_zeta_at_known_values_ false

00:02:41 #1312 [Verbose] >     !\($'"} #[[test]] fn test_zeta_at_2_minus2() { //"') : ()

00:02:41 #1313 [Verbose] >     test_zeta_at_2_minus2 false

00:02:41 #1314 [Verbose] >     !\($'"} #[[test]] fn test_trivial_zero_at_negative_even___() { //"') : ()

00:02:41 #1315 [Verbose] >     test_trivial_zero_at_negative_even___ false

00:02:41 #1316 [Verbose] >     !\($'"} #[[test]] fn test_non_trivial_zero___() { //"') : ()

00:02:41 #1317 [Verbose] >     test_non_trivial_zero___ false

00:02:41 #1318 [Verbose] >     !\($'"} #[[test]] fn test_real_part_greater_than_one___() { //"') : ()

00:02:41 #1319 [Verbose] >     test_real_part_greater_than_one___ false

00:02:41 #1320 [Verbose] >     !\($'"} #[[test]] fn test_zeta_at_1___() { //"') : ()

00:02:41 #1321 [Verbose] >     test_zeta_at_1___ false

00:02:41 #1322 [Verbose] >     !\($'"} #[[test]] fn test_symmetry_across_real_axis___() { //"') : ()

00:02:41 #1323 [Verbose] >     test_symmetry_across_real_axis___ false

00:02:41 #1324 [Verbose] >     !\($'"} #[[test]] fn test_behavior_near_origin___() { //"') : ()

00:02:41 #1325 [Verbose] >     test_behavior_near_origin___ false

00:02:41 #1326 [Verbose] >     !\($'"} #[[test]] fn test_imaginary_axis() { //"') : ()

00:02:41 #1327 [Verbose] >     test_imaginary_axis false

00:02:41 #1328 [Verbose] >     !\($'"} #[[test]] fn test_critical_strip() { //"') : ()

00:02:41 #1329 [Verbose] >     test_critical_strip false

00:02:41 #1330 [Verbose] >     !\($'"} #[[test]] fn test_reflection_formula_for_specific_value() { //"') :

00:02:41 #1331 [Verbose] > ()

00:02:41 #1332 [Verbose] >     test_reflection_formula_for_specific_value false

00:02:41 #1333 [Verbose] >     !\($'"} #[[test]] fn test_euler_product_formula() { //"') : ()

00:02:41 #1334 [Verbose] >     test_euler_product_formula false

00:02:41 #1335 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-5282-8262-84e6957b7aad\main.spi

00:02:41 #1336 [Verbose] >

00:02:41 #1337 [Verbose] > ╭─[ 342.72ms - stdout ]────────────────────────────────────────────────────────╮

00:02:41 #1338 [Verbose] > │ ()                                                                           │

00:02:41 #1339 [Verbose] > │                                                                              │

00:02:41 #1340 [Verbose] > │                                                                              │

00:02:41 #1341 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:41 #1342 [Verbose] >

00:02:41 #1343 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:02:41 #1344 [Verbose] > // // rust=

00:02:41 #1345 [Verbose] >

00:02:41 #1346 [Verbose] > inl main (_args : array_base string) =

00:02:41 #1347 [Verbose] >     inl value = 1i32

00:02:41 #1348 [Verbose] >     console.write_line ($"$\"value: {!value}\"" : string)

00:02:41 #1349 [Verbose] >     0i32

00:02:41 #1350 [Verbose] >

00:02:41 #1351 [Verbose] > inl main () =

00:02:41 #1352 [Verbose] >     types ()

00:02:41 #1353 [Verbose] >     $"let tests () = !tests ()" : ()

00:02:41 #1354 [Verbose] >     $"let main args = !main args" : ()

00:02:42 #1355 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1300-5317-1722-1eb161b30cfc\main.spi

00:02:42 #1356 [Verbose] >

00:02:42 #1357 [Verbose] > ╭─[ 319.61ms - stdout ]────────────────────────────────────────────────────────╮

00:02:42 #1358 [Verbose] > │                                                                              │

00:02:42 #1359 [Verbose] > │ .fsx:                                                                        │

00:02:42 #1360 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class    │

00:02:42 #1361 [Verbose] > │ end                                                                          │

00:02:42 #1362 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> =  │

00:02:42 #1363 [Verbose] > │ class end                                                                    │

00:02:42 #1364 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end    │

00:02:42 #1365 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end     │

00:02:42 #1366 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end  │

00:02:42 #1367 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end        │

00:02:42 #1368 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> =    │

00:02:42 #1369 [Verbose] > │ class end                                                                    │

00:02:42 #1370 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = │

00:02:42 #1371 [Verbose] > │ class end                                                                    │

00:02:42 #1372 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end   │

00:02:42 #1373 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] type Mut<'T> = class end     │

00:02:42 #1374 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │

00:02:42 #1375 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&'static $0")>] type StaticRef<'T> =    │

00:02:42 #1376 [Verbose] > │ class end                                                                    │

00:02:42 #1377 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("MutCell<$0>")>] type MutCell<'T> =      │

00:02:42 #1378 [Verbose] > │ class end                                                                    │

00:02:42 #1379 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::any::Any")>] type std_any_Any =    │

00:02:42 #1380 [Verbose] > │ class end                                                                    │

00:02:42 #1381 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::cell::RefCell<$0>")>] type         │

00:02:42 #1382 [Verbose] > │ std_cell_RefCell<'T> = class end                                             │

00:02:42 #1383 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::pin::Pin<$0>")>] type              │

00:02:42 #1384 [Verbose] > │ std_pin_Pin<'T> = class end                                                  │

00:02:42 #1385 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Rc<$0>")>] type std_rc_Rc<'T>  │

00:02:42 #1386 [Verbose] > │ = class end                                                                  │

00:02:42 #1387 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::rc::Weak<$0>")>] type              │

00:02:42 #1388 [Verbose] > │ std_rc_Weak<'T> = class end                                                  │

00:02:42 #1389 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::sync::Arc<$0>")>] type             │

00:02:42 #1390 [Verbose] > │ std_sync_Arc<'T> = class end                                                 │

00:02:42 #1391 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │

00:02:42 #1392 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>] type            │

00:02:42 #1393 [Verbose] > │ base64_DecodeError = class end                                               │

00:02:42 #1394 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>] type               │

00:02:42 #1395 [Verbose] > │ borsh_io_Error = class end                                                   │

00:02:42 #1396 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>] type               │

00:02:42 #1397 [Verbose] > │ js_sys_JsString = class end                                                  │

00:02:42 #1398 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>] type              │

00:02:42 #1399 [Verbose] > │ serde_json_Error = class end                                                 │

00:02:42 #1400 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>] type              │

00:02:42 #1401 [Verbose] > │ serde_json_Value = class end                                                 │

00:02:42 #1402 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>] type      │

00:02:42 #1403 [Verbose] > │ serde_wasm_bindgen_Error = class end                                         │

00:02:42 #1404 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>] type std_ffi_OsStr  │

00:02:42 #1405 [Verbose] > │ = class end                                                                  │

00:02:42 #1406 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] type             │

00:02:42 #1407 [Verbose] > │ std_ffi_OsString = class end                                                 │

00:02:42 #1408 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::str::Utf8Error")>] type            │

00:02:42 #1409 [Verbose] > │ std_str_Utf8Error = class end                                                │

00:02:42 #1410 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │

00:02:42 #1411 [Verbose] > │ std_string_String = class end                                                │

00:02:42 #1412 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("num_complex::Complex<$0>")>] type       │

00:02:42 #1413 [Verbose] > │ num_complex_Complex<'T> = class end                                          │

00:02:42 #1414 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::types::PyModule")>] type          │

00:02:42 #1415 [Verbose] > │ pyo3_types_PyModule = class end                                              │

00:02:42 #1416 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Bound<$0>")>] type pyo3_Bound<'T> │

00:02:42 #1417 [Verbose] > │ = class end                                                                  │

00:02:42 #1418 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] type pyo3_Python =     │

00:02:42 #1419 [Verbose] > │ class end                                                                    │

00:02:42 #1420 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyAny")>] type pyo3_PyAny = class │

00:02:42 #1421 [Verbose] > │ end                                                                          │

00:02:42 #1422 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("pyo3::PyErr")>] type pyo3_PyErr = class │

00:02:42 #1423 [Verbose] > │ end                                                                          │

00:02:42 #1424 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () ");                                   │

00:02:42 #1425 [Verbose] > │ use pyo3::prelude::PyAnyMethods;                                             │

00:02:42 #1426 [Verbose] > │ //"                                                                          │

00:02:42 #1427 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:02:42 #1428 [Verbose] > │ and Mut1 = {mutable l0 : int32; mutable l1 : string}                         │

00:02:42 #1429 [Verbose] > │ and Mut2 = {mutable l0 : int32; mutable l1 : num_complex_Complex<float>}     │

00:02:42 #1430 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:02:42 #1431 [Verbose] > │     | US0_0 of f0_0 : num_complex_Complex<float>                             │

00:02:42 #1432 [Verbose] > │     | US0_1                                                                  │

00:02:42 #1433 [Verbose] > │ and UH0 =                                                                    │

00:02:42 #1434 [Verbose] > │     | UH0_0                                                                  │

00:02:42 #1435 [Verbose] > │     | UH0_1 of float * UH0                                                   │

00:02:42 #1436 [Verbose] > │ and Mut3 = {mutable l0 : int32; mutable l1 : float}                          │

00:02:42 #1437 [Verbose] > │ let rec method2 (v0 : int32, v1 : Mut0) : bool =                             │

00:02:42 #1438 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:42 #1439 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:42 #1440 [Verbose] > │     v3                                                                       │

00:02:42 #1441 [Verbose] > │ and method3 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │

00:02:42 #1442 [Verbose] > │     v0                                                                       │

00:02:42 #1443 [Verbose] > │ and method6 (v0 : int32, v1 : Mut1) : bool =                                 │

00:02:42 #1444 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:42 #1445 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:42 #1446 [Verbose] > │     v3                                                                       │

00:02:42 #1447 [Verbose] > │ and method5 (v0 : (string [])) : string =                                    │

00:02:42 #1448 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:02:42 #1449 [Verbose] > │     let v2 : string = ""                                                     │

00:02:42 #1450 [Verbose] > │     let v3 : Mut1 = {l0 = 0; l1 = v2} : Mut1                                 │

00:02:42 #1451 [Verbose] > │     while method6(v1, v3) do                                                 │

00:02:42 #1452 [Verbose] > │         let v5 : int32 = v3.l0                                               │

00:02:42 #1453 [Verbose] > │         let v6 : string = v3.l1                                              │

00:02:42 #1454 [Verbose] > │         let v7 : string = v0.[int v5]                                        │

00:02:42 #1455 [Verbose] > │         let v8 : string = "\n"                                               │

00:02:42 #1456 [Verbose] > │         let v9 : string = v6 + v7 + v8 + ""                                  │

00:02:42 #1457 [Verbose] > │         let v10 : int32 = v5 + 1                                             │

00:02:42 #1458 [Verbose] > │         v3.l0 <- v10                                                         │

00:02:42 #1459 [Verbose] > │         v3.l1 <- v9                                                          │

00:02:42 #1460 [Verbose] > │         ()                                                                   │

00:02:42 #1461 [Verbose] > │     let v11 : string = v3.l1                                                 │

00:02:42 #1462 [Verbose] > │     v11                                                                      │

00:02:42 #1463 [Verbose] > │ and method7 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │

00:02:42 #1464 [Verbose] > │     v0                                                                       │

00:02:42 #1465 [Verbose] > │ and method8 (v0 : num_complex_Complex<float>) : num_complex_Complex<float> = │

00:02:42 #1466 [Verbose] > │     v0                                                                       │

00:02:42 #1467 [Verbose] > │ and method9 (v0 : pyo3_Python) : pyo3_Python =                               │

00:02:42 #1468 [Verbose] > │     v0                                                                       │

00:02:42 #1469 [Verbose] > │ and closure1 () (v0 : pyo3_PyErr) : std_string_String =                      │

00:02:42 #1470 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │

00:02:42 #1471 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │

00:02:42 #1472 [Verbose] > │     v2                                                                       │

00:02:42 #1473 [Verbose] > │ and method10 () : (pyo3_PyErr -> std_string_String) =                        │

00:02:42 #1474 [Verbose] > │     closure1()                                                               │

00:02:42 #1475 [Verbose] > │ and method11 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr>) :    │

00:02:42 #1476 [Verbose] > │ Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =                        │

00:02:42 #1477 [Verbose] > │     v0                                                                       │

00:02:42 #1478 [Verbose] > │ and method12 (v0 : Result<pyo3_Bound<pyo3_types_PyModule>,                   │

00:02:42 #1479 [Verbose] > │ std_string_String>) : Result<pyo3_Bound<pyo3_types_PyModule>,                │

00:02:42 #1480 [Verbose] > │ std_string_String> =                                                         │

00:02:42 #1481 [Verbose] > │     v0                                                                       │

00:02:42 #1482 [Verbose] > │ and method13 () : string =                                                   │

00:02:42 #1483 [Verbose] > │     let v0 : string = "fn"                                                   │

00:02:42 #1484 [Verbose] > │     v0                                                                       │

00:02:42 #1485 [Verbose] > │ and method14 (v0 : pyo3_Bound<pyo3_types_PyModule>) :                        │

00:02:42 #1486 [Verbose] > │ pyo3_Bound<pyo3_types_PyModule> =                                            │

00:02:42 #1487 [Verbose] > │     v0                                                                       │

00:02:42 #1488 [Verbose] > │ and closure2 () (v0 : pyo3_PyErr) : std_string_String =                      │

00:02:42 #1489 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │

00:02:42 #1490 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │

00:02:42 #1491 [Verbose] > │     v2                                                                       │

00:02:42 #1492 [Verbose] > │ and method15 () : (pyo3_PyErr -> std_string_String) =                        │

00:02:42 #1493 [Verbose] > │     closure2()                                                               │

00:02:42 #1494 [Verbose] > │ and method16 (v0 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr>) :             │

00:02:42 #1495 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                                 │

00:02:42 #1496 [Verbose] > │     v0                                                                       │

00:02:42 #1497 [Verbose] > │ and method17 (v0 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String>) :      │

00:02:42 #1498 [Verbose] > │ Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =                          │

00:02:42 #1499 [Verbose] > │     v0                                                                       │

00:02:42 #1500 [Verbose] > │ and method18 (v0 : (bool * (float * float))) : (bool * (float * float)) =    │

00:02:42 #1501 [Verbose] > │     v0                                                                       │

00:02:42 #1502 [Verbose] > │ and method19 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> =        │

00:02:42 #1503 [Verbose] > │     v0                                                                       │

00:02:42 #1504 [Verbose] > │ and closure3 () (v0 : pyo3_PyErr) : std_string_String =                      │

00:02:42 #1505 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │

00:02:42 #1506 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │

00:02:42 #1507 [Verbose] > │     v2                                                                       │

00:02:42 #1508 [Verbose] > │ and method20 () : (pyo3_PyErr -> std_string_String) =                        │

00:02:42 #1509 [Verbose] > │     closure3()                                                               │

00:02:42 #1510 [Verbose] > │ and method21 (v0 : pyo3_Bound<pyo3_PyAny>) : pyo3_Bound<pyo3_PyAny> =        │

00:02:42 #1511 [Verbose] > │     v0                                                                       │

00:02:42 #1512 [Verbose] > │ and closure4 () (v0 : pyo3_PyErr) : std_string_String =                      │

00:02:42 #1513 [Verbose] > │     let v1 : string = @$"format!(""{{}}"", $0)"                              │

00:02:42 #1514 [Verbose] > │     let v2 : std_string_String = Fable.Core.RustInterop.emitRustExpr v0 v1   │

00:02:42 #1515 [Verbose] > │     v2                                                                       │

00:02:42 #1516 [Verbose] > │ and method22 () : (pyo3_PyErr -> std_string_String) =                        │

00:02:42 #1517 [Verbose] > │     closure4()                                                               │

00:02:42 #1518 [Verbose] > │ and method23 (v0 : Result<struct (float * float), pyo3_PyErr>) :             │

00:02:42 #1519 [Verbose] > │ Result<struct (float * float), pyo3_PyErr> =                                 │

00:02:42 #1520 [Verbose] > │     v0                                                                       │

00:02:42 #1521 [Verbose] > │ and method4 (v0 : pyo3_Python, v1 : string, v2 : num_complex_Complex<float>) │

00:02:42 #1522 [Verbose] > │ : Result<num_complex_Complex<float>, std_string_String> =                    │

00:02:42 #1523 [Verbose] > │     let v3 : string = $"import sys"                                          │

00:02:42 #1524 [Verbose] > │     let v4 : string = $"import traceback"                                    │

00:02:42 #1525 [Verbose] > │     let v5 : string = $"import re"                                           │

00:02:42 #1526 [Verbose] > │     let v6 : string = $"count = 0"                                           │

00:02:42 #1527 [Verbose] > │     let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[        │

00:02:42 #1528 [Verbose] > │ 0-9a-fA-F]+')"                                                               │

00:02:42 #1529 [Verbose] > │     let v8 : string = $"def trace_calls(frame, event, arg):"                 │

00:02:42 #1530 [Verbose] > │     let v9 : string = $"    global count"                                    │

00:02:42 #1531 [Verbose] > │     let v10 : string = $"    count += 1"                                     │

00:02:42 #1532 [Verbose] > │     let v11 : string = $"    if count < 200:"                                │

00:02:42 #1533 [Verbose] > │     let v12 : string = $"        try:"                                       │

00:02:42 #1534 [Verbose] > │     let v13 : string = $"            args = {{ k: v for k, v in              │

00:02:42 #1535 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [  │

00:02:42 #1536 [Verbose] > │ 'ctx'] and not callable(v) }}"                                               │

00:02:42 #1537 [Verbose] > │     let v14 : string = $"            args_str = ', '.join([                  │

00:02:42 #1538 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │

00:02:42 #1539 [Verbose] > │ in args.items() ])"                                                          │

00:02:42 #1540 [Verbose] > │     let v15 : string = "zeta_"                                               │

00:02:42 #1541 [Verbose] > │     let v16 : string = $"            print(f\"{{event}}({v15}) /             │

00:02:42 #1542 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} /          │

00:02:42 #1543 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename:                           │

00:02:42 #1544 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno:   │

00:02:42 #1545 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} /                │

00:02:42 #1546 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else                │

00:02:42 #1547 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg:         │

00:02:42 #1548 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)"   │

00:02:42 #1549 [Verbose] > │     let v17 : string = $"        except ValueError as e:"                    │

00:02:42 #1550 [Verbose] > │     let v18 : string = $"            print(f'{v15} / e: {{e}}', flush=True)" │

00:02:42 #1551 [Verbose] > │     let v19 : string = $"        return trace_calls"                         │

00:02:42 #1552 [Verbose] > │     let v20 : string = $"import mpmath"                                      │

00:02:42 #1553 [Verbose] > │     let v21 : string = $"def fn(log, s):"                                    │

00:02:42 #1554 [Verbose] > │     let v22 : string = $"    global count"                                   │

00:02:42 #1555 [Verbose] > │     let v23 : string = $"    if log:"                                        │

00:02:42 #1556 [Verbose] > │     let v24 : string = $"        print(f'{v15} / s: {{s}} / count:           │

00:02:42 #1557 [Verbose] > │ {{count}}', flush=True)"                                                     │

00:02:42 #1558 [Verbose] > │     let v25 : string = $"    s = complex(*s)"                                │

00:02:42 #1559 [Verbose] > │     let v26 : string = $"    try:"                                           │

00:02:42 #1560 [Verbose] > │     let v27 : string = $"        if log: sys.settrace(trace_calls)"          │

00:02:42 #1561 [Verbose] > │     let v28 : string = $"        if log:"                                    │

00:02:42 #1562 [Verbose] > │     let v29 : string = $"            sys.settrace(None)"                     │

00:02:42 #1563 [Verbose] > │     let v30 : string = $"            print(f'{v15} / result: {{s}} / count:  │

00:02:42 #1564 [Verbose] > │ {{count}}', flush=True)"                                                     │

00:02:42 #1565 [Verbose] > │     let v31 : string = $"    except ValueError as e:"                        │

00:02:42 #1566 [Verbose] > │     let v32 : string = $"        if s.real == 1:"                            │

00:02:42 #1567 [Verbose] > │     let v33 : string = $"            s = complex(float('inf'), 0)"           │

00:02:42 #1568 [Verbose] > │     let v34 : string = $"    return (s.real, s.imag)"                        │

00:02:42 #1569 [Verbose] > │     let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12;     │

00:02:42 #1570 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1;    │

00:02:42 #1571 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|]                                          │

00:02:42 #1572 [Verbose] > │     let v36 : string = method5(v35)                                          │

00:02:42 #1573 [Verbose] > │     let v37 : num_complex_Complex<float> = method7(v2)                       │

00:02:42 #1574 [Verbose] > │     let v38 : string = "v37.re"                                              │

00:02:42 #1575 [Verbose] > │     let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38             │

00:02:42 #1576 [Verbose] > │     let v40 : num_complex_Complex<float> = method8(v2)                       │

00:02:42 #1577 [Verbose] > │     let v41 : string = "v40.im"                                              │

00:02:42 #1578 [Verbose] > │     let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41             │

00:02:42 #1579 [Verbose] > │     let v43 : (float * float) = v39, v42                                     │

00:02:42 #1580 [Verbose] > │     let v44 : (bool * (float * float)) = false, v43                          │

00:02:42 #1581 [Verbose] > │     let v45 : pyo3_Python = method9(v0)                                      │

00:02:42 #1582 [Verbose] > │     let v46 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:02:42 #1583 [Verbose] > │     let v47 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v36 v46         │

00:02:42 #1584 [Verbose] > │     let v48 : string = "pyo3::types::PyModule::from_code_bound(v45, v47,     │

00:02:42 #1585 [Verbose] > │ \"\", \"\")"                                                                 │

00:02:42 #1586 [Verbose] > │     let v49 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │

00:02:42 #1587 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48                                   │

00:02:42 #1588 [Verbose] > │     let v50 : (pyo3_PyErr -> std_string_String) = method10()                 │

00:02:42 #1589 [Verbose] > │     let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │

00:02:42 #1590 [Verbose] > │ method11(v49)                                                                │

00:02:42 #1591 [Verbose] > │     let v52 : string = "v51.map_err(|x| v50(x))"                             │

00:02:42 #1592 [Verbose] > │     let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │

00:02:42 #1593 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v52                                   │

00:02:42 #1594 [Verbose] > │     let v54 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │

00:02:42 #1595 [Verbose] > │ method12(v53)                                                                │

00:02:42 #1596 [Verbose] > │     let v55 : string = "v54.unwrap()"                                        │

00:02:42 #1597 [Verbose] > │     let v56 : pyo3_Bound<pyo3_types_PyModule> =                              │

00:02:42 #1598 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v55                                   │

00:02:42 #1599 [Verbose] > │     let v57 : string = method13()                                            │

00:02:42 #1600 [Verbose] > │     let v58 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:02:42 #1601 [Verbose] > │     let v59 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v57 v58         │

00:02:42 #1602 [Verbose] > │     let v60 : pyo3_Bound<pyo3_types_PyModule> = method14(v56)                │

00:02:42 #1603 [Verbose] > │     let v61 : string = "v60.getattr(v59)"                                    │

00:02:42 #1604 [Verbose] > │     let v62 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │

00:02:42 #1605 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v61                                   │

00:02:42 #1606 [Verbose] > │     let v63 : (pyo3_PyErr -> std_string_String) = method15()                 │

00:02:42 #1607 [Verbose] > │     let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v62)     │

00:02:42 #1608 [Verbose] > │     let v65 : string = "v64.map_err(|x| v63(x))"                             │

00:02:42 #1609 [Verbose] > │     let v66 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │

00:02:42 #1610 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v65                                   │

00:02:42 #1611 [Verbose] > │     let v67 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │

00:02:42 #1612 [Verbose] > │ method17(v66)                                                                │

00:02:42 #1613 [Verbose] > │     let v68 : string = "v67.unwrap()"                                        │

00:02:42 #1614 [Verbose] > │     let v69 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #1615 [Verbose] > │ () v68                                                                       │

00:02:42 #1616 [Verbose] > │     let v70 : (bool * (float * float)) = method18(v44)                       │

00:02:42 #1617 [Verbose] > │     let v71 : pyo3_Bound<pyo3_PyAny> = method19(v69)                         │

00:02:42 #1618 [Verbose] > │     let v72 : string = "pyo3::prelude::PyAnyMethods::call(&v71, ((*v70).0,   │

00:02:42 #1619 [Verbose] > │ *(*v70).1), None)"                                                           │

00:02:42 #1620 [Verbose] > │     let v73 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │

00:02:42 #1621 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v72                                   │

00:02:42 #1622 [Verbose] > │     let v74 : (pyo3_PyErr -> std_string_String) = method20()                 │

00:02:42 #1623 [Verbose] > │     let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v73)     │

00:02:42 #1624 [Verbose] > │     let v76 : string = "v75.map_err(|x| v74(x))"                             │

00:02:42 #1625 [Verbose] > │     let v77 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │

00:02:42 #1626 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v76                                   │

00:02:42 #1627 [Verbose] > │     let v78 : string = "v77?"                                                │

00:02:42 #1628 [Verbose] > │     let v79 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #1629 [Verbose] > │ () v78                                                                       │

00:02:42 #1630 [Verbose] > │     let v80 : pyo3_Bound<pyo3_PyAny> = method21(v79)                         │

00:02:42 #1631 [Verbose] > │     let v81 : string = "v80.extract()"                                       │

00:02:42 #1632 [Verbose] > │     let v82 : Result<struct (float * float), pyo3_PyErr> =                   │

00:02:42 #1633 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v81                                   │

00:02:42 #1634 [Verbose] > │     let v83 : (pyo3_PyErr -> std_string_String) = method22()                 │

00:02:42 #1635 [Verbose] > │     let v84 : Result<struct (float * float), pyo3_PyErr> = method23(v82)     │

00:02:42 #1636 [Verbose] > │     let v85 : string = "v84.map_err(|x| v83(x))"                             │

00:02:42 #1637 [Verbose] > │     let v86 : Result<struct (float * float), std_string_String> =            │

00:02:42 #1638 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v85                                   │

00:02:42 #1639 [Verbose] > │     let v87 : string = "v86?"                                                │

00:02:42 #1640 [Verbose] > │     let struct (v88 : float, v89 : float) =                                  │

00:02:42 #1641 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87                                   │

00:02:42 #1642 [Verbose] > │     let v90 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:42 #1643 [Verbose] > │     let v91 : num_complex_Complex<float> =                                   │

00:02:42 #1644 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v88, v89) v90                    │

00:02:42 #1645 [Verbose] > │     let v92 : Result<num_complex_Complex<float>, std_string_String> = Ok v91 │

00:02:42 #1646 [Verbose] > │     v92                                                                      │

00:02:42 #1647 [Verbose] > │ and method25 (v0 : Mut0) : bool =                                            │

00:02:42 #1648 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:02:42 #1649 [Verbose] > │     let v2 : bool = v1 < 10000                                               │

00:02:42 #1650 [Verbose] > │     v2                                                                       │

00:02:42 #1651 [Verbose] > │ and method26 (v0 : int32, v1 : Mut2) : bool =                                │

00:02:42 #1652 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:42 #1653 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:42 #1654 [Verbose] > │     v3                                                                       │

00:02:42 #1655 [Verbose] > │ and method27 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │

00:02:42 #1656 [Verbose] > │ =                                                                            │

00:02:42 #1657 [Verbose] > │     v0                                                                       │

00:02:42 #1658 [Verbose] > │ and method28 (v0 : num_complex_Complex<float>) : num_complex_Complex<float>  │

00:02:42 #1659 [Verbose] > │ =                                                                            │

00:02:42 #1660 [Verbose] > │     v0                                                                       │

00:02:42 #1661 [Verbose] > │ and method29 (v0 : pyo3_Python, v1 : string, v2 :                            │

00:02:42 #1662 [Verbose] > │ num_complex_Complex<float>) : Result<num_complex_Complex<float>,             │

00:02:42 #1663 [Verbose] > │ std_string_String> =                                                         │

00:02:42 #1664 [Verbose] > │     let v3 : string = $"import sys"                                          │

00:02:42 #1665 [Verbose] > │     let v4 : string = $"import traceback"                                    │

00:02:42 #1666 [Verbose] > │     let v5 : string = $"import re"                                           │

00:02:42 #1667 [Verbose] > │     let v6 : string = $"count = 0"                                           │

00:02:42 #1668 [Verbose] > │     let v7 : string = $"memory_address_pattern = re.compile(r' at 0x[        │

00:02:42 #1669 [Verbose] > │ 0-9a-fA-F]+')"                                                               │

00:02:42 #1670 [Verbose] > │     let v8 : string = $"def trace_calls(frame, event, arg):"                 │

00:02:42 #1671 [Verbose] > │     let v9 : string = $"    global count"                                    │

00:02:42 #1672 [Verbose] > │     let v10 : string = $"    count += 1"                                     │

00:02:42 #1673 [Verbose] > │     let v11 : string = $"    if count < 200:"                                │

00:02:42 #1674 [Verbose] > │     let v12 : string = $"        try:"                                       │

00:02:42 #1675 [Verbose] > │     let v13 : string = $"            args = {{ k: v for k, v in              │

00:02:42 #1676 [Verbose] > │ frame.f_locals.items() if frame.f_code.co_name != 'make_mpc' and k not in [  │

00:02:42 #1677 [Verbose] > │ 'ctx'] and not callable(v) }}"                                               │

00:02:42 #1678 [Verbose] > │     let v14 : string = $"            args_str = ', '.join([                  │

00:02:42 #1679 [Verbose] > │ f\"{{k}}={{re.sub(memory_address_pattern, ' at 0x<?>', repr(v))}}\" for k, v │

00:02:42 #1680 [Verbose] > │ in args.items() ])"                                                          │

00:02:42 #1681 [Verbose] > │     let v15 : string = "gamma_"                                              │

00:02:42 #1682 [Verbose] > │     let v16 : string = $"            print(f\"{{event}}({v15}) /             │

00:02:42 #1683 [Verbose] > │ f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} /          │

00:02:42 #1684 [Verbose] > │ f_lineno: {{frame.f_lineno}} / f_code.co_filename:                           │

00:02:42 #1685 [Verbose] > │ {{frame.f_code.co_filename.split('site-packages')[-1]}} / f_back.f_lineno:   │

00:02:42 #1686 [Verbose] > │ {{ '' if frame.f_back is None else frame.f_back.f_lineno }} /                │

00:02:42 #1687 [Verbose] > │ f_back.f_code.co_filename: {{ '' if frame.f_back is None else                │

00:02:42 #1688 [Verbose] > │ frame.f_back.f_code.co_filename.split('site-packages')[-1] }} / arg:         │

00:02:42 #1689 [Verbose] > │ {{re.sub(memory_address_pattern, ' at 0x<?>', repr(arg))}}\", flush=True)"   │

00:02:42 #1690 [Verbose] > │     let v17 : string = $"        except ValueError as e:"                    │

00:02:42 #1691 [Verbose] > │     let v18 : string = $"            print(f'{v15} / e: {{e}}', flush=True)" │

00:02:42 #1692 [Verbose] > │     let v19 : string = $"        return trace_calls"                         │

00:02:42 #1693 [Verbose] > │     let v20 : string = $"import mpmath"                                      │

00:02:42 #1694 [Verbose] > │     let v21 : string = $"def fn(log, s):"                                    │

00:02:42 #1695 [Verbose] > │     let v22 : string = $"    global count"                                   │

00:02:42 #1696 [Verbose] > │     let v23 : string = $"    if log:"                                        │

00:02:42 #1697 [Verbose] > │     let v24 : string = $"        print(f'{v15} / s: {{s}} / count:           │

00:02:42 #1698 [Verbose] > │ {{count}}', flush=True)"                                                     │

00:02:42 #1699 [Verbose] > │     let v25 : string = $"    s = complex(*s)"                                │

00:02:42 #1700 [Verbose] > │     let v26 : string = $"    try:"                                           │

00:02:42 #1701 [Verbose] > │     let v27 : string = $"        if log: sys.settrace(trace_calls)"          │

00:02:42 #1702 [Verbose] > │     let v28 : string = $"        if log:"                                    │

00:02:42 #1703 [Verbose] > │     let v29 : string = $"            sys.settrace(None)"                     │

00:02:42 #1704 [Verbose] > │     let v30 : string = $"            print(f'{v15} / result: {{s}} / count:  │

00:02:42 #1705 [Verbose] > │ {{count}}', flush=True)"                                                     │

00:02:42 #1706 [Verbose] > │     let v31 : string = $"    except ValueError as e:"                        │

00:02:42 #1707 [Verbose] > │     let v32 : string = $"        if s.real == 1:"                            │

00:02:42 #1708 [Verbose] > │     let v33 : string = $"            s = complex(float('inf'), 0)"           │

00:02:42 #1709 [Verbose] > │     let v34 : string = $"    return (s.real, s.imag)"                        │

00:02:42 #1710 [Verbose] > │     let v35 : (string []) = [|v3; v4; v5; v6; v7; v8; v9; v10; v11; v12;     │

00:02:42 #1711 [Verbose] > │ v13; v14; v16; v17; v18; v19; v20; v21; v22; v23; v24; v25; v26; v27; v1;    │

00:02:42 #1712 [Verbose] > │ v28; v29; v30; v31; v32; v33; v34|]                                          │

00:02:42 #1713 [Verbose] > │     let v36 : string = method5(v35)                                          │

00:02:42 #1714 [Verbose] > │     let v37 : num_complex_Complex<float> = method7(v2)                       │

00:02:42 #1715 [Verbose] > │     let v38 : string = "v37.re"                                              │

00:02:42 #1716 [Verbose] > │     let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38             │

00:02:42 #1717 [Verbose] > │     let v40 : num_complex_Complex<float> = method8(v2)                       │

00:02:42 #1718 [Verbose] > │     let v41 : string = "v40.im"                                              │

00:02:42 #1719 [Verbose] > │     let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41             │

00:02:42 #1720 [Verbose] > │     let v43 : (float * float) = v39, v42                                     │

00:02:42 #1721 [Verbose] > │     let v44 : (bool * (float * float)) = false, v43                          │

00:02:42 #1722 [Verbose] > │     let v45 : pyo3_Python = method9(v0)                                      │

00:02:42 #1723 [Verbose] > │     let v46 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:02:42 #1724 [Verbose] > │     let v47 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v36 v46         │

00:02:42 #1725 [Verbose] > │     let v48 : string = "pyo3::types::PyModule::from_code_bound(v45, v47,     │

00:02:42 #1726 [Verbose] > │ \"\", \"\")"                                                                 │

00:02:42 #1727 [Verbose] > │     let v49 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │

00:02:42 #1728 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48                                   │

00:02:42 #1729 [Verbose] > │     let v50 : (pyo3_PyErr -> std_string_String) = method10()                 │

00:02:42 #1730 [Verbose] > │     let v51 : Result<pyo3_Bound<pyo3_types_PyModule>, pyo3_PyErr> =          │

00:02:42 #1731 [Verbose] > │ method11(v49)                                                                │

00:02:42 #1732 [Verbose] > │     let v52 : string = "v51.map_err(|x| v50(x))"                             │

00:02:42 #1733 [Verbose] > │     let v53 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │

00:02:42 #1734 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v52                                   │

00:02:42 #1735 [Verbose] > │     let v54 : Result<pyo3_Bound<pyo3_types_PyModule>, std_string_String> =   │

00:02:42 #1736 [Verbose] > │ method12(v53)                                                                │

00:02:42 #1737 [Verbose] > │     let v55 : string = "v54.unwrap()"                                        │

00:02:42 #1738 [Verbose] > │     let v56 : pyo3_Bound<pyo3_types_PyModule> =                              │

00:02:42 #1739 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v55                                   │

00:02:42 #1740 [Verbose] > │     let v57 : string = method13()                                            │

00:02:42 #1741 [Verbose] > │     let v58 : string = "fable_library_rust::String_::LrcStr::as_str(&$0)"    │

00:02:42 #1742 [Verbose] > │     let v59 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v57 v58         │

00:02:42 #1743 [Verbose] > │     let v60 : pyo3_Bound<pyo3_types_PyModule> = method14(v56)                │

00:02:42 #1744 [Verbose] > │     let v61 : string = "v60.getattr(v59)"                                    │

00:02:42 #1745 [Verbose] > │     let v62 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │

00:02:42 #1746 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v61                                   │

00:02:42 #1747 [Verbose] > │     let v63 : (pyo3_PyErr -> std_string_String) = method15()                 │

00:02:42 #1748 [Verbose] > │     let v64 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v62)     │

00:02:42 #1749 [Verbose] > │     let v65 : string = "v64.map_err(|x| v63(x))"                             │

00:02:42 #1750 [Verbose] > │     let v66 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │

00:02:42 #1751 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v65                                   │

00:02:42 #1752 [Verbose] > │     let v67 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │

00:02:42 #1753 [Verbose] > │ method17(v66)                                                                │

00:02:42 #1754 [Verbose] > │     let v68 : string = "v67.unwrap()"                                        │

00:02:42 #1755 [Verbose] > │     let v69 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #1756 [Verbose] > │ () v68                                                                       │

00:02:42 #1757 [Verbose] > │     let v70 : (bool * (float * float)) = method18(v44)                       │

00:02:42 #1758 [Verbose] > │     let v71 : pyo3_Bound<pyo3_PyAny> = method19(v69)                         │

00:02:42 #1759 [Verbose] > │     let v72 : string = "pyo3::prelude::PyAnyMethods::call(&v71, ((*v70).0,   │

00:02:42 #1760 [Verbose] > │ *(*v70).1), None)"                                                           │

00:02:42 #1761 [Verbose] > │     let v73 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> =                   │

00:02:42 #1762 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v72                                   │

00:02:42 #1763 [Verbose] > │     let v74 : (pyo3_PyErr -> std_string_String) = method20()                 │

00:02:42 #1764 [Verbose] > │     let v75 : Result<pyo3_Bound<pyo3_PyAny>, pyo3_PyErr> = method16(v73)     │

00:02:42 #1765 [Verbose] > │     let v76 : string = "v75.map_err(|x| v74(x))"                             │

00:02:42 #1766 [Verbose] > │     let v77 : Result<pyo3_Bound<pyo3_PyAny>, std_string_String> =            │

00:02:42 #1767 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v76                                   │

00:02:42 #1768 [Verbose] > │     let v78 : string = "v77?"                                                │

00:02:42 #1769 [Verbose] > │     let v79 : pyo3_Bound<pyo3_PyAny> = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #1770 [Verbose] > │ () v78                                                                       │

00:02:42 #1771 [Verbose] > │     let v80 : pyo3_Bound<pyo3_PyAny> = method21(v79)                         │

00:02:42 #1772 [Verbose] > │     let v81 : string = "v80.extract()"                                       │

00:02:42 #1773 [Verbose] > │     let v82 : Result<struct (float * float), pyo3_PyErr> =                   │

00:02:42 #1774 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v81                                   │

00:02:42 #1775 [Verbose] > │     let v83 : (pyo3_PyErr -> std_string_String) = method22()                 │

00:02:42 #1776 [Verbose] > │     let v84 : Result<struct (float * float), pyo3_PyErr> = method23(v82)     │

00:02:42 #1777 [Verbose] > │     let v85 : string = "v84.map_err(|x| v83(x))"                             │

00:02:42 #1778 [Verbose] > │     let v86 : Result<struct (float * float), std_string_String> =            │

00:02:42 #1779 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v85                                   │

00:02:42 #1780 [Verbose] > │     let v87 : string = "v86?"                                                │

00:02:42 #1781 [Verbose] > │     let struct (v88 : float, v89 : float) =                                  │

00:02:42 #1782 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v87                                   │

00:02:42 #1783 [Verbose] > │     let v90 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:42 #1784 [Verbose] > │     let v91 : num_complex_Complex<float> =                                   │

00:02:42 #1785 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v88, v89) v90                    │

00:02:42 #1786 [Verbose] > │     let v92 : Result<num_complex_Complex<float>, std_string_String> = Ok v91 │

00:02:42 #1787 [Verbose] > │     v92                                                                      │

00:02:42 #1788 [Verbose] > │ and closure5 () (v0 : num_complex_Complex<float>) : US0 =                    │

00:02:42 #1789 [Verbose] > │     US0_0(v0)                                                                │

00:02:42 #1790 [Verbose] > │ and method30 () : (num_complex_Complex<float> -> US0) =                      │

00:02:42 #1791 [Verbose] > │     closure5()                                                               │

00:02:42 #1792 [Verbose] > │ and method24 (v0 : pyo3_Python, v1 : num_complex_Complex<float>) :           │

00:02:42 #1793 [Verbose] > │ num_complex_Complex<float> =                                                 │

00:02:42 #1794 [Verbose] > │     let v2 : string = "println!(\"zeta / count: {:?} / s: {:?}\", 0, $0)"    │

00:02:42 #1795 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr v1 v2                                │

00:02:42 #1796 [Verbose] > │     let v3 : num_complex_Complex<float> = method7(v1)                        │

00:02:42 #1797 [Verbose] > │     let v4 : string = "v3.re"                                                │

00:02:42 #1798 [Verbose] > │     let v5 : float = Fable.Core.RustInterop.emitRustExpr () v4               │

00:02:42 #1799 [Verbose] > │     let v6 : bool = v5 > 1.0                                                 │

00:02:42 #1800 [Verbose] > │     if v6 then                                                               │

00:02:42 #1801 [Verbose] > │         let v7 : string = "num_complex::Complex::new($0, $1)"                │

00:02:42 #1802 [Verbose] > │         let v8 : num_complex_Complex<float> =                                │

00:02:42 #1803 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v7                     │

00:02:42 #1804 [Verbose] > │         let v9 : (int32 []) = Array.zeroCreate<int32> (10000)                │

00:02:42 #1805 [Verbose] > │         let v10 : Mut0 = {l0 = 0} : Mut0                                     │

00:02:42 #1806 [Verbose] > │         while method25(v10) do                                               │

00:02:42 #1807 [Verbose] > │             let v12 : int32 = v10.l0                                         │

00:02:42 #1808 [Verbose] > │             v9.[int v12] <- v12                                              │

00:02:42 #1809 [Verbose] > │             let v13 : int32 = v12 + 1                                        │

00:02:42 #1810 [Verbose] > │             v10.l0 <- v13                                                    │

00:02:42 #1811 [Verbose] > │             ()                                                               │

00:02:42 #1812 [Verbose] > │         let v14 : int32 = v9.Length                                          │

00:02:42 #1813 [Verbose] > │         let v15 : Mut2 = {l0 = 0; l1 = v8} : Mut2                            │

00:02:42 #1814 [Verbose] > │         while method26(v14, v15) do                                          │

00:02:42 #1815 [Verbose] > │             let v17 : int32 = v15.l0                                         │

00:02:42 #1816 [Verbose] > │             let v18 : num_complex_Complex<float> = v15.l1                    │

00:02:42 #1817 [Verbose] > │             let v19 : int32 = v9.[int v17]                                   │

00:02:42 #1818 [Verbose] > │             let v20 : string = "num_complex::Complex::new($0, $1)"           │

00:02:42 #1819 [Verbose] > │             let v21 : num_complex_Complex<float> =                           │

00:02:42 #1820 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v20                    │

00:02:42 #1821 [Verbose] > │             let v22 : float = float v19                                      │

00:02:42 #1822 [Verbose] > │             let v23 : string = "num_complex::Complex::new($0, $1)"           │

00:02:42 #1823 [Verbose] > │             let v24 : num_complex_Complex<float> =                           │

00:02:42 #1824 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v22, 0.0) v23                    │

00:02:42 #1825 [Verbose] > │             let v25 : num_complex_Complex<float> = method27(v24)             │

00:02:42 #1826 [Verbose] > │             let v26 : num_complex_Complex<float> = method28(v1)              │

00:02:42 #1827 [Verbose] > │             let v27 : string = "num_complex::Complex::powc(v25, v26)"        │

00:02:42 #1828 [Verbose] > │             let v28 : num_complex_Complex<float> =                           │

00:02:42 #1829 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v27                                   │

00:02:42 #1830 [Verbose] > │             let v29 : string = "v21 / v28"                                   │

00:02:42 #1831 [Verbose] > │             let v30 : num_complex_Complex<float> =                           │

00:02:42 #1832 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v29                                   │

00:02:42 #1833 [Verbose] > │             let v31 : string = "v18 + v30"                                   │

00:02:42 #1834 [Verbose] > │             let v32 : num_complex_Complex<float> =                           │

00:02:42 #1835 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v31                                   │

00:02:42 #1836 [Verbose] > │             let v33 : int32 = v17 + 1                                        │

00:02:42 #1837 [Verbose] > │             v15.l0 <- v33                                                    │

00:02:42 #1838 [Verbose] > │             v15.l1 <- v32                                                    │

00:02:42 #1839 [Verbose] > │             ()                                                               │

00:02:42 #1840 [Verbose] > │         let v34 : num_complex_Complex<float> = v15.l1                        │

00:02:42 #1841 [Verbose] > │         v34                                                                  │

00:02:42 #1842 [Verbose] > │     else                                                                     │

00:02:42 #1843 [Verbose] > │         let v35 : string = "num_complex::Complex::new($0, $1)"               │

00:02:42 #1844 [Verbose] > │         let v36 : num_complex_Complex<float> =                               │

00:02:42 #1845 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v35                    │

00:02:42 #1846 [Verbose] > │         let v37 : string = "$0 - $1"                                         │

00:02:42 #1847 [Verbose] > │         let v38 : num_complex_Complex<float> =                               │

00:02:42 #1848 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v36, v1) v37                     │

00:02:42 #1849 [Verbose] > │         let v39 : string = $"        s = mpmath.gamma(s)"                    │

00:02:42 #1850 [Verbose] > │         let v40 : num_complex_Complex<float> = method3(v38)                  │

00:02:42 #1851 [Verbose] > │         let v41 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:42 #1852 [Verbose] > │ method29(v0, v39, v40)                                                       │

00:02:42 #1853 [Verbose] > │         let v42 : string = "v41.ok()"                                        │

00:02:42 #1854 [Verbose] > │         let v43 : num_complex_Complex<float> option =                        │

00:02:42 #1855 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v42                                   │

00:02:42 #1856 [Verbose] > │         let v44 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:42 #1857 [Verbose] > │         let v45 : US0 = US0_1                                                │

00:02:42 #1858 [Verbose] > │         let v46 : US0 = v43 |> Option.map v44 |> Option.defaultValue v45     │

00:02:42 #1859 [Verbose] > │         let v47 : string = "f64::NAN"                                        │

00:02:42 #1860 [Verbose] > │         let v48 : float = Fable.Core.RustInterop.emitRustExpr () v47         │

00:02:42 #1861 [Verbose] > │         let v49 : string = "f64::NAN"                                        │

00:02:42 #1862 [Verbose] > │         let v50 : float = Fable.Core.RustInterop.emitRustExpr () v49         │

00:02:42 #1863 [Verbose] > │         let v51 : string = "num_complex::Complex::new($0, $1)"               │

00:02:42 #1864 [Verbose] > │         let v52 : num_complex_Complex<float> =                               │

00:02:42 #1865 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v48, v50) v51                    │

00:02:42 #1866 [Verbose] > │         let v55 : num_complex_Complex<float> =                               │

00:02:42 #1867 [Verbose] > │             match v46 with                                                   │

00:02:42 #1868 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:42 #1869 [Verbose] > │                 v52                                                          │

00:02:42 #1870 [Verbose] > │             | US0_0(v53) -> (* Some *)                                       │

00:02:42 #1871 [Verbose] > │                 v53                                                          │

00:02:42 #1872 [Verbose] > │         let v56 : string = "num_complex::Complex::new($0, $1)"               │

00:02:42 #1873 [Verbose] > │         let v57 : num_complex_Complex<float> =                               │

00:02:42 #1874 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v56      │

00:02:42 #1875 [Verbose] > │         let v58 : string = "$0 * $1"                                         │

00:02:42 #1876 [Verbose] > │         let v59 : num_complex_Complex<float> =                               │

00:02:42 #1877 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v57, v1) v58                     │

00:02:42 #1878 [Verbose] > │         let v60 : string = "num_complex::Complex::new($0, $1)"               │

00:02:42 #1879 [Verbose] > │         let v61 : num_complex_Complex<float> =                               │

00:02:42 #1880 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v60                    │

00:02:42 #1881 [Verbose] > │         let v62 : string = "v59 / v61"                                       │

00:02:42 #1882 [Verbose] > │         let v63 : num_complex_Complex<float> =                               │

00:02:42 #1883 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v62                                   │

00:02:42 #1884 [Verbose] > │         let v64 : string = "v63.sin()"                                       │

00:02:42 #1885 [Verbose] > │         let v65 : num_complex_Complex<float> =                               │

00:02:42 #1886 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v64                                   │

00:02:42 #1887 [Verbose] > │         let v66 : num_complex_Complex<float> = method7(v1)                   │

00:02:42 #1888 [Verbose] > │         let v67 : string = "v66.re"                                          │

00:02:42 #1889 [Verbose] > │         let v68 : float = Fable.Core.RustInterop.emitRustExpr () v67         │

00:02:42 #1890 [Verbose] > │         let v69 : float = 1.0 - v68                                          │

00:02:42 #1891 [Verbose] > │         let v70 : num_complex_Complex<float> = method8(v1)                   │

00:02:42 #1892 [Verbose] > │         let v71 : string = "v70.im"                                          │

00:02:42 #1893 [Verbose] > │         let v72 : float = Fable.Core.RustInterop.emitRustExpr () v71         │

00:02:42 #1894 [Verbose] > │         let v73 : float =  -v72                                              │

00:02:42 #1895 [Verbose] > │         let v74 : string = "num_complex::Complex::new($0, $1)"               │

00:02:42 #1896 [Verbose] > │         let v75 : num_complex_Complex<float> =                               │

00:02:42 #1897 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v69, v73) v74                    │

00:02:42 #1898 [Verbose] > │         let v76 : num_complex_Complex<float> = method7(v75)                  │

00:02:42 #1899 [Verbose] > │         let v77 : string = "v76.re"                                          │

00:02:42 #1900 [Verbose] > │         let v78 : float = Fable.Core.RustInterop.emitRustExpr () v77         │

00:02:42 #1901 [Verbose] > │         let v79 : bool = v78 <= 1.0                                          │

00:02:42 #1902 [Verbose] > │         let v474 : num_complex_Complex<float> =                              │

00:02:42 #1903 [Verbose] > │             if v79 then                                                      │

00:02:42 #1904 [Verbose] > │                 let v80 : string = "num_complex::Complex::new($0, $1)"       │

00:02:42 #1905 [Verbose] > │                 let v81 : num_complex_Complex<float> =                       │

00:02:42 #1906 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v80                    │

00:02:42 #1907 [Verbose] > │                 v81                                                          │

00:02:42 #1908 [Verbose] > │             else                                                             │

00:02:42 #1909 [Verbose] > │                 let v82 : string = "println!(\"zeta / count: {:?} / s:       │

00:02:42 #1910 [Verbose] > │ {:?}\", 1, $0)"                                                              │

00:02:42 #1911 [Verbose] > │                 Fable.Core.RustInterop.emitRustExpr v75 v82                  │

00:02:42 #1912 [Verbose] > │                 let v83 : num_complex_Complex<float> = method7(v75)          │

00:02:42 #1913 [Verbose] > │                 let v84 : string = "v83.re"                                  │

00:02:42 #1914 [Verbose] > │                 let v85 : float = Fable.Core.RustInterop.emitRustExpr () v84 │

00:02:42 #1915 [Verbose] > │                 let v86 : bool = v85 > 1.0                                   │

00:02:42 #1916 [Verbose] > │                 if v86 then                                                  │

00:02:42 #1917 [Verbose] > │                     let v87 : string = "num_complex::Complex::new($0, $1)"   │

00:02:42 #1918 [Verbose] > │                     let v88 : num_complex_Complex<float> =                   │

00:02:42 #1919 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v87                    │

00:02:42 #1920 [Verbose] > │                     let v89 : (int32 []) = Array.zeroCreate<int32> (10000)   │

00:02:42 #1921 [Verbose] > │                     let v90 : Mut0 = {l0 = 0} : Mut0                         │

00:02:42 #1922 [Verbose] > │                     while method25(v90) do                                   │

00:02:42 #1923 [Verbose] > │                         let v92 : int32 = v90.l0                             │

00:02:42 #1924 [Verbose] > │                         v89.[int v92] <- v92                                 │

00:02:42 #1925 [Verbose] > │                         let v93 : int32 = v92 + 1                            │

00:02:42 #1926 [Verbose] > │                         v90.l0 <- v93                                        │

00:02:42 #1927 [Verbose] > │                         ()                                                   │

00:02:42 #1928 [Verbose] > │                     let v94 : int32 = v89.Length                             │

00:02:42 #1929 [Verbose] > │                     let v95 : Mut2 = {l0 = 0; l1 = v88} : Mut2               │

00:02:42 #1930 [Verbose] > │                     while method26(v94, v95) do                              │

00:02:42 #1931 [Verbose] > │                         let v97 : int32 = v95.l0                             │

00:02:42 #1932 [Verbose] > │                         let v98 : num_complex_Complex<float> = v95.l1        │

00:02:42 #1933 [Verbose] > │                         let v99 : int32 = v89.[int v97]                      │

00:02:42 #1934 [Verbose] > │                         let v100 : string = "num_complex::Complex::new($0,   │

00:02:42 #1935 [Verbose] > │ $1)"                                                                         │

00:02:42 #1936 [Verbose] > │                         let v101 : num_complex_Complex<float> =              │

00:02:42 #1937 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v100                   │

00:02:42 #1938 [Verbose] > │                         let v102 : float = float v99                         │

00:02:42 #1939 [Verbose] > │                         let v103 : string = "num_complex::Complex::new($0,   │

00:02:42 #1940 [Verbose] > │ $1)"                                                                         │

00:02:42 #1941 [Verbose] > │                         let v104 : num_complex_Complex<float> =              │

00:02:42 #1942 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v102, 0.0) v103                  │

00:02:42 #1943 [Verbose] > │                         let v105 : num_complex_Complex<float> =              │

00:02:42 #1944 [Verbose] > │ method27(v104)                                                               │

00:02:42 #1945 [Verbose] > │                         let v106 : num_complex_Complex<float> =              │

00:02:42 #1946 [Verbose] > │ method28(v75)                                                                │

00:02:42 #1947 [Verbose] > │                         let v107 : string =                                  │

00:02:42 #1948 [Verbose] > │ "num_complex::Complex::powc(v105, v106)"                                     │

00:02:42 #1949 [Verbose] > │                         let v108 : num_complex_Complex<float> =              │

00:02:42 #1950 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v107                                  │

00:02:42 #1951 [Verbose] > │                         let v109 : string = "v101 / v108"                    │

00:02:42 #1952 [Verbose] > │                         let v110 : num_complex_Complex<float> =              │

00:02:42 #1953 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v109                                  │

00:02:42 #1954 [Verbose] > │                         let v111 : string = "v98 + v110"                     │

00:02:42 #1955 [Verbose] > │                         let v112 : num_complex_Complex<float> =              │

00:02:42 #1956 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v111                                  │

00:02:42 #1957 [Verbose] > │                         let v113 : int32 = v97 + 1                           │

00:02:42 #1958 [Verbose] > │                         v95.l0 <- v113                                       │

00:02:42 #1959 [Verbose] > │                         v95.l1 <- v112                                       │

00:02:42 #1960 [Verbose] > │                         ()                                                   │

00:02:42 #1961 [Verbose] > │                     let v114 : num_complex_Complex<float> = v95.l1           │

00:02:42 #1962 [Verbose] > │                     v114                                                     │

00:02:42 #1963 [Verbose] > │                 else                                                         │

00:02:42 #1964 [Verbose] > │                     let v115 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #1965 [Verbose] > │                     let v116 : num_complex_Complex<float> =                  │

00:02:42 #1966 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v115                   │

00:02:42 #1967 [Verbose] > │                     let v117 : string = "$0 - $1"                            │

00:02:42 #1968 [Verbose] > │                     let v118 : num_complex_Complex<float> =                  │

00:02:42 #1969 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v116, v75) v117                  │

00:02:42 #1970 [Verbose] > │                     let v119 : string = $"        s = mpmath.gamma(s)"       │

00:02:42 #1971 [Verbose] > │                     let v120 : num_complex_Complex<float> = method3(v118)    │

00:02:42 #1972 [Verbose] > │                     let v121 : Result<num_complex_Complex<float>,            │

00:02:42 #1973 [Verbose] > │ std_string_String> = method29(v0, v119, v120)                                │

00:02:42 #1974 [Verbose] > │                     let v122 : string = "v121.ok()"                          │

00:02:42 #1975 [Verbose] > │                     let v123 : num_complex_Complex<float> option =           │

00:02:42 #1976 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v122                                  │

00:02:42 #1977 [Verbose] > │                     let v124 : (num_complex_Complex<float> -> US0) =         │

00:02:42 #1978 [Verbose] > │ method30()                                                                   │

00:02:42 #1979 [Verbose] > │                     let v125 : US0 = US0_1                                   │

00:02:42 #1980 [Verbose] > │                     let v126 : US0 = v123 |> Option.map v124 |>              │

00:02:42 #1981 [Verbose] > │ Option.defaultValue v125                                                     │

00:02:42 #1982 [Verbose] > │                     let v127 : string = "f64::NAN"                           │

00:02:42 #1983 [Verbose] > │                     let v128 : float = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #1984 [Verbose] > │ () v127                                                                      │

00:02:42 #1985 [Verbose] > │                     let v129 : string = "f64::NAN"                           │

00:02:42 #1986 [Verbose] > │                     let v130 : float = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #1987 [Verbose] > │ () v129                                                                      │

00:02:42 #1988 [Verbose] > │                     let v131 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #1989 [Verbose] > │                     let v132 : num_complex_Complex<float> =                  │

00:02:42 #1990 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v128, v130) v131                 │

00:02:42 #1991 [Verbose] > │                     let v135 : num_complex_Complex<float> =                  │

00:02:42 #1992 [Verbose] > │                         match v126 with                                      │

00:02:42 #1993 [Verbose] > │                         | US0_1 -> (* None *)                                │

00:02:42 #1994 [Verbose] > │                             v132                                             │

00:02:42 #1995 [Verbose] > │                         | US0_0(v133) -> (* Some *)                          │

00:02:42 #1996 [Verbose] > │                             v133                                             │

00:02:42 #1997 [Verbose] > │                     let v136 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #1998 [Verbose] > │                     let v137 : num_complex_Complex<float> =                  │

00:02:42 #1999 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v136     │

00:02:42 #2000 [Verbose] > │                     let v138 : string = "$0 * $1"                            │

00:02:42 #2001 [Verbose] > │                     let v139 : num_complex_Complex<float> =                  │

00:02:42 #2002 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v137, v75) v138                  │

00:02:42 #2003 [Verbose] > │                     let v140 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #2004 [Verbose] > │                     let v141 : num_complex_Complex<float> =                  │

00:02:42 #2005 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v140                   │

00:02:42 #2006 [Verbose] > │                     let v142 : string = "v139 / v141"                        │

00:02:42 #2007 [Verbose] > │                     let v143 : num_complex_Complex<float> =                  │

00:02:42 #2008 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v142                                  │

00:02:42 #2009 [Verbose] > │                     let v144 : string = "v143.sin()"                         │

00:02:42 #2010 [Verbose] > │                     let v145 : num_complex_Complex<float> =                  │

00:02:42 #2011 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v144                                  │

00:02:42 #2012 [Verbose] > │                     let v146 : num_complex_Complex<float> = method7(v75)     │

00:02:42 #2013 [Verbose] > │                     let v147 : string = "v146.re"                            │

00:02:42 #2014 [Verbose] > │                     let v148 : float = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #2015 [Verbose] > │ () v147                                                                      │

00:02:42 #2016 [Verbose] > │                     let v149 : float = 1.0 - v148                            │

00:02:42 #2017 [Verbose] > │                     let v150 : num_complex_Complex<float> = method8(v75)     │

00:02:42 #2018 [Verbose] > │                     let v151 : string = "v150.im"                            │

00:02:42 #2019 [Verbose] > │                     let v152 : float = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #2020 [Verbose] > │ () v151                                                                      │

00:02:42 #2021 [Verbose] > │                     let v153 : float =  -v152                                │

00:02:42 #2022 [Verbose] > │                     let v154 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #2023 [Verbose] > │                     let v155 : num_complex_Complex<float> =                  │

00:02:42 #2024 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v149, v153) v154                 │

00:02:42 #2025 [Verbose] > │                     let v156 : num_complex_Complex<float> = method7(v155)    │

00:02:42 #2026 [Verbose] > │                     let v157 : string = "v156.re"                            │

00:02:42 #2027 [Verbose] > │                     let v158 : float = Fable.Core.RustInterop.emitRustExpr   │

00:02:42 #2028 [Verbose] > │ () v157                                                                      │

00:02:42 #2029 [Verbose] > │                     let v159 : bool = v158 <= 1.0                            │

00:02:42 #2030 [Verbose] > │                     let v456 : num_complex_Complex<float> =                  │

00:02:42 #2031 [Verbose] > │                         if v159 then                                         │

00:02:42 #2032 [Verbose] > │                             let v160 : string =                              │

00:02:42 #2033 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2034 [Verbose] > │                             let v161 : num_complex_Complex<float> =          │

00:02:42 #2035 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v160                   │

00:02:42 #2036 [Verbose] > │                             v161                                             │

00:02:42 #2037 [Verbose] > │                         else                                                 │

00:02:42 #2038 [Verbose] > │                             let v162 : string = "println!(\"zeta / count:    │

00:02:42 #2039 [Verbose] > │ {:?} / s: {:?}\", 2, $0)"                                                    │

00:02:42 #2040 [Verbose] > │                             Fable.Core.RustInterop.emitRustExpr v155 v162    │

00:02:42 #2041 [Verbose] > │                             let v163 : num_complex_Complex<float> =          │

00:02:42 #2042 [Verbose] > │ method7(v155)                                                                │

00:02:42 #2043 [Verbose] > │                             let v164 : string = "v163.re"                    │

00:02:42 #2044 [Verbose] > │                             let v165 : float =                               │

00:02:42 #2045 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v164                                  │

00:02:42 #2046 [Verbose] > │                             let v166 : bool = v165 > 1.0                     │

00:02:42 #2047 [Verbose] > │                             if v166 then                                     │

00:02:42 #2048 [Verbose] > │                                 let v167 : string =                          │

00:02:42 #2049 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2050 [Verbose] > │                                 let v168 : num_complex_Complex<float> =      │

00:02:42 #2051 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, 0.0) v167                   │

00:02:42 #2052 [Verbose] > │                                 let v169 : (int32 []) =                      │

00:02:42 #2053 [Verbose] > │ Array.zeroCreate<int32> (10000)                                              │

00:02:42 #2054 [Verbose] > │                                 let v170 : Mut0 = {l0 = 0} : Mut0            │

00:02:42 #2055 [Verbose] > │                                 while method25(v170) do                      │

00:02:42 #2056 [Verbose] > │                                     let v172 : int32 = v170.l0               │

00:02:42 #2057 [Verbose] > │                                     v169.[int v172] <- v172                  │

00:02:42 #2058 [Verbose] > │                                     let v173 : int32 = v172 + 1              │

00:02:42 #2059 [Verbose] > │                                     v170.l0 <- v173                          │

00:02:42 #2060 [Verbose] > │                                     ()                                       │

00:02:42 #2061 [Verbose] > │                                 let v174 : int32 = v169.Length               │

00:02:42 #2062 [Verbose] > │                                 let v175 : Mut2 = {l0 = 0; l1 = v168} : Mut2 │

00:02:42 #2063 [Verbose] > │                                 while method26(v174, v175) do                │

00:02:42 #2064 [Verbose] > │                                     let v177 : int32 = v175.l0               │

00:02:42 #2065 [Verbose] > │                                     let v178 : num_complex_Complex<float> =  │

00:02:42 #2066 [Verbose] > │ v175.l1                                                                      │

00:02:42 #2067 [Verbose] > │                                     let v179 : int32 = v169.[int v177]       │

00:02:42 #2068 [Verbose] > │                                     let v180 : string =                      │

00:02:42 #2069 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2070 [Verbose] > │                                     let v181 : num_complex_Complex<float> =  │

00:02:42 #2071 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v180                   │

00:02:42 #2072 [Verbose] > │                                     let v182 : float = float v179            │

00:02:42 #2073 [Verbose] > │                                     let v183 : string =                      │

00:02:42 #2074 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2075 [Verbose] > │                                     let v184 : num_complex_Complex<float> =  │

00:02:42 #2076 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v182, 0.0) v183                  │

00:02:42 #2077 [Verbose] > │                                     let v185 : num_complex_Complex<float> =  │

00:02:42 #2078 [Verbose] > │ method27(v184)                                                               │

00:02:42 #2079 [Verbose] > │                                     let v186 : num_complex_Complex<float> =  │

00:02:42 #2080 [Verbose] > │ method28(v155)                                                               │

00:02:42 #2081 [Verbose] > │                                     let v187 : string =                      │

00:02:42 #2082 [Verbose] > │ "num_complex::Complex::powc(v185, v186)"                                     │

00:02:42 #2083 [Verbose] > │                                     let v188 : num_complex_Complex<float> =  │

00:02:42 #2084 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v187                                  │

00:02:42 #2085 [Verbose] > │                                     let v189 : string = "v181 / v188"        │

00:02:42 #2086 [Verbose] > │                                     let v190 : num_complex_Complex<float> =  │

00:02:42 #2087 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v189                                  │

00:02:42 #2088 [Verbose] > │                                     let v191 : string = "v178 + v190"        │

00:02:42 #2089 [Verbose] > │                                     let v192 : num_complex_Complex<float> =  │

00:02:42 #2090 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v191                                  │

00:02:42 #2091 [Verbose] > │                                     let v193 : int32 = v177 + 1              │

00:02:42 #2092 [Verbose] > │                                     v175.l0 <- v193                          │

00:02:42 #2093 [Verbose] > │                                     v175.l1 <- v192                          │

00:02:42 #2094 [Verbose] > │                                     ()                                       │

00:02:42 #2095 [Verbose] > │                                 let v194 : num_complex_Complex<float> =      │

00:02:42 #2096 [Verbose] > │ v175.l1                                                                      │

00:02:42 #2097 [Verbose] > │                                 v194                                         │

00:02:42 #2098 [Verbose] > │                             else                                             │

00:02:42 #2099 [Verbose] > │                                 let v195 : string =                          │

00:02:42 #2100 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2101 [Verbose] > │                                 let v196 : num_complex_Complex<float> =      │

00:02:42 #2102 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v195                   │

00:02:42 #2103 [Verbose] > │                                 let v197 : string = "$0 - $1"                │

00:02:42 #2104 [Verbose] > │                                 let v198 : num_complex_Complex<float> =      │

00:02:42 #2105 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v196, v155) v197                 │

00:02:42 #2106 [Verbose] > │                                 let v199 : string = $"        s =            │

00:02:42 #2107 [Verbose] > │ mpmath.gamma(s)"                                                             │

00:02:42 #2108 [Verbose] > │                                 let v200 : num_complex_Complex<float> =      │

00:02:42 #2109 [Verbose] > │ method3(v198)                                                                │

00:02:42 #2110 [Verbose] > │                                 let v201 :                                   │

00:02:42 #2111 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method29(v0, v199,   │

00:02:42 #2112 [Verbose] > │ v200)                                                                        │

00:02:42 #2113 [Verbose] > │                                 let v202 : string = "v201.ok()"              │

00:02:42 #2114 [Verbose] > │                                 let v203 : num_complex_Complex<float> option │

00:02:42 #2115 [Verbose] > │ = Fable.Core.RustInterop.emitRustExpr () v202                                │

00:02:42 #2116 [Verbose] > │                                 let v204 : (num_complex_Complex<float> ->    │

00:02:42 #2117 [Verbose] > │ US0) = method30()                                                            │

00:02:42 #2118 [Verbose] > │                                 let v205 : US0 = US0_1                       │

00:02:42 #2119 [Verbose] > │                                 let v206 : US0 = v203 |> Option.map v204 |>  │

00:02:42 #2120 [Verbose] > │ Option.defaultValue v205                                                     │

00:02:42 #2121 [Verbose] > │                                 let v207 : string = "f64::NAN"               │

00:02:42 #2122 [Verbose] > │                                 let v208 : float =                           │

00:02:42 #2123 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v207                                  │

00:02:42 #2124 [Verbose] > │                                 let v209 : string = "f64::NAN"               │

00:02:42 #2125 [Verbose] > │                                 let v210 : float =                           │

00:02:42 #2126 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v209                                  │

00:02:42 #2127 [Verbose] > │                                 let v211 : string =                          │

00:02:42 #2128 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2129 [Verbose] > │                                 let v212 : num_complex_Complex<float> =      │

00:02:42 #2130 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v208, v210) v211                 │

00:02:42 #2131 [Verbose] > │                                 let v215 : num_complex_Complex<float> =      │

00:02:42 #2132 [Verbose] > │                                     match v206 with                          │

00:02:42 #2133 [Verbose] > │                                     | US0_1 -> (* None *)                    │

00:02:42 #2134 [Verbose] > │                                         v212                                 │

00:02:42 #2135 [Verbose] > │                                     | US0_0(v213) -> (* Some *)              │

00:02:42 #2136 [Verbose] > │                                         v213                                 │

00:02:42 #2137 [Verbose] > │                                 let v216 : string =                          │

00:02:42 #2138 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2139 [Verbose] > │                                 let v217 : num_complex_Complex<float> =      │

00:02:42 #2140 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v216     │

00:02:42 #2141 [Verbose] > │                                 let v218 : string = "$0 * $1"                │

00:02:42 #2142 [Verbose] > │                                 let v219 : num_complex_Complex<float> =      │

00:02:42 #2143 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v217, v155) v218                 │

00:02:42 #2144 [Verbose] > │                                 let v220 : string =                          │

00:02:42 #2145 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2146 [Verbose] > │                                 let v221 : num_complex_Complex<float> =      │

00:02:42 #2147 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v220                   │

00:02:42 #2148 [Verbose] > │                                 let v222 : string = "v219 / v221"            │

00:02:42 #2149 [Verbose] > │                                 let v223 : num_complex_Complex<float> =      │

00:02:42 #2150 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v222                                  │

00:02:42 #2151 [Verbose] > │                                 let v224 : string = "v223.sin()"             │

00:02:42 #2152 [Verbose] > │                                 let v225 : num_complex_Complex<float> =      │

00:02:42 #2153 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v224                                  │

00:02:42 #2154 [Verbose] > │                                 let v226 : num_complex_Complex<float> =      │

00:02:42 #2155 [Verbose] > │ method7(v155)                                                                │

00:02:42 #2156 [Verbose] > │                                 let v227 : string = "v226.re"                │

00:02:42 #2157 [Verbose] > │                                 let v228 : float =                           │

00:02:42 #2158 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v227                                  │

00:02:42 #2159 [Verbose] > │                                 let v229 : float = 1.0 - v228                │

00:02:42 #2160 [Verbose] > │                                 let v230 : num_complex_Complex<float> =      │

00:02:42 #2161 [Verbose] > │ method8(v155)                                                                │

00:02:42 #2162 [Verbose] > │                                 let v231 : string = "v230.im"                │

00:02:42 #2163 [Verbose] > │                                 let v232 : float =                           │

00:02:42 #2164 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v231                                  │

00:02:42 #2165 [Verbose] > │                                 let v233 : float =  -v232                    │

00:02:42 #2166 [Verbose] > │                                 let v234 : string =                          │

00:02:42 #2167 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2168 [Verbose] > │                                 let v235 : num_complex_Complex<float> =      │

00:02:42 #2169 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v229, v233) v234                 │

00:02:42 #2170 [Verbose] > │                                 let v236 : num_complex_Complex<float> =      │

00:02:42 #2171 [Verbose] > │ method7(v235)                                                                │

00:02:42 #2172 [Verbose] > │                                 let v237 : string = "v236.re"                │

00:02:42 #2173 [Verbose] > │                                 let v238 : float =                           │

00:02:42 #2174 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v237                                  │

00:02:42 #2175 [Verbose] > │                                 let v239 : bool = v238 <= 1.0                │

00:02:42 #2176 [Verbose] > │                                 let v438 : num_complex_Complex<float> =      │

00:02:42 #2177 [Verbose] > │                                     if v239 then                             │

00:02:42 #2178 [Verbose] > │                                         let v240 : string =                  │

00:02:42 #2179 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2180 [Verbose] > │                                         let v241 :                           │

00:02:42 #2181 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2182 [Verbose] > │ (0.0, 0.0) v240                                                              │

00:02:42 #2183 [Verbose] > │                                         v241                                 │

00:02:42 #2184 [Verbose] > │                                     else                                     │

00:02:42 #2185 [Verbose] > │                                         let v242 : string = "println!(\"zeta │

00:02:42 #2186 [Verbose] > │ / count: {:?} / s: {:?}\", 3, $0)"                                           │

00:02:42 #2187 [Verbose] > │                                         Fable.Core.RustInterop.emitRustExpr  │

00:02:42 #2188 [Verbose] > │ v235 v242                                                                    │

00:02:42 #2189 [Verbose] > │                                         let v243 :                           │

00:02:42 #2190 [Verbose] > │ num_complex_Complex<float> = method7(v235)                                   │

00:02:42 #2191 [Verbose] > │                                         let v244 : string = "v243.re"        │

00:02:42 #2192 [Verbose] > │                                         let v245 : float =                   │

00:02:42 #2193 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v244                                  │

00:02:42 #2194 [Verbose] > │                                         let v246 : bool = v245 > 1.0         │

00:02:42 #2195 [Verbose] > │                                         if v246 then                         │

00:02:42 #2196 [Verbose] > │                                             let v247 : string =              │

00:02:42 #2197 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2198 [Verbose] > │                                             let v248 :                       │

00:02:42 #2199 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2200 [Verbose] > │ (0.0, 0.0) v247                                                              │

00:02:42 #2201 [Verbose] > │                                             let v249 : (int32 []) =          │

00:02:42 #2202 [Verbose] > │ Array.zeroCreate<int32> (10000)                                              │

00:02:42 #2203 [Verbose] > │                                             let v250 : Mut0 = {l0 = 0} :     │

00:02:42 #2204 [Verbose] > │ Mut0                                                                         │

00:02:42 #2205 [Verbose] > │                                             while method25(v250) do          │

00:02:42 #2206 [Verbose] > │                                                 let v252 : int32 = v250.l0   │

00:02:42 #2207 [Verbose] > │                                                 v249.[int v252] <- v252      │

00:02:42 #2208 [Verbose] > │                                                 let v253 : int32 = v252 + 1  │

00:02:42 #2209 [Verbose] > │                                                 v250.l0 <- v253              │

00:02:42 #2210 [Verbose] > │                                                 ()                           │

00:02:42 #2211 [Verbose] > │                                             let v254 : int32 = v249.Length   │

00:02:42 #2212 [Verbose] > │                                             let v255 : Mut2 = {l0 = 0; l1 =  │

00:02:42 #2213 [Verbose] > │ v248} : Mut2                                                                 │

00:02:42 #2214 [Verbose] > │                                             while method26(v254, v255) do    │

00:02:42 #2215 [Verbose] > │                                                 let v257 : int32 = v255.l0   │

00:02:42 #2216 [Verbose] > │                                                 let v258 :                   │

00:02:42 #2217 [Verbose] > │ num_complex_Complex<float> = v255.l1                                         │

00:02:42 #2218 [Verbose] > │                                                 let v259 : int32 = v249.[int │

00:02:42 #2219 [Verbose] > │ v257]                                                                        │

00:02:42 #2220 [Verbose] > │                                                 let v260 : string =          │

00:02:42 #2221 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2222 [Verbose] > │                                                 let v261 :                   │

00:02:42 #2223 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2224 [Verbose] > │ (1.0, 0.0) v260                                                              │

00:02:42 #2225 [Verbose] > │                                                 let v262 : float = float     │

00:02:42 #2226 [Verbose] > │ v259                                                                         │

00:02:42 #2227 [Verbose] > │                                                 let v263 : string =          │

00:02:42 #2228 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2229 [Verbose] > │                                                 let v264 :                   │

00:02:42 #2230 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2231 [Verbose] > │ (v262, 0.0) v263                                                             │

00:02:42 #2232 [Verbose] > │                                                 let v265 :                   │

00:02:42 #2233 [Verbose] > │ num_complex_Complex<float> = method27(v264)                                  │

00:02:42 #2234 [Verbose] > │                                                 let v266 :                   │

00:02:42 #2235 [Verbose] > │ num_complex_Complex<float> = method28(v235)                                  │

00:02:42 #2236 [Verbose] > │                                                 let v267 : string =          │

00:02:42 #2237 [Verbose] > │ "num_complex::Complex::powc(v265, v266)"                                     │

00:02:42 #2238 [Verbose] > │                                                 let v268 :                   │

00:02:42 #2239 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v267     │

00:02:42 #2240 [Verbose] > │                                                 let v269 : string = "v261 /  │

00:02:42 #2241 [Verbose] > │ v268"                                                                        │

00:02:42 #2242 [Verbose] > │                                                 let v270 :                   │

00:02:42 #2243 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v269     │

00:02:42 #2244 [Verbose] > │                                                 let v271 : string = "v258 +  │

00:02:42 #2245 [Verbose] > │ v270"                                                                        │

00:02:42 #2246 [Verbose] > │                                                 let v272 :                   │

00:02:42 #2247 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v271     │

00:02:42 #2248 [Verbose] > │                                                 let v273 : int32 = v257 + 1  │

00:02:42 #2249 [Verbose] > │                                                 v255.l0 <- v273              │

00:02:42 #2250 [Verbose] > │                                                 v255.l1 <- v272              │

00:02:42 #2251 [Verbose] > │                                                 ()                           │

00:02:42 #2252 [Verbose] > │                                             let v274 :                       │

00:02:42 #2253 [Verbose] > │ num_complex_Complex<float> = v255.l1                                         │

00:02:42 #2254 [Verbose] > │                                             v274                             │

00:02:42 #2255 [Verbose] > │                                         else                                 │

00:02:42 #2256 [Verbose] > │                                             let v275 : string =              │

00:02:42 #2257 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2258 [Verbose] > │                                             let v276 :                       │

00:02:42 #2259 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2260 [Verbose] > │ (1.0, 0.0) v275                                                              │

00:02:42 #2261 [Verbose] > │                                             let v277 : string = "$0 - $1"    │

00:02:42 #2262 [Verbose] > │                                             let v278 :                       │

00:02:42 #2263 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2264 [Verbose] > │ (v276, v235) v277                                                            │

00:02:42 #2265 [Verbose] > │                                             let v279 : string = $"        s  │

00:02:42 #2266 [Verbose] > │ = mpmath.gamma(s)"                                                           │

00:02:42 #2267 [Verbose] > │                                             let v280 :                       │

00:02:42 #2268 [Verbose] > │ num_complex_Complex<float> = method3(v278)                                   │

00:02:42 #2269 [Verbose] > │                                             let v281 :                       │

00:02:42 #2270 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method29(v0, v279,   │

00:02:42 #2271 [Verbose] > │ v280)                                                                        │

00:02:42 #2272 [Verbose] > │                                             let v282 : string = "v281.ok()"  │

00:02:42 #2273 [Verbose] > │                                             let v283 :                       │

00:02:42 #2274 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr ()   │

00:02:42 #2275 [Verbose] > │ v282                                                                         │

00:02:42 #2276 [Verbose] > │                                             let v284 :                       │

00:02:42 #2277 [Verbose] > │ (num_complex_Complex<float> -> US0) = method30()                             │

00:02:42 #2278 [Verbose] > │                                             let v285 : US0 = US0_1           │

00:02:42 #2279 [Verbose] > │                                             let v286 : US0 = v283 |>         │

00:02:42 #2280 [Verbose] > │ Option.map v284 |> Option.defaultValue v285                                  │

00:02:42 #2281 [Verbose] > │                                             let v287 : string = "f64::NAN"   │

00:02:42 #2282 [Verbose] > │                                             let v288 : float =               │

00:02:42 #2283 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v287                                  │

00:02:42 #2284 [Verbose] > │                                             let v289 : string = "f64::NAN"   │

00:02:42 #2285 [Verbose] > │                                             let v290 : float =               │

00:02:42 #2286 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v289                                  │

00:02:42 #2287 [Verbose] > │                                             let v291 : string =              │

00:02:42 #2288 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2289 [Verbose] > │                                             let v292 :                       │

00:02:42 #2290 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2291 [Verbose] > │ (v288, v290) v291                                                            │

00:02:42 #2292 [Verbose] > │                                             let v295 :                       │

00:02:42 #2293 [Verbose] > │ num_complex_Complex<float> =                                                 │

00:02:42 #2294 [Verbose] > │                                                 match v286 with              │

00:02:42 #2295 [Verbose] > │                                                 | US0_1 -> (* None *)        │

00:02:42 #2296 [Verbose] > │                                                     v292                     │

00:02:42 #2297 [Verbose] > │                                                 | US0_0(v293) -> (* Some *)  │

00:02:42 #2298 [Verbose] > │                                                     v293                     │

00:02:42 #2299 [Verbose] > │                                             let v296 : string =              │

00:02:42 #2300 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2301 [Verbose] > │                                             let v297 :                       │

00:02:42 #2302 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2303 [Verbose] > │ (3.141592653589793, 0.0) v296                                                │

00:02:42 #2304 [Verbose] > │                                             let v298 : string = "$0 * $1"    │

00:02:42 #2305 [Verbose] > │                                             let v299 :                       │

00:02:42 #2306 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2307 [Verbose] > │ (v297, v235) v298                                                            │

00:02:42 #2308 [Verbose] > │                                             let v300 : string =              │

00:02:42 #2309 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2310 [Verbose] > │                                             let v301 :                       │

00:02:42 #2311 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2312 [Verbose] > │ (2.0, 0.0) v300                                                              │

00:02:42 #2313 [Verbose] > │                                             let v302 : string = "v299 /      │

00:02:42 #2314 [Verbose] > │ v301"                                                                        │

00:02:42 #2315 [Verbose] > │                                             let v303 :                       │

00:02:42 #2316 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v302     │

00:02:42 #2317 [Verbose] > │                                             let v304 : string = "v303.sin()" │

00:02:42 #2318 [Verbose] > │                                             let v305 :                       │

00:02:42 #2319 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v304     │

00:02:42 #2320 [Verbose] > │                                             let v306 :                       │

00:02:42 #2321 [Verbose] > │ num_complex_Complex<float> = method7(v235)                                   │

00:02:42 #2322 [Verbose] > │                                             let v307 : string = "v306.re"    │

00:02:42 #2323 [Verbose] > │                                             let v308 : float =               │

00:02:42 #2324 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v307                                  │

00:02:42 #2325 [Verbose] > │                                             let v309 : float = 1.0 - v308    │

00:02:42 #2326 [Verbose] > │                                             let v310 :                       │

00:02:42 #2327 [Verbose] > │ num_complex_Complex<float> = method8(v235)                                   │

00:02:42 #2328 [Verbose] > │                                             let v311 : string = "v310.im"    │

00:02:42 #2329 [Verbose] > │                                             let v312 : float =               │

00:02:42 #2330 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v311                                  │

00:02:42 #2331 [Verbose] > │                                             let v313 : float =  -v312        │

00:02:42 #2332 [Verbose] > │                                             let v314 : string =              │

00:02:42 #2333 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2334 [Verbose] > │                                             let v315 :                       │

00:02:42 #2335 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2336 [Verbose] > │ (v309, v313) v314                                                            │

00:02:42 #2337 [Verbose] > │                                             let v316 :                       │

00:02:42 #2338 [Verbose] > │ num_complex_Complex<float> = method7(v315)                                   │

00:02:42 #2339 [Verbose] > │                                             let v317 : string = "v316.re"    │

00:02:42 #2340 [Verbose] > │                                             let v318 : float =               │

00:02:42 #2341 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v317                                  │

00:02:42 #2342 [Verbose] > │                                             let v319 : bool = v318 <= 1.0    │

00:02:42 #2343 [Verbose] > │                                             let v420 :                       │

00:02:42 #2344 [Verbose] > │ num_complex_Complex<float> =                                                 │

00:02:42 #2345 [Verbose] > │                                                 if v319 then                 │

00:02:42 #2346 [Verbose] > │                                                     let v320 : string =      │

00:02:42 #2347 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2348 [Verbose] > │                                                     let v321 :               │

00:02:42 #2349 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2350 [Verbose] > │ (0.0, 0.0) v320                                                              │

00:02:42 #2351 [Verbose] > │                                                     v321                     │

00:02:42 #2352 [Verbose] > │                                                 else                         │

00:02:42 #2353 [Verbose] > │                                                     let v322 : string =      │

00:02:42 #2354 [Verbose] > │ "println!(\"zeta / count: {:?} / s: {:?}\", 4, $0)"                          │

00:02:42 #2355 [Verbose] > │                                                                              │

00:02:42 #2356 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr v315 v322                                │

00:02:42 #2357 [Verbose] > │                                                     let v323 :               │

00:02:42 #2358 [Verbose] > │ num_complex_Complex<float> = method7(v315)                                   │

00:02:42 #2359 [Verbose] > │                                                     let v324 : string =      │

00:02:42 #2360 [Verbose] > │ "v323.re"                                                                    │

00:02:42 #2361 [Verbose] > │                                                     let v325 : float =       │

00:02:42 #2362 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v324                                  │

00:02:42 #2363 [Verbose] > │                                                     let v326 : bool = v325 > │

00:02:42 #2364 [Verbose] > │ 1.0                                                                          │

00:02:42 #2365 [Verbose] > │                                                     if v326 then             │

00:02:42 #2366 [Verbose] > │                                                         let v327 : string =  │

00:02:42 #2367 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2368 [Verbose] > │                                                         let v328 :           │

00:02:42 #2369 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2370 [Verbose] > │ (0.0, 0.0) v327                                                              │

00:02:42 #2371 [Verbose] > │                                                         let v329 : (int32 [  │

00:02:42 #2372 [Verbose] > │ ]) = Array.zeroCreate<int32> (10000)                                         │

00:02:42 #2373 [Verbose] > │                                                         let v330 : Mut0 =    │

00:02:42 #2374 [Verbose] > │ {l0 = 0} : Mut0                                                              │

00:02:42 #2375 [Verbose] > │                                                         while method25(v330) │

00:02:42 #2376 [Verbose] > │ do                                                                           │

00:02:42 #2377 [Verbose] > │                                                             let v332 : int32 │

00:02:42 #2378 [Verbose] > │ = v330.l0                                                                    │

00:02:42 #2379 [Verbose] > │                                                             v329.[int v332]  │

00:02:42 #2380 [Verbose] > │ <- v332                                                                      │

00:02:42 #2381 [Verbose] > │                                                             let v333 : int32 │

00:02:42 #2382 [Verbose] > │ = v332 + 1                                                                   │

00:02:42 #2383 [Verbose] > │                                                             v330.l0 <- v333  │

00:02:42 #2384 [Verbose] > │                                                             ()               │

00:02:42 #2385 [Verbose] > │                                                         let v334 : int32 =   │

00:02:42 #2386 [Verbose] > │ v329.Length                                                                  │

00:02:42 #2387 [Verbose] > │                                                         let v335 : Mut2 =    │

00:02:42 #2388 [Verbose] > │ {l0 = 0; l1 = v328} : Mut2                                                   │

00:02:42 #2389 [Verbose] > │                                                         while method26(v334, │

00:02:42 #2390 [Verbose] > │ v335) do                                                                     │

00:02:42 #2391 [Verbose] > │                                                             let v337 : int32 │

00:02:42 #2392 [Verbose] > │ = v335.l0                                                                    │

00:02:42 #2393 [Verbose] > │                                                             let v338 :       │

00:02:42 #2394 [Verbose] > │ num_complex_Complex<float> = v335.l1                                         │

00:02:42 #2395 [Verbose] > │                                                             let v339 : int32 │

00:02:42 #2396 [Verbose] > │ = v329.[int v337]                                                            │

00:02:42 #2397 [Verbose] > │                                                             let v340 :       │

00:02:42 #2398 [Verbose] > │ string = "num_complex::Complex::new($0, $1)"                                 │

00:02:42 #2399 [Verbose] > │                                                             let v341 :       │

00:02:42 #2400 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2401 [Verbose] > │ (1.0, 0.0) v340                                                              │

00:02:42 #2402 [Verbose] > │                                                             let v342 : float │

00:02:42 #2403 [Verbose] > │ = float v339                                                                 │

00:02:42 #2404 [Verbose] > │                                                             let v343 :       │

00:02:42 #2405 [Verbose] > │ string = "num_complex::Complex::new($0, $1)"                                 │

00:02:42 #2406 [Verbose] > │                                                             let v344 :       │

00:02:42 #2407 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2408 [Verbose] > │ (v342, 0.0) v343                                                             │

00:02:42 #2409 [Verbose] > │                                                             let v345 :       │

00:02:42 #2410 [Verbose] > │ num_complex_Complex<float> = method27(v344)                                  │

00:02:42 #2411 [Verbose] > │                                                             let v346 :       │

00:02:42 #2412 [Verbose] > │ num_complex_Complex<float> = method28(v315)                                  │

00:02:42 #2413 [Verbose] > │                                                             let v347 :       │

00:02:42 #2414 [Verbose] > │ string = "num_complex::Complex::powc(v345, v346)"                            │

00:02:42 #2415 [Verbose] > │                                                             let v348 :       │

00:02:42 #2416 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v347     │

00:02:42 #2417 [Verbose] > │                                                             let v349 :       │

00:02:42 #2418 [Verbose] > │ string = "v341 / v348"                                                       │

00:02:42 #2419 [Verbose] > │                                                             let v350 :       │

00:02:42 #2420 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v349     │

00:02:42 #2421 [Verbose] > │                                                             let v351 :       │

00:02:42 #2422 [Verbose] > │ string = "v338 + v350"                                                       │

00:02:42 #2423 [Verbose] > │                                                             let v352 :       │

00:02:42 #2424 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v351     │

00:02:42 #2425 [Verbose] > │                                                             let v353 : int32 │

00:02:42 #2426 [Verbose] > │ = v337 + 1                                                                   │

00:02:42 #2427 [Verbose] > │                                                             v335.l0 <- v353  │

00:02:42 #2428 [Verbose] > │                                                             v335.l1 <- v352  │

00:02:42 #2429 [Verbose] > │                                                             ()               │

00:02:42 #2430 [Verbose] > │                                                         let v354 :           │

00:02:42 #2431 [Verbose] > │ num_complex_Complex<float> = v335.l1                                         │

00:02:42 #2432 [Verbose] > │                                                         v354                 │

00:02:42 #2433 [Verbose] > │                                                     else                     │

00:02:42 #2434 [Verbose] > │                                                         let v355 : string =  │

00:02:42 #2435 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2436 [Verbose] > │                                                         let v356 :           │

00:02:42 #2437 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2438 [Verbose] > │ (1.0, 0.0) v355                                                              │

00:02:42 #2439 [Verbose] > │                                                         let v357 : string =  │

00:02:42 #2440 [Verbose] > │ "$0 - $1"                                                                    │

00:02:42 #2441 [Verbose] > │                                                         let v358 :           │

00:02:42 #2442 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2443 [Verbose] > │ (v356, v315) v357                                                            │

00:02:42 #2444 [Verbose] > │                                                         let v359 : string =  │

00:02:42 #2445 [Verbose] > │ $"        s = mpmath.gamma(s)"                                               │

00:02:42 #2446 [Verbose] > │                                                         let v360 :           │

00:02:42 #2447 [Verbose] > │ num_complex_Complex<float> = method3(v358)                                   │

00:02:42 #2448 [Verbose] > │                                                         let v361 :           │

00:02:42 #2449 [Verbose] > │ Result<num_complex_Complex<float>, std_string_String> = method29(v0, v359,   │

00:02:42 #2450 [Verbose] > │ v360)                                                                        │

00:02:42 #2451 [Verbose] > │                                                         let v362 : string =  │

00:02:42 #2452 [Verbose] > │ "v361.ok()"                                                                  │

00:02:42 #2453 [Verbose] > │                                                         let v363 :           │

00:02:42 #2454 [Verbose] > │ num_complex_Complex<float> option = Fable.Core.RustInterop.emitRustExpr ()   │

00:02:42 #2455 [Verbose] > │ v362                                                                         │

00:02:42 #2456 [Verbose] > │                                                         let v364 :           │

00:02:42 #2457 [Verbose] > │ (num_complex_Complex<float> -> US0) = method30()                             │

00:02:42 #2458 [Verbose] > │                                                         let v365 : US0 =     │

00:02:42 #2459 [Verbose] > │ US0_1                                                                        │

00:02:42 #2460 [Verbose] > │                                                         let v366 : US0 =     │

00:02:42 #2461 [Verbose] > │ v363 |> Option.map v364 |> Option.defaultValue v365                          │

00:02:42 #2462 [Verbose] > │                                                         let v367 : string =  │

00:02:42 #2463 [Verbose] > │ "f64::NAN"                                                                   │

00:02:42 #2464 [Verbose] > │                                                         let v368 : float =   │

00:02:42 #2465 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v367                                  │

00:02:42 #2466 [Verbose] > │                                                         let v369 : string =  │

00:02:42 #2467 [Verbose] > │ "f64::NAN"                                                                   │

00:02:42 #2468 [Verbose] > │                                                         let v370 : float =   │

00:02:42 #2469 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v369                                  │

00:02:42 #2470 [Verbose] > │                                                         let v371 : string =  │

00:02:42 #2471 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2472 [Verbose] > │                                                         let v372 :           │

00:02:42 #2473 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2474 [Verbose] > │ (v368, v370) v371                                                            │

00:02:42 #2475 [Verbose] > │                                                         let v375 :           │

00:02:42 #2476 [Verbose] > │ num_complex_Complex<float> =                                                 │

00:02:42 #2477 [Verbose] > │                                                             match v366 with  │

00:02:42 #2478 [Verbose] > │                                                             | US0_1 -> (*    │

00:02:42 #2479 [Verbose] > │ None *)                                                                      │

00:02:42 #2480 [Verbose] > │                                                                 v372         │

00:02:42 #2481 [Verbose] > │                                                             | US0_0(v373) -> │

00:02:42 #2482 [Verbose] > │ (* Some *)                                                                   │

00:02:42 #2483 [Verbose] > │                                                                 v373         │

00:02:42 #2484 [Verbose] > │                                                         let v376 : string =  │

00:02:42 #2485 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2486 [Verbose] > │                                                         let v377 :           │

00:02:42 #2487 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2488 [Verbose] > │ (3.141592653589793, 0.0) v376                                                │

00:02:42 #2489 [Verbose] > │                                                         let v378 : string =  │

00:02:42 #2490 [Verbose] > │ "$0 * $1"                                                                    │

00:02:42 #2491 [Verbose] > │                                                         let v379 :           │

00:02:42 #2492 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2493 [Verbose] > │ (v377, v315) v378                                                            │

00:02:42 #2494 [Verbose] > │                                                         let v380 : string =  │

00:02:42 #2495 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2496 [Verbose] > │                                                         let v381 :           │

00:02:42 #2497 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2498 [Verbose] > │ (2.0, 0.0) v380                                                              │

00:02:42 #2499 [Verbose] > │                                                         let v382 : string =  │

00:02:42 #2500 [Verbose] > │ "v379 / v381"                                                                │

00:02:42 #2501 [Verbose] > │                                                         let v383 :           │

00:02:42 #2502 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v382     │

00:02:42 #2503 [Verbose] > │                                                         let v384 : string =  │

00:02:42 #2504 [Verbose] > │ "v383.sin()"                                                                 │

00:02:42 #2505 [Verbose] > │                                                         let v385 :           │

00:02:42 #2506 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v384     │

00:02:42 #2507 [Verbose] > │                                                         let v386 :           │

00:02:42 #2508 [Verbose] > │ num_complex_Complex<float> = method7(v315)                                   │

00:02:42 #2509 [Verbose] > │                                                         let v387 : string =  │

00:02:42 #2510 [Verbose] > │ "v386.re"                                                                    │

00:02:42 #2511 [Verbose] > │                                                         let v388 : float =   │

00:02:42 #2512 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v387                                  │

00:02:42 #2513 [Verbose] > │                                                         let v389 : float =   │

00:02:42 #2514 [Verbose] > │ 1.0 - v388                                                                   │

00:02:42 #2515 [Verbose] > │                                                         let v390 :           │

00:02:42 #2516 [Verbose] > │ num_complex_Complex<float> = method8(v315)                                   │

00:02:42 #2517 [Verbose] > │                                                         let v391 : string =  │

00:02:42 #2518 [Verbose] > │ "v390.im"                                                                    │

00:02:42 #2519 [Verbose] > │                                                         let v392 : float =   │

00:02:42 #2520 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v391                                  │

00:02:42 #2521 [Verbose] > │                                                         let v393 : float =   │

00:02:42 #2522 [Verbose] > │ -v392                                                                        │

00:02:42 #2523 [Verbose] > │                                                         let v394 : string =  │

00:02:42 #2524 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2525 [Verbose] > │                                                         let v395 :           │

00:02:42 #2526 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2527 [Verbose] > │ (v389, v393) v394                                                            │

00:02:42 #2528 [Verbose] > │                                                         let v396 :           │

00:02:42 #2529 [Verbose] > │ num_complex_Complex<float> = method7(v395)                                   │

00:02:42 #2530 [Verbose] > │                                                         let v397 : string =  │

00:02:42 #2531 [Verbose] > │ "v396.re"                                                                    │

00:02:42 #2532 [Verbose] > │                                                         let v398 : float =   │

00:02:42 #2533 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v397                                  │

00:02:42 #2534 [Verbose] > │                                                         let v399 : bool =    │

00:02:42 #2535 [Verbose] > │ v398 <= 1.0                                                                  │

00:02:42 #2536 [Verbose] > │                                                         let v402 :           │

00:02:42 #2537 [Verbose] > │ num_complex_Complex<float> =                                                 │

00:02:42 #2538 [Verbose] > │                                                             if v399 then     │

00:02:42 #2539 [Verbose] > │                                                                 let v400 :   │

00:02:42 #2540 [Verbose] > │ string = "num_complex::Complex::new($0, $1)"                                 │

00:02:42 #2541 [Verbose] > │                                                                 let v401 :   │

00:02:42 #2542 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2543 [Verbose] > │ (0.0, 0.0) v400                                                              │

00:02:42 #2544 [Verbose] > │                                                                 v401         │

00:02:42 #2545 [Verbose] > │                                                             else             │

00:02:42 #2546 [Verbose] > │                                                                 v395         │

00:02:42 #2547 [Verbose] > │                                                         let v403 : string =  │

00:02:42 #2548 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2549 [Verbose] > │                                                         let v404 :           │

00:02:42 #2550 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2551 [Verbose] > │ (2.0, 0.0) v403                                                              │

00:02:42 #2552 [Verbose] > │                                                         let v405 : string =  │

00:02:42 #2553 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2554 [Verbose] > │                                                         let v406 :           │

00:02:42 #2555 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2556 [Verbose] > │ (3.141592653589793, 0.0) v405                                                │

00:02:42 #2557 [Verbose] > │                                                         let v407 :           │

00:02:42 #2558 [Verbose] > │ num_complex_Complex<float> = method27(v406)                                  │

00:02:42 #2559 [Verbose] > │                                                         let v408 :           │

00:02:42 #2560 [Verbose] > │ num_complex_Complex<float> = method28(v315)                                  │

00:02:42 #2561 [Verbose] > │                                                         let v409 : string =  │

00:02:42 #2562 [Verbose] > │ "num_complex::Complex::powc(v407, v408)"                                     │

00:02:42 #2563 [Verbose] > │                                                         let v410 :           │

00:02:42 #2564 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v409     │

00:02:42 #2565 [Verbose] > │                                                         let v411 : string =  │

00:02:42 #2566 [Verbose] > │ "$0 * $1"                                                                    │

00:02:42 #2567 [Verbose] > │                                                         let v412 :           │

00:02:42 #2568 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2569 [Verbose] > │ (v404, v410) v411                                                            │

00:02:42 #2570 [Verbose] > │                                                         let v413 : string =  │

00:02:42 #2571 [Verbose] > │ "$0 * $1"                                                                    │

00:02:42 #2572 [Verbose] > │                                                         let v414 :           │

00:02:42 #2573 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2574 [Verbose] > │ (v412, v385) v413                                                            │

00:02:42 #2575 [Verbose] > │                                                         let v415 : string =  │

00:02:42 #2576 [Verbose] > │ "$0 * $1"                                                                    │

00:02:42 #2577 [Verbose] > │                                                         let v416 :           │

00:02:42 #2578 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2579 [Verbose] > │ (v414, v375) v415                                                            │

00:02:42 #2580 [Verbose] > │                                                         let v417 : string =  │

00:02:42 #2581 [Verbose] > │ "$0 * $1"                                                                    │

00:02:42 #2582 [Verbose] > │                                                         let v418 :           │

00:02:42 #2583 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2584 [Verbose] > │ (v416, v402) v417                                                            │

00:02:42 #2585 [Verbose] > │                                                         v418                 │

00:02:42 #2586 [Verbose] > │                                             let v421 : string =              │

00:02:42 #2587 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2588 [Verbose] > │                                             let v422 :                       │

00:02:42 #2589 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2590 [Verbose] > │ (2.0, 0.0) v421                                                              │

00:02:42 #2591 [Verbose] > │                                             let v423 : string =              │

00:02:42 #2592 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2593 [Verbose] > │                                             let v424 :                       │

00:02:42 #2594 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2595 [Verbose] > │ (3.141592653589793, 0.0) v423                                                │

00:02:42 #2596 [Verbose] > │                                             let v425 :                       │

00:02:42 #2597 [Verbose] > │ num_complex_Complex<float> = method27(v424)                                  │

00:02:42 #2598 [Verbose] > │                                             let v426 :                       │

00:02:42 #2599 [Verbose] > │ num_complex_Complex<float> = method28(v235)                                  │

00:02:42 #2600 [Verbose] > │                                             let v427 : string =              │

00:02:42 #2601 [Verbose] > │ "num_complex::Complex::powc(v425, v426)"                                     │

00:02:42 #2602 [Verbose] > │                                             let v428 :                       │

00:02:42 #2603 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr () v427     │

00:02:42 #2604 [Verbose] > │                                             let v429 : string = "$0 * $1"    │

00:02:42 #2605 [Verbose] > │                                             let v430 :                       │

00:02:42 #2606 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2607 [Verbose] > │ (v422, v428) v429                                                            │

00:02:42 #2608 [Verbose] > │                                             let v431 : string = "$0 * $1"    │

00:02:42 #2609 [Verbose] > │                                             let v432 :                       │

00:02:42 #2610 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2611 [Verbose] > │ (v430, v305) v431                                                            │

00:02:42 #2612 [Verbose] > │                                             let v433 : string = "$0 * $1"    │

00:02:42 #2613 [Verbose] > │                                             let v434 :                       │

00:02:42 #2614 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2615 [Verbose] > │ (v432, v295) v433                                                            │

00:02:42 #2616 [Verbose] > │                                             let v435 : string = "$0 * $1"    │

00:02:42 #2617 [Verbose] > │                                             let v436 :                       │

00:02:42 #2618 [Verbose] > │ num_complex_Complex<float> = Fable.Core.RustInterop.emitRustExpr struct      │

00:02:42 #2619 [Verbose] > │ (v434, v420) v435                                                            │

00:02:42 #2620 [Verbose] > │                                             v436                             │

00:02:42 #2621 [Verbose] > │                                 let v439 : string =                          │

00:02:42 #2622 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2623 [Verbose] > │                                 let v440 : num_complex_Complex<float> =      │

00:02:42 #2624 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v439                   │

00:02:42 #2625 [Verbose] > │                                 let v441 : string =                          │

00:02:42 #2626 [Verbose] > │ "num_complex::Complex::new($0, $1)"                                          │

00:02:42 #2627 [Verbose] > │                                 let v442 : num_complex_Complex<float> =      │

00:02:42 #2628 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v441     │

00:02:42 #2629 [Verbose] > │                                 let v443 : num_complex_Complex<float> =      │

00:02:42 #2630 [Verbose] > │ method27(v442)                                                               │

00:02:42 #2631 [Verbose] > │                                 let v444 : num_complex_Complex<float> =      │

00:02:42 #2632 [Verbose] > │ method28(v155)                                                               │

00:02:42 #2633 [Verbose] > │                                 let v445 : string =                          │

00:02:42 #2634 [Verbose] > │ "num_complex::Complex::powc(v443, v444)"                                     │

00:02:42 #2635 [Verbose] > │                                 let v446 : num_complex_Complex<float> =      │

00:02:42 #2636 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v445                                  │

00:02:42 #2637 [Verbose] > │                                 let v447 : string = "$0 * $1"                │

00:02:42 #2638 [Verbose] > │                                 let v448 : num_complex_Complex<float> =      │

00:02:42 #2639 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v440, v446) v447                 │

00:02:42 #2640 [Verbose] > │                                 let v449 : string = "$0 * $1"                │

00:02:42 #2641 [Verbose] > │                                 let v450 : num_complex_Complex<float> =      │

00:02:42 #2642 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v448, v225) v449                 │

00:02:42 #2643 [Verbose] > │                                 let v451 : string = "$0 * $1"                │

00:02:42 #2644 [Verbose] > │                                 let v452 : num_complex_Complex<float> =      │

00:02:42 #2645 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v450, v215) v451                 │

00:02:42 #2646 [Verbose] > │                                 let v453 : string = "$0 * $1"                │

00:02:42 #2647 [Verbose] > │                                 let v454 : num_complex_Complex<float> =      │

00:02:42 #2648 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v452, v438) v453                 │

00:02:42 #2649 [Verbose] > │                                 v454                                         │

00:02:42 #2650 [Verbose] > │                     let v457 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #2651 [Verbose] > │                     let v458 : num_complex_Complex<float> =                  │

00:02:42 #2652 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v457                   │

00:02:42 #2653 [Verbose] > │                     let v459 : string = "num_complex::Complex::new($0, $1)"  │

00:02:42 #2654 [Verbose] > │                     let v460 : num_complex_Complex<float> =                  │

00:02:42 #2655 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v459     │

00:02:42 #2656 [Verbose] > │                     let v461 : num_complex_Complex<float> = method27(v460)   │

00:02:42 #2657 [Verbose] > │                     let v462 : num_complex_Complex<float> = method28(v75)    │

00:02:42 #2658 [Verbose] > │                     let v463 : string = "num_complex::Complex::powc(v461,    │

00:02:42 #2659 [Verbose] > │ v462)"                                                                       │

00:02:42 #2660 [Verbose] > │                     let v464 : num_complex_Complex<float> =                  │

00:02:42 #2661 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v463                                  │

00:02:42 #2662 [Verbose] > │                     let v465 : string = "$0 * $1"                            │

00:02:42 #2663 [Verbose] > │                     let v466 : num_complex_Complex<float> =                  │

00:02:42 #2664 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v458, v464) v465                 │

00:02:42 #2665 [Verbose] > │                     let v467 : string = "$0 * $1"                            │

00:02:43 #2666 [Verbose] > │                     let v468 : num_complex_Complex<float> =                  │

00:02:43 #2667 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v466, v145) v467                 │

00:02:43 #2668 [Verbose] > │                     let v469 : string = "$0 * $1"                            │

00:02:43 #2669 [Verbose] > │                     let v470 : num_complex_Complex<float> =                  │

00:02:43 #2670 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v468, v135) v469                 │

00:02:43 #2671 [Verbose] > │                     let v471 : string = "$0 * $1"                            │

00:02:43 #2672 [Verbose] > │                     let v472 : num_complex_Complex<float> =                  │

00:02:43 #2673 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v470, v456) v471                 │

00:02:43 #2674 [Verbose] > │                     v472                                                     │

00:02:43 #2675 [Verbose] > │         let v475 : string = "num_complex::Complex::new($0, $1)"              │

00:02:43 #2676 [Verbose] > │         let v476 : num_complex_Complex<float> =                              │

00:02:43 #2677 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v475                   │

00:02:43 #2678 [Verbose] > │         let v477 : string = "num_complex::Complex::new($0, $1)"              │

00:02:43 #2679 [Verbose] > │         let v478 : num_complex_Complex<float> =                              │

00:02:43 #2680 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v477     │

00:02:43 #2681 [Verbose] > │         let v479 : num_complex_Complex<float> = method27(v478)               │

00:02:43 #2682 [Verbose] > │         let v480 : num_complex_Complex<float> = method28(v1)                 │

00:02:43 #2683 [Verbose] > │         let v481 : string = "num_complex::Complex::powc(v479, v480)"         │

00:02:43 #2684 [Verbose] > │         let v482 : num_complex_Complex<float> =                              │

00:02:43 #2685 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v481                                  │

00:02:43 #2686 [Verbose] > │         let v483 : string = "$0 * $1"                                        │

00:02:43 #2687 [Verbose] > │         let v484 : num_complex_Complex<float> =                              │

00:02:43 #2688 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v476, v482) v483                 │

00:02:43 #2689 [Verbose] > │         let v485 : string = "$0 * $1"                                        │

00:02:43 #2690 [Verbose] > │         let v486 : num_complex_Complex<float> =                              │

00:02:43 #2691 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v484, v65) v485                  │

00:02:43 #2692 [Verbose] > │         let v487 : string = "$0 * $1"                                        │

00:02:43 #2693 [Verbose] > │         let v488 : num_complex_Complex<float> =                              │

00:02:43 #2694 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v486, v55) v487                  │

00:02:43 #2695 [Verbose] > │         let v489 : string = "$0 * $1"                                        │

00:02:43 #2696 [Verbose] > │         let v490 : num_complex_Complex<float> =                              │

00:02:43 #2697 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v488, v474) v489                 │

00:02:43 #2698 [Verbose] > │         v490                                                                 │

00:02:43 #2699 [Verbose] > │ and method31 (v0 : bool) : bool =                                            │

00:02:43 #2700 [Verbose] > │     v0                                                                       │

00:02:43 #2701 [Verbose] > │ and method1 (v0 : pyo3_Python) : unit =                                      │

00:02:43 #2702 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #2703 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #2704 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v1                     │

00:02:43 #2705 [Verbose] > │     let v3 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #2706 [Verbose] > │     let v4 : num_complex_Complex<float> =                                    │

00:02:43 #2707 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (-1.0, 0.0) v3                    │

00:02:43 #2708 [Verbose] > │     let v5 : (struct (num_complex_Complex<float> * float) []) = [|struct     │

00:02:43 #2709 [Verbose] > │ (v2, 1.6449340668482264); struct (v4, -0.08333333333333333)|]                │

00:02:43 #2710 [Verbose] > │     let v6 : int32 = v5.Length                                               │

00:02:43 #2711 [Verbose] > │     let v7 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:43 #2712 [Verbose] > │     while method2(v6, v7) do                                                 │

00:02:43 #2713 [Verbose] > │         let v9 : int32 = v7.l0                                               │

00:02:43 #2714 [Verbose] > │         let struct (v10 : num_complex_Complex<float>, v11 : float) = v5.[int │

00:02:43 #2715 [Verbose] > │ v9]                                                                          │

00:02:43 #2716 [Verbose] > │         let v12 : string = $"        s = mpmath.zeta(s)"                     │

00:02:43 #2717 [Verbose] > │         let v13 : num_complex_Complex<float> = method3(v10)                  │

00:02:43 #2718 [Verbose] > │         let v14 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #2719 [Verbose] > │ method4(v0, v12, v13)                                                        │

00:02:43 #2720 [Verbose] > │         let v15 : num_complex_Complex<float> = method24(v0, v10)             │

00:02:43 #2721 [Verbose] > │         let v16 : string = "v14.ok()"                                        │

00:02:43 #2722 [Verbose] > │         let v17 : num_complex_Complex<float> option =                        │

00:02:43 #2723 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v16                                   │

00:02:43 #2724 [Verbose] > │         let v18 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #2725 [Verbose] > │         let v19 : US0 = US0_1                                                │

00:02:43 #2726 [Verbose] > │         let v20 : US0 = v17 |> Option.map v18 |> Option.defaultValue v19     │

00:02:43 #2727 [Verbose] > │         let v21 : string = "f64::NAN"                                        │

00:02:43 #2728 [Verbose] > │         let v22 : float = Fable.Core.RustInterop.emitRustExpr () v21         │

00:02:43 #2729 [Verbose] > │         let v23 : string = "f64::NAN"                                        │

00:02:43 #2730 [Verbose] > │         let v24 : float = Fable.Core.RustInterop.emitRustExpr () v23         │

00:02:43 #2731 [Verbose] > │         let v25 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #2732 [Verbose] > │         let v26 : num_complex_Complex<float> =                               │

00:02:43 #2733 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v22, v24) v25                    │

00:02:43 #2734 [Verbose] > │         let v29 : num_complex_Complex<float> =                               │

00:02:43 #2735 [Verbose] > │             match v20 with                                                   │

00:02:43 #2736 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #2737 [Verbose] > │                 v26                                                          │

00:02:43 #2738 [Verbose] > │             | US0_0(v27) -> (* Some *)                                       │

00:02:43 #2739 [Verbose] > │                 v27                                                          │

00:02:43 #2740 [Verbose] > │         let v30 : num_complex_Complex<float> = method8(v29)                  │

00:02:43 #2741 [Verbose] > │         let v31 : string = "v30.im"                                          │

00:02:43 #2742 [Verbose] > │         let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31         │

00:02:43 #2743 [Verbose] > │         let v33 : string = $"%A{v32}"                                        │

00:02:43 #2744 [Verbose] > │         System.Console.WriteLine v33                                         │

00:02:43 #2745 [Verbose] > │         let v34 : bool = v32 = 0.0                                           │

00:02:43 #2746 [Verbose] > │         let v36 : bool =                                                     │

00:02:43 #2747 [Verbose] > │             if v34 then                                                      │

00:02:43 #2748 [Verbose] > │                 true                                                         │

00:02:43 #2749 [Verbose] > │             else                                                             │

00:02:43 #2750 [Verbose] > │                 method31(v34)                                                │

00:02:43 #2751 [Verbose] > │         let v37 : string = $"__expect / actual: %A{v32} / expected: %A{0.0}" │

00:02:43 #2752 [Verbose] > │         let v38 : bool = v36 = false                                         │

00:02:43 #2753 [Verbose] > │         if v38 then                                                          │

00:02:43 #2754 [Verbose] > │             failwith<unit> v37                                               │

00:02:43 #2755 [Verbose] > │         let v39 : num_complex_Complex<float> = method7(v29)                  │

00:02:43 #2756 [Verbose] > │         let v40 : string = "v39.re"                                          │

00:02:43 #2757 [Verbose] > │         let v41 : float = Fable.Core.RustInterop.emitRustExpr () v40         │

00:02:43 #2758 [Verbose] > │         let v42 : float = v41 - v11                                          │

00:02:43 #2759 [Verbose] > │         let v43 : float =  -v42                                              │

00:02:43 #2760 [Verbose] > │         let v44 : bool = v42 >= v43                                          │

00:02:43 #2761 [Verbose] > │         let v45 : float =                                                    │

00:02:43 #2762 [Verbose] > │             if v44 then                                                      │

00:02:43 #2763 [Verbose] > │                 v42                                                          │

00:02:43 #2764 [Verbose] > │             else                                                             │

00:02:43 #2765 [Verbose] > │                 v43                                                          │

00:02:43 #2766 [Verbose] > │         let v46 : string = $"%A{v45}"                                        │

00:02:43 #2767 [Verbose] > │         System.Console.WriteLine v46                                         │

00:02:43 #2768 [Verbose] > │         let v47 : bool = v45 < 0.0001                                        │

00:02:43 #2769 [Verbose] > │         let v49 : bool =                                                     │

00:02:43 #2770 [Verbose] > │             if v47 then                                                      │

00:02:43 #2771 [Verbose] > │                 true                                                         │

00:02:43 #2772 [Verbose] > │             else                                                             │

00:02:43 #2773 [Verbose] > │                 method31(v47)                                                │

00:02:43 #2774 [Verbose] > │         let v50 : string = $"__expect / actual: %A{v45} / expected:          │

00:02:43 #2775 [Verbose] > │ %A{0.0001}"                                                                  │

00:02:43 #2776 [Verbose] > │         let v51 : bool = v49 = false                                         │

00:02:43 #2777 [Verbose] > │         if v51 then                                                          │

00:02:43 #2778 [Verbose] > │             failwith<unit> v50                                               │

00:02:43 #2779 [Verbose] > │         let v52 : int32 = v9 + 1                                             │

00:02:43 #2780 [Verbose] > │         v7.l0 <- v52                                                         │

00:02:43 #2781 [Verbose] > │         ()                                                                   │

00:02:43 #2782 [Verbose] > │     ()                                                                       │

00:02:43 #2783 [Verbose] > │ and method32 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> =    │

00:02:43 #2784 [Verbose] > │     v0                                                                       │

00:02:43 #2785 [Verbose] > │ and method33 (v0 : Result<unit, pyo3_PyErr>) : Result<unit, pyo3_PyErr> =    │

00:02:43 #2786 [Verbose] > │     v0                                                                       │

00:02:43 #2787 [Verbose] > │ and method0 () : unit =                                                      │

00:02:43 #2788 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #2789 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #2790 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #2791 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #2792 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #2793 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #2794 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #2795 [Verbose] > │     method1(v3)                                                              │

00:02:43 #2796 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #2797 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #2798 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #2799 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #2800 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #2801 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #2802 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #2803 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #2804 [Verbose] > │ () v8                                                                        │

00:02:43 #2805 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #2806 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #2807 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #2808 [Verbose] > │     ()                                                                       │

00:02:43 #2809 [Verbose] > │ and method35 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #2810 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #2811 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #2812 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, -2.0) v1                    │

00:02:43 #2813 [Verbose] > │     let v3 : string = $"        s = mpmath.zeta(s)"                          │

00:02:43 #2814 [Verbose] > │     let v4 : num_complex_Complex<float> = method3(v2)                        │

00:02:43 #2815 [Verbose] > │     let v5 : Result<num_complex_Complex<float>, std_string_String> =         │

00:02:43 #2816 [Verbose] > │ method4(v0, v3, v4)                                                          │

00:02:43 #2817 [Verbose] > │     let v6 : num_complex_Complex<float> = method24(v0, v2)                   │

00:02:43 #2818 [Verbose] > │     let v7 : string = "v5.ok()"                                              │

00:02:43 #2819 [Verbose] > │     let v8 : num_complex_Complex<float> option =                             │

00:02:43 #2820 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7                                    │

00:02:43 #2821 [Verbose] > │     let v9 : (num_complex_Complex<float> -> US0) = method30()                │

00:02:43 #2822 [Verbose] > │     let v10 : US0 = US0_1                                                    │

00:02:43 #2823 [Verbose] > │     let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10           │

00:02:43 #2824 [Verbose] > │     let v12 : string = "f64::NAN"                                            │

00:02:43 #2825 [Verbose] > │     let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12             │

00:02:43 #2826 [Verbose] > │     let v14 : string = "f64::NAN"                                            │

00:02:43 #2827 [Verbose] > │     let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14             │

00:02:43 #2828 [Verbose] > │     let v16 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #2829 [Verbose] > │     let v17 : num_complex_Complex<float> =                                   │

00:02:43 #2830 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16                    │

00:02:43 #2831 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │

00:02:43 #2832 [Verbose] > │         match v11 with                                                       │

00:02:43 #2833 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:02:43 #2834 [Verbose] > │             v17                                                              │

00:02:43 #2835 [Verbose] > │         | US0_0(v18) -> (* Some *)                                           │

00:02:43 #2836 [Verbose] > │             v18                                                              │

00:02:43 #2837 [Verbose] > │     let v21 : num_complex_Complex<float> = method7(v20)                      │

00:02:43 #2838 [Verbose] > │     let v22 : string = "v21.re"                                              │

00:02:43 #2839 [Verbose] > │     let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22             │

00:02:43 #2840 [Verbose] > │     let v24 : float = v23 - 0.8673                                           │

00:02:43 #2841 [Verbose] > │     let v25 : float =  -v24                                                  │

00:02:43 #2842 [Verbose] > │     let v26 : bool = v24 >= v25                                              │

00:02:43 #2843 [Verbose] > │     let v27 : float =                                                        │

00:02:43 #2844 [Verbose] > │         if v26 then                                                          │

00:02:43 #2845 [Verbose] > │             v24                                                              │

00:02:43 #2846 [Verbose] > │         else                                                                 │

00:02:43 #2847 [Verbose] > │             v25                                                              │

00:02:43 #2848 [Verbose] > │     let v28 : string = $"%A{v27}"                                            │

00:02:43 #2849 [Verbose] > │     System.Console.WriteLine v28                                             │

00:02:43 #2850 [Verbose] > │     let v29 : bool = v27 < 0.001                                             │

00:02:43 #2851 [Verbose] > │     let v31 : bool =                                                         │

00:02:43 #2852 [Verbose] > │         if v29 then                                                          │

00:02:43 #2853 [Verbose] > │             true                                                             │

00:02:43 #2854 [Verbose] > │         else                                                                 │

00:02:43 #2855 [Verbose] > │             method31(v29)                                                    │

00:02:43 #2856 [Verbose] > │     let v32 : string = $"__expect / actual: %A{v27} / expected: %A{0.001}"   │

00:02:43 #2857 [Verbose] > │     let v33 : bool = v31 = false                                             │

00:02:43 #2858 [Verbose] > │     if v33 then                                                              │

00:02:43 #2859 [Verbose] > │         failwith<unit> v32                                                   │

00:02:43 #2860 [Verbose] > │     let v34 : num_complex_Complex<float> = method8(v20)                      │

00:02:43 #2861 [Verbose] > │     let v35 : string = "v34.im"                                              │

00:02:43 #2862 [Verbose] > │     let v36 : float = Fable.Core.RustInterop.emitRustExpr () v35             │

00:02:43 #2863 [Verbose] > │     let v37 : float = v36 - 0.275                                            │

00:02:43 #2864 [Verbose] > │     let v38 : float =  -v37                                                  │

00:02:43 #2865 [Verbose] > │     let v39 : bool = v37 >= v38                                              │

00:02:43 #2866 [Verbose] > │     let v40 : float =                                                        │

00:02:43 #2867 [Verbose] > │         if v39 then                                                          │

00:02:43 #2868 [Verbose] > │             v37                                                              │

00:02:43 #2869 [Verbose] > │         else                                                                 │

00:02:43 #2870 [Verbose] > │             v38                                                              │

00:02:43 #2871 [Verbose] > │     let v41 : string = $"%A{v40}"                                            │

00:02:43 #2872 [Verbose] > │     System.Console.WriteLine v41                                             │

00:02:43 #2873 [Verbose] > │     let v42 : bool = v40 < 0.001                                             │

00:02:43 #2874 [Verbose] > │     let v44 : bool =                                                         │

00:02:43 #2875 [Verbose] > │         if v42 then                                                          │

00:02:43 #2876 [Verbose] > │             true                                                             │

00:02:43 #2877 [Verbose] > │         else                                                                 │

00:02:43 #2878 [Verbose] > │             method31(v42)                                                    │

00:02:43 #2879 [Verbose] > │     let v45 : string = $"__expect / actual: %A{v40} / expected: %A{0.001}"   │

00:02:43 #2880 [Verbose] > │     let v46 : bool = v44 = false                                             │

00:02:43 #2881 [Verbose] > │     if v46 then                                                              │

00:02:43 #2882 [Verbose] > │         failwith<unit> v45                                                   │

00:02:43 #2883 [Verbose] > │ and method34 () : unit =                                                     │

00:02:43 #2884 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #2885 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #2886 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #2887 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #2888 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #2889 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #2890 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #2891 [Verbose] > │     method35(v3)                                                             │

00:02:43 #2892 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #2893 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #2894 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #2895 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #2896 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #2897 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #2898 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #2899 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #2900 [Verbose] > │ () v8                                                                        │

00:02:43 #2901 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #2902 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #2903 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #2904 [Verbose] > │     ()                                                                       │

00:02:43 #2905 [Verbose] > │ and method38 () : UH0 =                                                      │

00:02:43 #2906 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:02:43 #2907 [Verbose] > │     let v1 : UH0 = UH0_1(-40.0, v0)                                          │

00:02:43 #2908 [Verbose] > │     let v2 : UH0 = UH0_1(-38.0, v1)                                          │

00:02:43 #2909 [Verbose] > │     let v3 : UH0 = UH0_1(-36.0, v2)                                          │

00:02:43 #2910 [Verbose] > │     let v4 : UH0 = UH0_1(-34.0, v3)                                          │

00:02:43 #2911 [Verbose] > │     let v5 : UH0 = UH0_1(-32.0, v4)                                          │

00:02:43 #2912 [Verbose] > │     let v6 : UH0 = UH0_1(-30.0, v5)                                          │

00:02:43 #2913 [Verbose] > │     let v7 : UH0 = UH0_1(-28.0, v6)                                          │

00:02:43 #2914 [Verbose] > │     let v8 : UH0 = UH0_1(-26.0, v7)                                          │

00:02:43 #2915 [Verbose] > │     let v9 : UH0 = UH0_1(-24.0, v8)                                          │

00:02:43 #2916 [Verbose] > │     let v10 : UH0 = UH0_1(-22.0, v9)                                         │

00:02:43 #2917 [Verbose] > │     let v11 : UH0 = UH0_1(-20.0, v10)                                        │

00:02:43 #2918 [Verbose] > │     let v12 : UH0 = UH0_1(-18.0, v11)                                        │

00:02:43 #2919 [Verbose] > │     let v13 : UH0 = UH0_1(-16.0, v12)                                        │

00:02:43 #2920 [Verbose] > │     let v14 : UH0 = UH0_1(-14.0, v13)                                        │

00:02:43 #2921 [Verbose] > │     let v15 : UH0 = UH0_1(-12.0, v14)                                        │

00:02:43 #2922 [Verbose] > │     let v16 : UH0 = UH0_1(-10.0, v15)                                        │

00:02:43 #2923 [Verbose] > │     let v17 : UH0 = UH0_1(-8.0, v16)                                         │

00:02:43 #2924 [Verbose] > │     let v18 : UH0 = UH0_1(-6.0, v17)                                         │

00:02:43 #2925 [Verbose] > │     let v19 : UH0 = UH0_1(-4.0, v18)                                         │

00:02:43 #2926 [Verbose] > │     UH0_1(-2.0, v19)                                                         │

00:02:43 #2927 [Verbose] > │ and method39 (v0 : pyo3_Python, v1 : UH0) : unit =                           │

00:02:43 #2928 [Verbose] > │     match v1 with                                                            │

00:02:43 #2929 [Verbose] > │     | UH0_1(v2, v3) -> (* Cons *)                                            │

00:02:43 #2930 [Verbose] > │         let v4 : string = "num_complex::Complex::new($0, $1)"                │

00:02:43 #2931 [Verbose] > │         let v5 : num_complex_Complex<float> =                                │

00:02:43 #2932 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v2, 0.0) v4                      │

00:02:43 #2933 [Verbose] > │         let v6 : string = $"        s = mpmath.zeta(s)"                      │

00:02:43 #2934 [Verbose] > │         let v7 : num_complex_Complex<float> = method3(v5)                    │

00:02:43 #2935 [Verbose] > │         let v8 : Result<num_complex_Complex<float>, std_string_String> =     │

00:02:43 #2936 [Verbose] > │ method4(v0, v6, v7)                                                          │

00:02:43 #2937 [Verbose] > │         let v9 : num_complex_Complex<float> = method24(v0, v5)               │

00:02:43 #2938 [Verbose] > │         let v10 : string = "v8.ok()"                                         │

00:02:43 #2939 [Verbose] > │         let v11 : num_complex_Complex<float> option =                        │

00:02:43 #2940 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v10                                   │

00:02:43 #2941 [Verbose] > │         let v12 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #2942 [Verbose] > │         let v13 : US0 = US0_1                                                │

00:02:43 #2943 [Verbose] > │         let v14 : US0 = v11 |> Option.map v12 |> Option.defaultValue v13     │

00:02:43 #2944 [Verbose] > │         let v15 : string = "f64::NAN"                                        │

00:02:43 #2945 [Verbose] > │         let v16 : float = Fable.Core.RustInterop.emitRustExpr () v15         │

00:02:43 #2946 [Verbose] > │         let v17 : string = "f64::NAN"                                        │

00:02:43 #2947 [Verbose] > │         let v18 : float = Fable.Core.RustInterop.emitRustExpr () v17         │

00:02:43 #2948 [Verbose] > │         let v19 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #2949 [Verbose] > │         let v20 : num_complex_Complex<float> =                               │

00:02:43 #2950 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v16, v18) v19                    │

00:02:43 #2951 [Verbose] > │         let v23 : num_complex_Complex<float> =                               │

00:02:43 #2952 [Verbose] > │             match v14 with                                                   │

00:02:43 #2953 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #2954 [Verbose] > │                 v20                                                          │

00:02:43 #2955 [Verbose] > │             | US0_0(v21) -> (* Some *)                                       │

00:02:43 #2956 [Verbose] > │                 v21                                                          │

00:02:43 #2957 [Verbose] > │         let v24 : num_complex_Complex<float> = method7(v23)                  │

00:02:43 #2958 [Verbose] > │         let v25 : string = "v24.re"                                          │

00:02:43 #2959 [Verbose] > │         let v26 : float = Fable.Core.RustInterop.emitRustExpr () v25         │

00:02:43 #2960 [Verbose] > │         let v27 : string = $"%A{v26}"                                        │

00:02:43 #2961 [Verbose] > │         System.Console.WriteLine v27                                         │

00:02:43 #2962 [Verbose] > │         let v28 : bool = v26 = 0.0                                           │

00:02:43 #2963 [Verbose] > │         let v30 : bool =                                                     │

00:02:43 #2964 [Verbose] > │             if v28 then                                                      │

00:02:43 #2965 [Verbose] > │                 true                                                         │

00:02:43 #2966 [Verbose] > │             else                                                             │

00:02:43 #2967 [Verbose] > │                 method31(v28)                                                │

00:02:43 #2968 [Verbose] > │         let v31 : string = $"__expect / actual: %A{v26} / expected: %A{0.0}" │

00:02:43 #2969 [Verbose] > │         let v32 : bool = v30 = false                                         │

00:02:43 #2970 [Verbose] > │         if v32 then                                                          │

00:02:43 #2971 [Verbose] > │             failwith<unit> v31                                               │

00:02:43 #2972 [Verbose] > │         let v33 : num_complex_Complex<float> = method8(v23)                  │

00:02:43 #2973 [Verbose] > │         let v34 : string = "v33.im"                                          │

00:02:43 #2974 [Verbose] > │         let v35 : float = Fable.Core.RustInterop.emitRustExpr () v34         │

00:02:43 #2975 [Verbose] > │         let v36 : string = $"%A{v35}"                                        │

00:02:43 #2976 [Verbose] > │         System.Console.WriteLine v36                                         │

00:02:43 #2977 [Verbose] > │         let v37 : bool = v35 = 0.0                                           │

00:02:43 #2978 [Verbose] > │         let v39 : bool =                                                     │

00:02:43 #2979 [Verbose] > │             if v37 then                                                      │

00:02:43 #2980 [Verbose] > │                 true                                                         │

00:02:43 #2981 [Verbose] > │             else                                                             │

00:02:43 #2982 [Verbose] > │                 method31(v37)                                                │

00:02:43 #2983 [Verbose] > │         let v40 : string = $"__expect / actual: %A{v35} / expected: %A{0.0}" │

00:02:43 #2984 [Verbose] > │         let v41 : bool = v39 = false                                         │

00:02:43 #2985 [Verbose] > │         if v41 then                                                          │

00:02:43 #2986 [Verbose] > │             failwith<unit> v40                                               │

00:02:43 #2987 [Verbose] > │         method39(v0, v3)                                                     │

00:02:43 #2988 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:02:43 #2989 [Verbose] > │         ()                                                                   │

00:02:43 #2990 [Verbose] > │ and method37 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #2991 [Verbose] > │     let v1 : UH0 = method38()                                                │

00:02:43 #2992 [Verbose] > │     method39(v0, v1)                                                         │

00:02:43 #2993 [Verbose] > │ and method36 () : unit =                                                     │

00:02:43 #2994 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #2995 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #2996 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #2997 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #2998 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #2999 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3000 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3001 [Verbose] > │     method37(v3)                                                             │

00:02:43 #3002 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3003 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3004 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3005 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3006 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3007 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3008 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3009 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3010 [Verbose] > │ () v8                                                                        │

00:02:43 #3011 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3012 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3013 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3014 [Verbose] > │     ()                                                                       │

00:02:43 #3015 [Verbose] > │ and method41 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3016 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3017 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #3018 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 14.134725) v1               │

00:02:43 #3019 [Verbose] > │     let v3 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3020 [Verbose] > │     let v4 : num_complex_Complex<float> =                                    │

00:02:43 #3021 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 21.02204) v3                │

00:02:43 #3022 [Verbose] > │     let v5 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3023 [Verbose] > │     let v6 : num_complex_Complex<float> =                                    │

00:02:43 #3024 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 25.010857) v5               │

00:02:43 #3025 [Verbose] > │     let v7 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3026 [Verbose] > │     let v8 : num_complex_Complex<float> =                                    │

00:02:43 #3027 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 30.424876) v7               │

00:02:43 #3028 [Verbose] > │     let v9 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3029 [Verbose] > │     let v10 : num_complex_Complex<float> =                                   │

00:02:43 #3030 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 32.935062) v9               │

00:02:43 #3031 [Verbose] > │     let v11 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #3032 [Verbose] > │     let v12 : num_complex_Complex<float> =                                   │

00:02:43 #3033 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 37.586178) v11              │

00:02:43 #3034 [Verbose] > │     let v13 : (num_complex_Complex<float> []) = [|v2; v4; v6; v8; v10; v12|] │

00:02:43 #3035 [Verbose] > │     let v14 : int32 = v13.Length                                             │

00:02:43 #3036 [Verbose] > │     let v15 : Mut0 = {l0 = 0} : Mut0                                         │

00:02:43 #3037 [Verbose] > │     while method2(v14, v15) do                                               │

00:02:43 #3038 [Verbose] > │         let v17 : int32 = v15.l0                                             │

00:02:43 #3039 [Verbose] > │         let v18 : num_complex_Complex<float> = v13.[int v17]                 │

00:02:43 #3040 [Verbose] > │         let v19 : string = $"        s = mpmath.zeta(s)"                     │

00:02:43 #3041 [Verbose] > │         let v20 : num_complex_Complex<float> = method3(v18)                  │

00:02:43 #3042 [Verbose] > │         let v21 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3043 [Verbose] > │ method4(v0, v19, v20)                                                        │

00:02:43 #3044 [Verbose] > │         let v22 : num_complex_Complex<float> = method24(v0, v18)             │

00:02:43 #3045 [Verbose] > │         let v23 : string = "v21.ok()"                                        │

00:02:43 #3046 [Verbose] > │         let v24 : num_complex_Complex<float> option =                        │

00:02:43 #3047 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v23                                   │

00:02:43 #3048 [Verbose] > │         let v25 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3049 [Verbose] > │         let v26 : US0 = US0_1                                                │

00:02:43 #3050 [Verbose] > │         let v27 : US0 = v24 |> Option.map v25 |> Option.defaultValue v26     │

00:02:43 #3051 [Verbose] > │         let v28 : string = "f64::NAN"                                        │

00:02:43 #3052 [Verbose] > │         let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28         │

00:02:43 #3053 [Verbose] > │         let v30 : string = "f64::NAN"                                        │

00:02:43 #3054 [Verbose] > │         let v31 : float = Fable.Core.RustInterop.emitRustExpr () v30         │

00:02:43 #3055 [Verbose] > │         let v32 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3056 [Verbose] > │         let v33 : num_complex_Complex<float> =                               │

00:02:43 #3057 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v29, v31) v32                    │

00:02:43 #3058 [Verbose] > │         let v36 : num_complex_Complex<float> =                               │

00:02:43 #3059 [Verbose] > │             match v27 with                                                   │

00:02:43 #3060 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3061 [Verbose] > │                 v33                                                          │

00:02:43 #3062 [Verbose] > │             | US0_0(v34) -> (* Some *)                                       │

00:02:43 #3063 [Verbose] > │                 v34                                                          │

00:02:43 #3064 [Verbose] > │         let v37 : num_complex_Complex<float> = method7(v36)                  │

00:02:43 #3065 [Verbose] > │         let v38 : string = "v37.re"                                          │

00:02:43 #3066 [Verbose] > │         let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38         │

00:02:43 #3067 [Verbose] > │         let v40 : float =  -v39                                              │

00:02:43 #3068 [Verbose] > │         let v41 : bool = v39 >= v40                                          │

00:02:43 #3069 [Verbose] > │         let v42 : float =                                                    │

00:02:43 #3070 [Verbose] > │             if v41 then                                                      │

00:02:43 #3071 [Verbose] > │                 v39                                                          │

00:02:43 #3072 [Verbose] > │             else                                                             │

00:02:43 #3073 [Verbose] > │                 v40                                                          │

00:02:43 #3074 [Verbose] > │         let v43 : string = $"%A{v42}"                                        │

00:02:43 #3075 [Verbose] > │         System.Console.WriteLine v43                                         │

00:02:43 #3076 [Verbose] > │         let v44 : bool = v42 < 0.0001                                        │

00:02:43 #3077 [Verbose] > │         let v46 : bool =                                                     │

00:02:43 #3078 [Verbose] > │             if v44 then                                                      │

00:02:43 #3079 [Verbose] > │                 true                                                         │

00:02:43 #3080 [Verbose] > │             else                                                             │

00:02:43 #3081 [Verbose] > │                 method31(v44)                                                │

00:02:43 #3082 [Verbose] > │         let v47 : string = $"__expect / actual: %A{v42} / expected:          │

00:02:43 #3083 [Verbose] > │ %A{0.0001}"                                                                  │

00:02:43 #3084 [Verbose] > │         let v48 : bool = v46 = false                                         │

00:02:43 #3085 [Verbose] > │         if v48 then                                                          │

00:02:43 #3086 [Verbose] > │             failwith<unit> v47                                               │

00:02:43 #3087 [Verbose] > │         let v49 : num_complex_Complex<float> = method8(v36)                  │

00:02:43 #3088 [Verbose] > │         let v50 : string = "v49.im"                                          │

00:02:43 #3089 [Verbose] > │         let v51 : float = Fable.Core.RustInterop.emitRustExpr () v50         │

00:02:43 #3090 [Verbose] > │         let v52 : float =  -v51                                              │

00:02:43 #3091 [Verbose] > │         let v53 : bool = v51 >= v52                                          │

00:02:43 #3092 [Verbose] > │         let v54 : float =                                                    │

00:02:43 #3093 [Verbose] > │             if v53 then                                                      │

00:02:43 #3094 [Verbose] > │                 v51                                                          │

00:02:43 #3095 [Verbose] > │             else                                                             │

00:02:43 #3096 [Verbose] > │                 v52                                                          │

00:02:43 #3097 [Verbose] > │         let v55 : string = $"%A{v54}"                                        │

00:02:43 #3098 [Verbose] > │         System.Console.WriteLine v55                                         │

00:02:43 #3099 [Verbose] > │         let v56 : bool = v54 < 0.0001                                        │

00:02:43 #3100 [Verbose] > │         let v58 : bool =                                                     │

00:02:43 #3101 [Verbose] > │             if v56 then                                                      │

00:02:43 #3102 [Verbose] > │                 true                                                         │

00:02:43 #3103 [Verbose] > │             else                                                             │

00:02:43 #3104 [Verbose] > │                 method31(v56)                                                │

00:02:43 #3105 [Verbose] > │         let v59 : string = $"__expect / actual: %A{v54} / expected:          │

00:02:43 #3106 [Verbose] > │ %A{0.0001}"                                                                  │

00:02:43 #3107 [Verbose] > │         let v60 : bool = v58 = false                                         │

00:02:43 #3108 [Verbose] > │         if v60 then                                                          │

00:02:43 #3109 [Verbose] > │             failwith<unit> v59                                               │

00:02:43 #3110 [Verbose] > │         let v61 : int32 = v17 + 1                                            │

00:02:43 #3111 [Verbose] > │         v15.l0 <- v61                                                        │

00:02:43 #3112 [Verbose] > │         ()                                                                   │

00:02:43 #3113 [Verbose] > │     ()                                                                       │

00:02:43 #3114 [Verbose] > │ and method40 () : unit =                                                     │

00:02:43 #3115 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3116 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3117 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3118 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3119 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3120 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3121 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3122 [Verbose] > │     method41(v3)                                                             │

00:02:43 #3123 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3124 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3125 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3126 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3127 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3128 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3129 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3130 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3131 [Verbose] > │ () v8                                                                        │

00:02:43 #3132 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3133 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3134 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3135 [Verbose] > │     ()                                                                       │

00:02:43 #3136 [Verbose] > │ and method43 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3137 [Verbose] > │     let v1 : (float []) = [|2.0; 3.0; 4.0; 5.0; 10.0; 20.0; 50.0|]           │

00:02:43 #3138 [Verbose] > │     let v2 : int32 = v1.Length                                               │

00:02:43 #3139 [Verbose] > │     let v3 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:43 #3140 [Verbose] > │     while method2(v2, v3) do                                                 │

00:02:43 #3141 [Verbose] > │         let v5 : int32 = v3.l0                                               │

00:02:43 #3142 [Verbose] > │         let v6 : float = v1.[int v5]                                         │

00:02:43 #3143 [Verbose] > │         let v7 : string = "num_complex::Complex::new($0, $1)"                │

00:02:43 #3144 [Verbose] > │         let v8 : num_complex_Complex<float> =                                │

00:02:43 #3145 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v6, 0.0) v7                      │

00:02:43 #3146 [Verbose] > │         let v9 : string = $"        s = mpmath.zeta(s)"                      │

00:02:43 #3147 [Verbose] > │         let v10 : num_complex_Complex<float> = method3(v8)                   │

00:02:43 #3148 [Verbose] > │         let v11 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3149 [Verbose] > │ method4(v0, v9, v10)                                                         │

00:02:43 #3150 [Verbose] > │         let v12 : num_complex_Complex<float> = method24(v0, v8)              │

00:02:43 #3151 [Verbose] > │         let v13 : string = "v11.ok()"                                        │

00:02:43 #3152 [Verbose] > │         let v14 : num_complex_Complex<float> option =                        │

00:02:43 #3153 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13                                   │

00:02:43 #3154 [Verbose] > │         let v15 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3155 [Verbose] > │         let v16 : US0 = US0_1                                                │

00:02:43 #3156 [Verbose] > │         let v17 : US0 = v14 |> Option.map v15 |> Option.defaultValue v16     │

00:02:43 #3157 [Verbose] > │         let v18 : string = "f64::NAN"                                        │

00:02:43 #3158 [Verbose] > │         let v19 : float = Fable.Core.RustInterop.emitRustExpr () v18         │

00:02:43 #3159 [Verbose] > │         let v20 : string = "f64::NAN"                                        │

00:02:43 #3160 [Verbose] > │         let v21 : float = Fable.Core.RustInterop.emitRustExpr () v20         │

00:02:43 #3161 [Verbose] > │         let v22 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3162 [Verbose] > │         let v23 : num_complex_Complex<float> =                               │

00:02:43 #3163 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v19, v21) v22                    │

00:02:43 #3164 [Verbose] > │         let v26 : num_complex_Complex<float> =                               │

00:02:43 #3165 [Verbose] > │             match v17 with                                                   │

00:02:43 #3166 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3167 [Verbose] > │                 v23                                                          │

00:02:43 #3168 [Verbose] > │             | US0_0(v24) -> (* Some *)                                       │

00:02:43 #3169 [Verbose] > │                 v24                                                          │

00:02:43 #3170 [Verbose] > │         let v27 : num_complex_Complex<float> = method7(v26)                  │

00:02:43 #3171 [Verbose] > │         let v28 : string = "v27.re"                                          │

00:02:43 #3172 [Verbose] > │         let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28         │

00:02:43 #3173 [Verbose] > │         let v30 : string = $"%A{v29}"                                        │

00:02:43 #3174 [Verbose] > │         System.Console.WriteLine v30                                         │

00:02:43 #3175 [Verbose] > │         let v31 : bool = v29 > 0.0                                           │

00:02:43 #3176 [Verbose] > │         let v33 : bool =                                                     │

00:02:43 #3177 [Verbose] > │             if v31 then                                                      │

00:02:43 #3178 [Verbose] > │                 true                                                         │

00:02:43 #3179 [Verbose] > │             else                                                             │

00:02:43 #3180 [Verbose] > │                 method31(v31)                                                │

00:02:43 #3181 [Verbose] > │         let v34 : string = $"__expect / actual: %A{v29} / expected: %A{0.0}" │

00:02:43 #3182 [Verbose] > │         let v35 : bool = v33 = false                                         │

00:02:43 #3183 [Verbose] > │         if v35 then                                                          │

00:02:43 #3184 [Verbose] > │             failwith<unit> v34                                               │

00:02:43 #3185 [Verbose] > │         let v36 : num_complex_Complex<float> = method8(v26)                  │

00:02:43 #3186 [Verbose] > │         let v37 : string = "v36.im"                                          │

00:02:43 #3187 [Verbose] > │         let v38 : float = Fable.Core.RustInterop.emitRustExpr () v37         │

00:02:43 #3188 [Verbose] > │         let v39 : string = $"%A{v38}"                                        │

00:02:43 #3189 [Verbose] > │         System.Console.WriteLine v39                                         │

00:02:43 #3190 [Verbose] > │         let v40 : bool = v38 = 0.0                                           │

00:02:43 #3191 [Verbose] > │         let v42 : bool =                                                     │

00:02:43 #3192 [Verbose] > │             if v40 then                                                      │

00:02:43 #3193 [Verbose] > │                 true                                                         │

00:02:43 #3194 [Verbose] > │             else                                                             │

00:02:43 #3195 [Verbose] > │                 method31(v40)                                                │

00:02:43 #3196 [Verbose] > │         let v43 : string = $"__expect / actual: %A{v38} / expected: %A{0.0}" │

00:02:43 #3197 [Verbose] > │         let v44 : bool = v42 = false                                         │

00:02:43 #3198 [Verbose] > │         if v44 then                                                          │

00:02:43 #3199 [Verbose] > │             failwith<unit> v43                                               │

00:02:43 #3200 [Verbose] > │         let v45 : int32 = v5 + 1                                             │

00:02:43 #3201 [Verbose] > │         v3.l0 <- v45                                                         │

00:02:43 #3202 [Verbose] > │         ()                                                                   │

00:02:43 #3203 [Verbose] > │     ()                                                                       │

00:02:43 #3204 [Verbose] > │ and method42 () : unit =                                                     │

00:02:43 #3205 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3206 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3207 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3208 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3209 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3210 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3211 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3212 [Verbose] > │     method43(v3)                                                             │

00:02:43 #3213 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3214 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3215 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3216 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3217 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3218 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3219 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3220 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3221 [Verbose] > │ () v8                                                                        │

00:02:43 #3222 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3223 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3224 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3225 [Verbose] > │     ()                                                                       │

00:02:43 #3226 [Verbose] > │ and method45 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3227 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3228 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #3229 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v1                     │

00:02:43 #3230 [Verbose] > │     let v3 : string = $"        s = mpmath.zeta(s)"                          │

00:02:43 #3231 [Verbose] > │     let v4 : num_complex_Complex<float> = method3(v2)                        │

00:02:43 #3232 [Verbose] > │     let v5 : Result<num_complex_Complex<float>, std_string_String> =         │

00:02:43 #3233 [Verbose] > │ method4(v0, v3, v4)                                                          │

00:02:43 #3234 [Verbose] > │     let v6 : num_complex_Complex<float> = method24(v0, v2)                   │

00:02:43 #3235 [Verbose] > │     let v7 : string = "v5.ok()"                                              │

00:02:43 #3236 [Verbose] > │     let v8 : num_complex_Complex<float> option =                             │

00:02:43 #3237 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7                                    │

00:02:43 #3238 [Verbose] > │     let v9 : (num_complex_Complex<float> -> US0) = method30()                │

00:02:43 #3239 [Verbose] > │     let v10 : US0 = US0_1                                                    │

00:02:43 #3240 [Verbose] > │     let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10           │

00:02:43 #3241 [Verbose] > │     let v12 : string = "f64::NAN"                                            │

00:02:43 #3242 [Verbose] > │     let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12             │

00:02:43 #3243 [Verbose] > │     let v14 : string = "f64::NAN"                                            │

00:02:43 #3244 [Verbose] > │     let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14             │

00:02:43 #3245 [Verbose] > │     let v16 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #3246 [Verbose] > │     let v17 : num_complex_Complex<float> =                                   │

00:02:43 #3247 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16                    │

00:02:43 #3248 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │

00:02:43 #3249 [Verbose] > │         match v11 with                                                       │

00:02:43 #3250 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:02:43 #3251 [Verbose] > │             v17                                                              │

00:02:43 #3252 [Verbose] > │         | US0_0(v18) -> (* Some *)                                           │

00:02:43 #3253 [Verbose] > │             v18                                                              │

00:02:43 #3254 [Verbose] > │     let v21 : num_complex_Complex<float> = method7(v20)                      │

00:02:43 #3255 [Verbose] > │     let v22 : string = "v21.re"                                              │

00:02:43 #3256 [Verbose] > │     let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22             │

00:02:43 #3257 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │

00:02:43 #3258 [Verbose] > │     System.Console.WriteLine v24                                             │

00:02:43 #3259 [Verbose] > │     let v25 : bool = v23 = infinity                                          │

00:02:43 #3260 [Verbose] > │     let v27 : bool =                                                         │

00:02:43 #3261 [Verbose] > │         if v25 then                                                          │

00:02:43 #3262 [Verbose] > │             true                                                             │

00:02:43 #3263 [Verbose] > │         else                                                                 │

00:02:43 #3264 [Verbose] > │             method31(v25)                                                    │

00:02:43 #3265 [Verbose] > │     let v28 : string = $"__expect / actual: %A{v23} / expected:              │

00:02:43 #3266 [Verbose] > │ %A{infinity}"                                                                │

00:02:43 #3267 [Verbose] > │     let v29 : bool = v27 = false                                             │

00:02:43 #3268 [Verbose] > │     if v29 then                                                              │

00:02:43 #3269 [Verbose] > │         failwith<unit> v28                                                   │

00:02:43 #3270 [Verbose] > │     let v30 : num_complex_Complex<float> = method8(v20)                      │

00:02:43 #3271 [Verbose] > │     let v31 : string = "v30.im"                                              │

00:02:43 #3272 [Verbose] > │     let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31             │

00:02:43 #3273 [Verbose] > │     let v33 : string = $"%A{v32}"                                            │

00:02:43 #3274 [Verbose] > │     System.Console.WriteLine v33                                             │

00:02:43 #3275 [Verbose] > │     let v34 : bool = v32 = 0.0                                               │

00:02:43 #3276 [Verbose] > │     let v36 : bool =                                                         │

00:02:43 #3277 [Verbose] > │         if v34 then                                                          │

00:02:43 #3278 [Verbose] > │             true                                                             │

00:02:43 #3279 [Verbose] > │         else                                                                 │

00:02:43 #3280 [Verbose] > │             method31(v34)                                                    │

00:02:43 #3281 [Verbose] > │     let v37 : string = $"__expect / actual: %A{v32} / expected: %A{0.0}"     │

00:02:43 #3282 [Verbose] > │     let v38 : bool = v36 = false                                             │

00:02:43 #3283 [Verbose] > │     if v38 then                                                              │

00:02:43 #3284 [Verbose] > │         failwith<unit> v37                                                   │

00:02:43 #3285 [Verbose] > │ and method44 () : unit =                                                     │

00:02:43 #3286 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3287 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3288 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3289 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3290 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3291 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3292 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3293 [Verbose] > │     method45(v3)                                                             │

00:02:43 #3294 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3295 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3296 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3297 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3298 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3299 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3300 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3301 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3302 [Verbose] > │ () v8                                                                        │

00:02:43 #3303 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3304 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3305 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3306 [Verbose] > │     ()                                                                       │

00:02:43 #3307 [Verbose] > │ and method47 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3308 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3309 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #3310 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 10.0) v1                    │

00:02:43 #3311 [Verbose] > │     let v3 : string = $"        s = mpmath.zeta(s)"                          │

00:02:43 #3312 [Verbose] > │     let v4 : num_complex_Complex<float> = method3(v2)                        │

00:02:43 #3313 [Verbose] > │     let v5 : Result<num_complex_Complex<float>, std_string_String> =         │

00:02:43 #3314 [Verbose] > │ method4(v0, v3, v4)                                                          │

00:02:43 #3315 [Verbose] > │     let v6 : num_complex_Complex<float> = method24(v0, v2)                   │

00:02:43 #3316 [Verbose] > │     let v7 : string = "v5.ok()"                                              │

00:02:43 #3317 [Verbose] > │     let v8 : num_complex_Complex<float> option =                             │

00:02:43 #3318 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7                                    │

00:02:43 #3319 [Verbose] > │     let v9 : (num_complex_Complex<float> -> US0) = method30()                │

00:02:43 #3320 [Verbose] > │     let v10 : US0 = US0_1                                                    │

00:02:43 #3321 [Verbose] > │     let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10           │

00:02:43 #3322 [Verbose] > │     let v12 : string = "f64::NAN"                                            │

00:02:43 #3323 [Verbose] > │     let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12             │

00:02:43 #3324 [Verbose] > │     let v14 : string = "f64::NAN"                                            │

00:02:43 #3325 [Verbose] > │     let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14             │

00:02:43 #3326 [Verbose] > │     let v16 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #3327 [Verbose] > │     let v17 : num_complex_Complex<float> =                                   │

00:02:43 #3328 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16                    │

00:02:43 #3329 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │

00:02:43 #3330 [Verbose] > │         match v11 with                                                       │

00:02:43 #3331 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:02:43 #3332 [Verbose] > │             v17                                                              │

00:02:43 #3333 [Verbose] > │         | US0_0(v18) -> (* Some *)                                           │

00:02:43 #3334 [Verbose] > │             v18                                                              │

00:02:43 #3335 [Verbose] > │     let v21 : num_complex_Complex<float> = method7(v2)                       │

00:02:43 #3336 [Verbose] > │     let v22 : string = "v21.re"                                              │

00:02:43 #3337 [Verbose] > │     let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22             │

00:02:43 #3338 [Verbose] > │     let v24 : num_complex_Complex<float> = method8(v2)                       │

00:02:43 #3339 [Verbose] > │     let v25 : string = "v24.im"                                              │

00:02:43 #3340 [Verbose] > │     let v26 : float = Fable.Core.RustInterop.emitRustExpr () v25             │

00:02:43 #3341 [Verbose] > │     let v27 : float =  -v26                                                  │

00:02:43 #3342 [Verbose] > │     let v28 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #3343 [Verbose] > │     let v29 : num_complex_Complex<float> =                                   │

00:02:43 #3344 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v23, v27) v28                    │

00:02:43 #3345 [Verbose] > │     let v30 : string = $"        s = mpmath.zeta(s)"                         │

00:02:43 #3346 [Verbose] > │     let v31 : num_complex_Complex<float> = method3(v29)                      │

00:02:43 #3347 [Verbose] > │     let v32 : Result<num_complex_Complex<float>, std_string_String> =        │

00:02:43 #3348 [Verbose] > │ method4(v0, v30, v31)                                                        │

00:02:43 #3349 [Verbose] > │     let v33 : num_complex_Complex<float> = method24(v0, v29)                 │

00:02:43 #3350 [Verbose] > │     let v34 : string = "v32.ok()"                                            │

00:02:43 #3351 [Verbose] > │     let v35 : num_complex_Complex<float> option =                            │

00:02:43 #3352 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v34                                   │

00:02:43 #3353 [Verbose] > │     let v36 : (num_complex_Complex<float> -> US0) = method30()               │

00:02:43 #3354 [Verbose] > │     let v37 : US0 = US0_1                                                    │

00:02:43 #3355 [Verbose] > │     let v38 : US0 = v35 |> Option.map v36 |> Option.defaultValue v37         │

00:02:43 #3356 [Verbose] > │     let v39 : string = "f64::NAN"                                            │

00:02:43 #3357 [Verbose] > │     let v40 : float = Fable.Core.RustInterop.emitRustExpr () v39             │

00:02:43 #3358 [Verbose] > │     let v41 : string = "f64::NAN"                                            │

00:02:43 #3359 [Verbose] > │     let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41             │

00:02:43 #3360 [Verbose] > │     let v43 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #3361 [Verbose] > │     let v44 : num_complex_Complex<float> =                                   │

00:02:43 #3362 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v40, v42) v43                    │

00:02:43 #3363 [Verbose] > │     let v47 : num_complex_Complex<float> =                                   │

00:02:43 #3364 [Verbose] > │         match v38 with                                                       │

00:02:43 #3365 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:02:43 #3366 [Verbose] > │             v44                                                              │

00:02:43 #3367 [Verbose] > │         | US0_0(v45) -> (* Some *)                                           │

00:02:43 #3368 [Verbose] > │             v45                                                              │

00:02:43 #3369 [Verbose] > │     let v48 : string = "v47.conj()"                                          │

00:02:43 #3370 [Verbose] > │     let v49 : num_complex_Complex<float> =                                   │

00:02:43 #3371 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v48                                   │

00:02:43 #3372 [Verbose] > │     let v50 : num_complex_Complex<float> = method7(v20)                      │

00:02:43 #3373 [Verbose] > │     let v51 : string = "v50.re"                                              │

00:02:43 #3374 [Verbose] > │     let v52 : float = Fable.Core.RustInterop.emitRustExpr () v51             │

00:02:43 #3375 [Verbose] > │     let v53 : num_complex_Complex<float> = method7(v49)                      │

00:02:43 #3376 [Verbose] > │     let v54 : string = "v53.re"                                              │

00:02:43 #3377 [Verbose] > │     let v55 : float = Fable.Core.RustInterop.emitRustExpr () v54             │

00:02:43 #3378 [Verbose] > │     let v56 : string = $"%A{v52}"                                            │

00:02:43 #3379 [Verbose] > │     System.Console.WriteLine v56                                             │

00:02:43 #3380 [Verbose] > │     let v57 : bool = v52 = v55                                               │

00:02:43 #3381 [Verbose] > │     let v59 : bool =                                                         │

00:02:43 #3382 [Verbose] > │         if v57 then                                                          │

00:02:43 #3383 [Verbose] > │             true                                                             │

00:02:43 #3384 [Verbose] > │         else                                                                 │

00:02:43 #3385 [Verbose] > │             method31(v57)                                                    │

00:02:43 #3386 [Verbose] > │     let v60 : string = $"__expect / actual: %A{v52} / expected: %A{v55}"     │

00:02:43 #3387 [Verbose] > │     let v61 : bool = v59 = false                                             │

00:02:43 #3388 [Verbose] > │     if v61 then                                                              │

00:02:43 #3389 [Verbose] > │         failwith<unit> v60                                                   │

00:02:43 #3390 [Verbose] > │     let v62 : num_complex_Complex<float> = method8(v20)                      │

00:02:43 #3391 [Verbose] > │     let v63 : string = "v62.im"                                              │

00:02:43 #3392 [Verbose] > │     let v64 : float = Fable.Core.RustInterop.emitRustExpr () v63             │

00:02:43 #3393 [Verbose] > │     let v65 : num_complex_Complex<float> = method8(v49)                      │

00:02:43 #3394 [Verbose] > │     let v66 : string = "v65.im"                                              │

00:02:43 #3395 [Verbose] > │     let v67 : float = Fable.Core.RustInterop.emitRustExpr () v66             │

00:02:43 #3396 [Verbose] > │     let v68 : string = $"%A{v64}"                                            │

00:02:43 #3397 [Verbose] > │     System.Console.WriteLine v68                                             │

00:02:43 #3398 [Verbose] > │     let v69 : bool = v64 = v67                                               │

00:02:43 #3399 [Verbose] > │     let v71 : bool =                                                         │

00:02:43 #3400 [Verbose] > │         if v69 then                                                          │

00:02:43 #3401 [Verbose] > │             true                                                             │

00:02:43 #3402 [Verbose] > │         else                                                                 │

00:02:43 #3403 [Verbose] > │             method31(v69)                                                    │

00:02:43 #3404 [Verbose] > │     let v72 : string = $"__expect / actual: %A{v64} / expected: %A{v67}"     │

00:02:43 #3405 [Verbose] > │     let v73 : bool = v71 = false                                             │

00:02:43 #3406 [Verbose] > │     if v73 then                                                              │

00:02:43 #3407 [Verbose] > │         failwith<unit> v72                                                   │

00:02:43 #3408 [Verbose] > │ and method46 () : unit =                                                     │

00:02:43 #3409 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3410 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3411 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3412 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3413 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3414 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3415 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3416 [Verbose] > │     method47(v3)                                                             │

00:02:43 #3417 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3418 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3419 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3420 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3421 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3422 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3423 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3424 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3425 [Verbose] > │ () v8                                                                        │

00:02:43 #3426 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3427 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3428 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3429 [Verbose] > │     ()                                                                       │

00:02:43 #3430 [Verbose] > │ and method49 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3431 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3432 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #3433 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.01, 0.01) v1                   │

00:02:43 #3434 [Verbose] > │     let v3 : string = $"        s = mpmath.zeta(s)"                          │

00:02:43 #3435 [Verbose] > │     let v4 : num_complex_Complex<float> = method3(v2)                        │

00:02:43 #3436 [Verbose] > │     let v5 : Result<num_complex_Complex<float>, std_string_String> =         │

00:02:43 #3437 [Verbose] > │ method4(v0, v3, v4)                                                          │

00:02:43 #3438 [Verbose] > │     let v6 : num_complex_Complex<float> = method24(v0, v2)                   │

00:02:43 #3439 [Verbose] > │     let v7 : string = "v5.ok()"                                              │

00:02:43 #3440 [Verbose] > │     let v8 : num_complex_Complex<float> option =                             │

00:02:43 #3441 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v7                                    │

00:02:43 #3442 [Verbose] > │     let v9 : (num_complex_Complex<float> -> US0) = method30()                │

00:02:43 #3443 [Verbose] > │     let v10 : US0 = US0_1                                                    │

00:02:43 #3444 [Verbose] > │     let v11 : US0 = v8 |> Option.map v9 |> Option.defaultValue v10           │

00:02:43 #3445 [Verbose] > │     let v12 : string = "f64::NAN"                                            │

00:02:43 #3446 [Verbose] > │     let v13 : float = Fable.Core.RustInterop.emitRustExpr () v12             │

00:02:43 #3447 [Verbose] > │     let v14 : string = "f64::NAN"                                            │

00:02:43 #3448 [Verbose] > │     let v15 : float = Fable.Core.RustInterop.emitRustExpr () v14             │

00:02:43 #3449 [Verbose] > │     let v16 : string = "num_complex::Complex::new($0, $1)"                   │

00:02:43 #3450 [Verbose] > │     let v17 : num_complex_Complex<float> =                                   │

00:02:43 #3451 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v13, v15) v16                    │

00:02:43 #3452 [Verbose] > │     let v20 : num_complex_Complex<float> =                                   │

00:02:43 #3453 [Verbose] > │         match v11 with                                                       │

00:02:43 #3454 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:02:43 #3455 [Verbose] > │             v17                                                              │

00:02:43 #3456 [Verbose] > │         | US0_0(v18) -> (* Some *)                                           │

00:02:43 #3457 [Verbose] > │             v18                                                              │

00:02:43 #3458 [Verbose] > │     let v21 : num_complex_Complex<float> = method7(v20)                      │

00:02:43 #3459 [Verbose] > │     let v22 : string = "v21.re"                                              │

00:02:43 #3460 [Verbose] > │     let v23 : float = Fable.Core.RustInterop.emitRustExpr () v22             │

00:02:43 #3461 [Verbose] > │     let v24 : string = $"%A{v23}"                                            │

00:02:43 #3462 [Verbose] > │     System.Console.WriteLine v24                                             │

00:02:43 #3463 [Verbose] > │     let v25 : bool = v23 < infinity                                          │

00:02:43 #3464 [Verbose] > │     let v27 : bool =                                                         │

00:02:43 #3465 [Verbose] > │         if v25 then                                                          │

00:02:43 #3466 [Verbose] > │             true                                                             │

00:02:43 #3467 [Verbose] > │         else                                                                 │

00:02:43 #3468 [Verbose] > │             method31(v25)                                                    │

00:02:43 #3469 [Verbose] > │     let v28 : string = $"__expect / actual: %A{v23} / expected:              │

00:02:43 #3470 [Verbose] > │ %A{infinity}"                                                                │

00:02:43 #3471 [Verbose] > │     let v29 : bool = v27 = false                                             │

00:02:43 #3472 [Verbose] > │     if v29 then                                                              │

00:02:43 #3473 [Verbose] > │         failwith<unit> v28                                                   │

00:02:43 #3474 [Verbose] > │     let v30 : num_complex_Complex<float> = method8(v20)                      │

00:02:43 #3475 [Verbose] > │     let v31 : string = "v30.im"                                              │

00:02:43 #3476 [Verbose] > │     let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31             │

00:02:43 #3477 [Verbose] > │     let v33 : string = $"%A{v32}"                                            │

00:02:43 #3478 [Verbose] > │     System.Console.WriteLine v33                                             │

00:02:43 #3479 [Verbose] > │     let v34 : bool = v32 < infinity                                          │

00:02:43 #3480 [Verbose] > │     let v36 : bool =                                                         │

00:02:43 #3481 [Verbose] > │         if v34 then                                                          │

00:02:43 #3482 [Verbose] > │             true                                                             │

00:02:43 #3483 [Verbose] > │         else                                                                 │

00:02:43 #3484 [Verbose] > │             method31(v34)                                                    │

00:02:43 #3485 [Verbose] > │     let v37 : string = $"__expect / actual: %A{v32} / expected:              │

00:02:43 #3486 [Verbose] > │ %A{infinity}"                                                                │

00:02:43 #3487 [Verbose] > │     let v38 : bool = v36 = false                                             │

00:02:43 #3488 [Verbose] > │     if v38 then                                                              │

00:02:43 #3489 [Verbose] > │         failwith<unit> v37                                                   │

00:02:43 #3490 [Verbose] > │ and method48 () : unit =                                                     │

00:02:43 #3491 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3492 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3493 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3494 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3495 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3496 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3497 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3498 [Verbose] > │     method49(v3)                                                             │

00:02:43 #3499 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3500 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3501 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3502 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3503 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3504 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3505 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3506 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3507 [Verbose] > │ () v8                                                                        │

00:02:43 #3508 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3509 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3510 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3511 [Verbose] > │     ()                                                                       │

00:02:43 #3512 [Verbose] > │ and method52 () : (float []) =                                               │

00:02:43 #3513 [Verbose] > │     let v0 : (float []) = [|10.0; 20.0; 30.0; 40.0; 50.0; 60.0; 70.0; 80.0;  │

00:02:43 #3514 [Verbose] > │ 90.0; 100.0|]                                                                │

00:02:43 #3515 [Verbose] > │     v0                                                                       │

00:02:43 #3516 [Verbose] > │ and method53 (v0 : bool) : bool =                                            │

00:02:43 #3517 [Verbose] > │     let v1 : bool = v0 = false                                               │

00:02:43 #3518 [Verbose] > │     v1                                                                       │

00:02:43 #3519 [Verbose] > │ and method51 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3520 [Verbose] > │     let v1 : (float []) = method52()                                         │

00:02:43 #3521 [Verbose] > │     let v2 : int32 = v1.Length                                               │

00:02:43 #3522 [Verbose] > │     let v3 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:43 #3523 [Verbose] > │     while method2(v2, v3) do                                                 │

00:02:43 #3524 [Verbose] > │         let v5 : int32 = v3.l0                                               │

00:02:43 #3525 [Verbose] > │         let v6 : float = v1.[int v5]                                         │

00:02:43 #3526 [Verbose] > │         let v7 : string = "num_complex::Complex::new($0, $1)"                │

00:02:43 #3527 [Verbose] > │         let v8 : num_complex_Complex<float> =                                │

00:02:43 #3528 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.0, v6) v7                      │

00:02:43 #3529 [Verbose] > │         let v9 : string = $"        s = mpmath.zeta(s)"                      │

00:02:43 #3530 [Verbose] > │         let v10 : num_complex_Complex<float> = method3(v8)                   │

00:02:43 #3531 [Verbose] > │         let v11 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3532 [Verbose] > │ method4(v0, v9, v10)                                                         │

00:02:43 #3533 [Verbose] > │         let v12 : num_complex_Complex<float> = method24(v0, v8)              │

00:02:43 #3534 [Verbose] > │         let v13 : string = "v11.ok()"                                        │

00:02:43 #3535 [Verbose] > │         let v14 : num_complex_Complex<float> option =                        │

00:02:43 #3536 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v13                                   │

00:02:43 #3537 [Verbose] > │         let v15 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3538 [Verbose] > │         let v16 : US0 = US0_1                                                │

00:02:43 #3539 [Verbose] > │         let v17 : US0 = v14 |> Option.map v15 |> Option.defaultValue v16     │

00:02:43 #3540 [Verbose] > │         let v18 : string = "f64::NAN"                                        │

00:02:43 #3541 [Verbose] > │         let v19 : float = Fable.Core.RustInterop.emitRustExpr () v18         │

00:02:43 #3542 [Verbose] > │         let v20 : string = "f64::NAN"                                        │

00:02:43 #3543 [Verbose] > │         let v21 : float = Fable.Core.RustInterop.emitRustExpr () v20         │

00:02:43 #3544 [Verbose] > │         let v22 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3545 [Verbose] > │         let v23 : num_complex_Complex<float> =                               │

00:02:43 #3546 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v19, v21) v22                    │

00:02:43 #3547 [Verbose] > │         let v26 : num_complex_Complex<float> =                               │

00:02:43 #3548 [Verbose] > │             match v17 with                                                   │

00:02:43 #3549 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3550 [Verbose] > │                 v23                                                          │

00:02:43 #3551 [Verbose] > │             | US0_0(v24) -> (* Some *)                                       │

00:02:43 #3552 [Verbose] > │                 v24                                                          │

00:02:43 #3553 [Verbose] > │         let v27 : num_complex_Complex<float> = method7(v26)                  │

00:02:43 #3554 [Verbose] > │         let v28 : string = "v27.re"                                          │

00:02:43 #3555 [Verbose] > │         let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28         │

00:02:43 #3556 [Verbose] > │         let v30 : string = $"%A{v29}"                                        │

00:02:43 #3557 [Verbose] > │         System.Console.WriteLine v30                                         │

00:02:43 #3558 [Verbose] > │         let v31 : bool = v29 = 0.0                                           │

00:02:43 #3559 [Verbose] > │         let v32 : bool = method53(v31)                                       │

00:02:43 #3560 [Verbose] > │         let v34 : bool =                                                     │

00:02:43 #3561 [Verbose] > │             if v32 then                                                      │

00:02:43 #3562 [Verbose] > │                 true                                                         │

00:02:43 #3563 [Verbose] > │             else                                                             │

00:02:43 #3564 [Verbose] > │                 method31(v32)                                                │

00:02:43 #3565 [Verbose] > │         let v35 : string = $"__expect / actual: %A{v29} / expected: %A{0.0}" │

00:02:43 #3566 [Verbose] > │         let v36 : bool = v34 = false                                         │

00:02:43 #3567 [Verbose] > │         if v36 then                                                          │

00:02:43 #3568 [Verbose] > │             failwith<unit> v35                                               │

00:02:43 #3569 [Verbose] > │         let v37 : num_complex_Complex<float> = method8(v26)                  │

00:02:43 #3570 [Verbose] > │         let v38 : string = "v37.im"                                          │

00:02:43 #3571 [Verbose] > │         let v39 : float = Fable.Core.RustInterop.emitRustExpr () v38         │

00:02:43 #3572 [Verbose] > │         let v40 : string = $"%A{v39}"                                        │

00:02:43 #3573 [Verbose] > │         System.Console.WriteLine v40                                         │

00:02:43 #3574 [Verbose] > │         let v41 : bool = v39 = 0.0                                           │

00:02:43 #3575 [Verbose] > │         let v42 : bool = method53(v41)                                       │

00:02:43 #3576 [Verbose] > │         let v44 : bool =                                                     │

00:02:43 #3577 [Verbose] > │             if v42 then                                                      │

00:02:43 #3578 [Verbose] > │                 true                                                         │

00:02:43 #3579 [Verbose] > │             else                                                             │

00:02:43 #3580 [Verbose] > │                 method31(v42)                                                │

00:02:43 #3581 [Verbose] > │         let v45 : string = $"__expect / actual: %A{v39} / expected: %A{0.0}" │

00:02:43 #3582 [Verbose] > │         let v46 : bool = v44 = false                                         │

00:02:43 #3583 [Verbose] > │         if v46 then                                                          │

00:02:43 #3584 [Verbose] > │             failwith<unit> v45                                               │

00:02:43 #3585 [Verbose] > │         let v47 : int32 = v5 + 1                                             │

00:02:43 #3586 [Verbose] > │         v3.l0 <- v47                                                         │

00:02:43 #3587 [Verbose] > │         ()                                                                   │

00:02:43 #3588 [Verbose] > │     ()                                                                       │

00:02:43 #3589 [Verbose] > │ and method50 () : unit =                                                     │

00:02:43 #3590 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3591 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3592 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3593 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3594 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3595 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3596 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3597 [Verbose] > │     method51(v3)                                                             │

00:02:43 #3598 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3599 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3600 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3601 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3602 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3603 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3604 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3605 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3606 [Verbose] > │ () v8                                                                        │

00:02:43 #3607 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3608 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3609 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3610 [Verbose] > │     ()                                                                       │

00:02:43 #3611 [Verbose] > │ and method55 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3612 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3613 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #3614 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 14.134725) v1               │

00:02:43 #3615 [Verbose] > │     let v3 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3616 [Verbose] > │     let v4 : num_complex_Complex<float> =                                    │

00:02:43 #3617 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.75, 20.5) v3                   │

00:02:43 #3618 [Verbose] > │     let v5 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3619 [Verbose] > │     let v6 : num_complex_Complex<float> =                                    │

00:02:43 #3620 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.25, 30.1) v5                   │

00:02:43 #3621 [Verbose] > │     let v7 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3622 [Verbose] > │     let v8 : num_complex_Complex<float> =                                    │

00:02:43 #3623 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.25, 40.0) v7                   │

00:02:43 #3624 [Verbose] > │     let v9 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3625 [Verbose] > │     let v10 : num_complex_Complex<float> =                                   │

00:02:43 #3626 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 50.0) v9                    │

00:02:43 #3627 [Verbose] > │     let v11 : (num_complex_Complex<float> []) = [|v2; v4; v6; v8; v10|]      │

00:02:43 #3628 [Verbose] > │     let v12 : int32 = v11.Length                                             │

00:02:43 #3629 [Verbose] > │     let v13 : Mut0 = {l0 = 0} : Mut0                                         │

00:02:43 #3630 [Verbose] > │     while method2(v12, v13) do                                               │

00:02:43 #3631 [Verbose] > │         let v15 : int32 = v13.l0                                             │

00:02:43 #3632 [Verbose] > │         let v16 : num_complex_Complex<float> = v11.[int v15]                 │

00:02:43 #3633 [Verbose] > │         let v17 : string = $"        s = mpmath.zeta(s)"                     │

00:02:43 #3634 [Verbose] > │         let v18 : num_complex_Complex<float> = method3(v16)                  │

00:02:43 #3635 [Verbose] > │         let v19 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3636 [Verbose] > │ method4(v0, v17, v18)                                                        │

00:02:43 #3637 [Verbose] > │         let v20 : num_complex_Complex<float> = method24(v0, v16)             │

00:02:43 #3638 [Verbose] > │         let v21 : string = "v19.ok()"                                        │

00:02:43 #3639 [Verbose] > │         let v22 : num_complex_Complex<float> option =                        │

00:02:43 #3640 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v21                                   │

00:02:43 #3641 [Verbose] > │         let v23 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3642 [Verbose] > │         let v24 : US0 = US0_1                                                │

00:02:43 #3643 [Verbose] > │         let v25 : US0 = v22 |> Option.map v23 |> Option.defaultValue v24     │

00:02:43 #3644 [Verbose] > │         let v26 : string = "f64::NAN"                                        │

00:02:43 #3645 [Verbose] > │         let v27 : float = Fable.Core.RustInterop.emitRustExpr () v26         │

00:02:43 #3646 [Verbose] > │         let v28 : string = "f64::NAN"                                        │

00:02:43 #3647 [Verbose] > │         let v29 : float = Fable.Core.RustInterop.emitRustExpr () v28         │

00:02:43 #3648 [Verbose] > │         let v30 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3649 [Verbose] > │         let v31 : num_complex_Complex<float> =                               │

00:02:43 #3650 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v27, v29) v30                    │

00:02:43 #3651 [Verbose] > │         let v34 : num_complex_Complex<float> =                               │

00:02:43 #3652 [Verbose] > │             match v25 with                                                   │

00:02:43 #3653 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3654 [Verbose] > │                 v31                                                          │

00:02:43 #3655 [Verbose] > │             | US0_0(v32) -> (* Some *)                                       │

00:02:43 #3656 [Verbose] > │                 v32                                                          │

00:02:43 #3657 [Verbose] > │         let v35 : num_complex_Complex<float> = method7(v34)                  │

00:02:43 #3658 [Verbose] > │         let v36 : string = "v35.re"                                          │

00:02:43 #3659 [Verbose] > │         let v37 : float = Fable.Core.RustInterop.emitRustExpr () v36         │

00:02:43 #3660 [Verbose] > │         let v38 : string = $"%A{v37}"                                        │

00:02:43 #3661 [Verbose] > │         System.Console.WriteLine v38                                         │

00:02:43 #3662 [Verbose] > │         let v39 : bool = v37 = 0.0                                           │

00:02:43 #3663 [Verbose] > │         let v40 : bool = method53(v39)                                       │

00:02:43 #3664 [Verbose] > │         let v42 : bool =                                                     │

00:02:43 #3665 [Verbose] > │             if v40 then                                                      │

00:02:43 #3666 [Verbose] > │                 true                                                         │

00:02:43 #3667 [Verbose] > │             else                                                             │

00:02:43 #3668 [Verbose] > │                 method31(v40)                                                │

00:02:43 #3669 [Verbose] > │         let v43 : string = $"__expect / actual: %A{v37} / expected: %A{0.0}" │

00:02:43 #3670 [Verbose] > │         let v44 : bool = v42 = false                                         │

00:02:43 #3671 [Verbose] > │         if v44 then                                                          │

00:02:43 #3672 [Verbose] > │             failwith<unit> v43                                               │

00:02:43 #3673 [Verbose] > │         let v45 : num_complex_Complex<float> = method8(v34)                  │

00:02:43 #3674 [Verbose] > │         let v46 : string = "v45.im"                                          │

00:02:43 #3675 [Verbose] > │         let v47 : float = Fable.Core.RustInterop.emitRustExpr () v46         │

00:02:43 #3676 [Verbose] > │         let v48 : string = $"%A{v47}"                                        │

00:02:43 #3677 [Verbose] > │         System.Console.WriteLine v48                                         │

00:02:43 #3678 [Verbose] > │         let v49 : bool = v47 = 0.0                                           │

00:02:43 #3679 [Verbose] > │         let v50 : bool = method53(v49)                                       │

00:02:43 #3680 [Verbose] > │         let v52 : bool =                                                     │

00:02:43 #3681 [Verbose] > │             if v50 then                                                      │

00:02:43 #3682 [Verbose] > │                 true                                                         │

00:02:43 #3683 [Verbose] > │             else                                                             │

00:02:43 #3684 [Verbose] > │                 method31(v50)                                                │

00:02:43 #3685 [Verbose] > │         let v53 : string = $"__expect / actual: %A{v47} / expected: %A{0.0}" │

00:02:43 #3686 [Verbose] > │         let v54 : bool = v52 = false                                         │

00:02:43 #3687 [Verbose] > │         if v54 then                                                          │

00:02:43 #3688 [Verbose] > │             failwith<unit> v53                                               │

00:02:43 #3689 [Verbose] > │         let v55 : int32 = v15 + 1                                            │

00:02:43 #3690 [Verbose] > │         v13.l0 <- v55                                                        │

00:02:43 #3691 [Verbose] > │         ()                                                                   │

00:02:43 #3692 [Verbose] > │     ()                                                                       │

00:02:43 #3693 [Verbose] > │ and method54 () : unit =                                                     │

00:02:43 #3694 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3695 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3696 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3697 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3698 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3699 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3700 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3701 [Verbose] > │     method55(v3)                                                             │

00:02:43 #3702 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3703 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3704 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3705 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3706 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3707 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3708 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3709 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3710 [Verbose] > │ () v8                                                                        │

00:02:43 #3711 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3712 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3713 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3714 [Verbose] > │     ()                                                                       │

00:02:43 #3715 [Verbose] > │ and method57 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3716 [Verbose] > │     let v1 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3717 [Verbose] > │     let v2 : num_complex_Complex<float> =                                    │

00:02:43 #3718 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.0, 4.0) v1                     │

00:02:43 #3719 [Verbose] > │     let v3 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3720 [Verbose] > │     let v4 : num_complex_Complex<float> =                                    │

00:02:43 #3721 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.5, -3.5) v3                    │

00:02:43 #3722 [Verbose] > │     let v5 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3723 [Verbose] > │     let v6 : num_complex_Complex<float> =                                    │

00:02:43 #3724 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.5, 2.5) v5                     │

00:02:43 #3725 [Verbose] > │     let v7 : string = "num_complex::Complex::new($0, $1)"                    │

00:02:43 #3726 [Verbose] > │     let v8 : num_complex_Complex<float> =                                    │

00:02:43 #3727 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (0.5, 14.134725) v7               │

00:02:43 #3728 [Verbose] > │     let v9 : (num_complex_Complex<float> []) = [|v2; v4; v6; v8|]            │

00:02:43 #3729 [Verbose] > │     let v10 : int32 = v9.Length                                              │

00:02:43 #3730 [Verbose] > │     let v11 : Mut0 = {l0 = 0} : Mut0                                         │

00:02:43 #3731 [Verbose] > │     while method2(v10, v11) do                                               │

00:02:43 #3732 [Verbose] > │         let v13 : int32 = v11.l0                                             │

00:02:43 #3733 [Verbose] > │         let v14 : num_complex_Complex<float> = v9.[int v13]                  │

00:02:43 #3734 [Verbose] > │         let v15 : string = $"        s = mpmath.zeta(s)"                     │

00:02:43 #3735 [Verbose] > │         let v16 : num_complex_Complex<float> = method3(v14)                  │

00:02:43 #3736 [Verbose] > │         let v17 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3737 [Verbose] > │ method4(v0, v15, v16)                                                        │

00:02:43 #3738 [Verbose] > │         let v18 : num_complex_Complex<float> = method24(v0, v14)             │

00:02:43 #3739 [Verbose] > │         let v19 : string = "v17.ok()"                                        │

00:02:43 #3740 [Verbose] > │         let v20 : num_complex_Complex<float> option =                        │

00:02:43 #3741 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v19                                   │

00:02:43 #3742 [Verbose] > │         let v21 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3743 [Verbose] > │         let v22 : US0 = US0_1                                                │

00:02:43 #3744 [Verbose] > │         let v23 : US0 = v20 |> Option.map v21 |> Option.defaultValue v22     │

00:02:43 #3745 [Verbose] > │         let v24 : string = "f64::NAN"                                        │

00:02:43 #3746 [Verbose] > │         let v25 : float = Fable.Core.RustInterop.emitRustExpr () v24         │

00:02:43 #3747 [Verbose] > │         let v26 : string = "f64::NAN"                                        │

00:02:43 #3748 [Verbose] > │         let v27 : float = Fable.Core.RustInterop.emitRustExpr () v26         │

00:02:43 #3749 [Verbose] > │         let v28 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3750 [Verbose] > │         let v29 : num_complex_Complex<float> =                               │

00:02:43 #3751 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v25, v27) v28                    │

00:02:43 #3752 [Verbose] > │         let v32 : num_complex_Complex<float> =                               │

00:02:43 #3753 [Verbose] > │             match v23 with                                                   │

00:02:43 #3754 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3755 [Verbose] > │                 v29                                                          │

00:02:43 #3756 [Verbose] > │             | US0_0(v30) -> (* Some *)                                       │

00:02:43 #3757 [Verbose] > │                 v30                                                          │

00:02:43 #3758 [Verbose] > │         let v33 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3759 [Verbose] > │         let v34 : num_complex_Complex<float> =                               │

00:02:43 #3760 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v33                    │

00:02:43 #3761 [Verbose] > │         let v35 : num_complex_Complex<float> = method27(v34)                 │

00:02:43 #3762 [Verbose] > │         let v36 : num_complex_Complex<float> = method28(v14)                 │

00:02:43 #3763 [Verbose] > │         let v37 : string = "num_complex::Complex::powc(v35, v36)"            │

00:02:43 #3764 [Verbose] > │         let v38 : num_complex_Complex<float> =                               │

00:02:43 #3765 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v37                                   │

00:02:43 #3766 [Verbose] > │         let v39 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3767 [Verbose] > │         let v40 : num_complex_Complex<float> =                               │

00:02:43 #3768 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v39      │

00:02:43 #3769 [Verbose] > │         let v41 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3770 [Verbose] > │         let v42 : num_complex_Complex<float> =                               │

00:02:43 #3771 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v41                    │

00:02:43 #3772 [Verbose] > │         let v43 : string = "$0 - $1"                                         │

00:02:43 #3773 [Verbose] > │         let v44 : num_complex_Complex<float> =                               │

00:02:43 #3774 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v14, v42) v43                    │

00:02:43 #3775 [Verbose] > │         let v45 : num_complex_Complex<float> = method27(v40)                 │

00:02:43 #3776 [Verbose] > │         let v46 : num_complex_Complex<float> = method28(v44)                 │

00:02:43 #3777 [Verbose] > │         let v47 : string = "num_complex::Complex::powc(v45, v46)"            │

00:02:43 #3778 [Verbose] > │         let v48 : num_complex_Complex<float> =                               │

00:02:43 #3779 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v47                                   │

00:02:43 #3780 [Verbose] > │         let v49 : string = "$0 * $1"                                         │

00:02:43 #3781 [Verbose] > │         let v50 : num_complex_Complex<float> =                               │

00:02:43 #3782 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v38, v48) v49                    │

00:02:43 #3783 [Verbose] > │         let v51 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3784 [Verbose] > │         let v52 : num_complex_Complex<float> =                               │

00:02:43 #3785 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (3.141592653589793, 0.0) v51      │

00:02:43 #3786 [Verbose] > │         let v53 : string = "$0 * $1"                                         │

00:02:43 #3787 [Verbose] > │         let v54 : num_complex_Complex<float> =                               │

00:02:43 #3788 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v52, v14) v53                    │

00:02:43 #3789 [Verbose] > │         let v55 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3790 [Verbose] > │         let v56 : num_complex_Complex<float> =                               │

00:02:43 #3791 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (2.0, 0.0) v55                    │

00:02:43 #3792 [Verbose] > │         let v57 : string = "v54 / v56"                                       │

00:02:43 #3793 [Verbose] > │         let v58 : num_complex_Complex<float> =                               │

00:02:43 #3794 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v57                                   │

00:02:43 #3795 [Verbose] > │         let v59 : string = "v58.sin()"                                       │

00:02:43 #3796 [Verbose] > │         let v60 : num_complex_Complex<float> =                               │

00:02:43 #3797 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v59                                   │

00:02:43 #3798 [Verbose] > │         let v61 : string = "$0 * $1"                                         │

00:02:43 #3799 [Verbose] > │         let v62 : num_complex_Complex<float> =                               │

00:02:43 #3800 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v50, v60) v61                    │

00:02:43 #3801 [Verbose] > │         let v63 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3802 [Verbose] > │         let v64 : num_complex_Complex<float> =                               │

00:02:43 #3803 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (1.0, 0.0) v63                    │

00:02:43 #3804 [Verbose] > │         let v65 : string = "$0 - $1"                                         │

00:02:43 #3805 [Verbose] > │         let v66 : num_complex_Complex<float> =                               │

00:02:43 #3806 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v64, v14) v65                    │

00:02:43 #3807 [Verbose] > │         let v67 : string = $"        s = mpmath.gamma(s)"                    │

00:02:43 #3808 [Verbose] > │         let v68 : num_complex_Complex<float> = method3(v66)                  │

00:02:43 #3809 [Verbose] > │         let v69 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3810 [Verbose] > │ method29(v0, v67, v68)                                                       │

00:02:43 #3811 [Verbose] > │         let v70 : string = "v69.ok()"                                        │

00:02:43 #3812 [Verbose] > │         let v71 : num_complex_Complex<float> option =                        │

00:02:43 #3813 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v70                                   │

00:02:43 #3814 [Verbose] > │         let v72 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3815 [Verbose] > │         let v73 : US0 = US0_1                                                │

00:02:43 #3816 [Verbose] > │         let v74 : US0 = v71 |> Option.map v72 |> Option.defaultValue v73     │

00:02:43 #3817 [Verbose] > │         let v75 : string = "f64::NAN"                                        │

00:02:43 #3818 [Verbose] > │         let v76 : float = Fable.Core.RustInterop.emitRustExpr () v75         │

00:02:43 #3819 [Verbose] > │         let v77 : string = "f64::NAN"                                        │

00:02:43 #3820 [Verbose] > │         let v78 : float = Fable.Core.RustInterop.emitRustExpr () v77         │

00:02:43 #3821 [Verbose] > │         let v79 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3822 [Verbose] > │         let v80 : num_complex_Complex<float> =                               │

00:02:43 #3823 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v76, v78) v79                    │

00:02:43 #3824 [Verbose] > │         let v83 : num_complex_Complex<float> =                               │

00:02:43 #3825 [Verbose] > │             match v74 with                                                   │

00:02:43 #3826 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3827 [Verbose] > │                 v80                                                          │

00:02:43 #3828 [Verbose] > │             | US0_0(v81) -> (* Some *)                                       │

00:02:43 #3829 [Verbose] > │                 v81                                                          │

00:02:43 #3830 [Verbose] > │         let v84 : string = "$0 * $1"                                         │

00:02:43 #3831 [Verbose] > │         let v85 : num_complex_Complex<float> =                               │

00:02:43 #3832 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v62, v83) v84                    │

00:02:43 #3833 [Verbose] > │         let v86 : num_complex_Complex<float> = method7(v14)                  │

00:02:43 #3834 [Verbose] > │         let v87 : string = "v86.re"                                          │

00:02:43 #3835 [Verbose] > │         let v88 : float = Fable.Core.RustInterop.emitRustExpr () v87         │

00:02:43 #3836 [Verbose] > │         let v89 : float = 1.0 - v88                                          │

00:02:43 #3837 [Verbose] > │         let v90 : num_complex_Complex<float> = method8(v14)                  │

00:02:43 #3838 [Verbose] > │         let v91 : string = "v90.im"                                          │

00:02:43 #3839 [Verbose] > │         let v92 : float = Fable.Core.RustInterop.emitRustExpr () v91         │

00:02:43 #3840 [Verbose] > │         let v93 : float =  -v92                                              │

00:02:43 #3841 [Verbose] > │         let v94 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3842 [Verbose] > │         let v95 : num_complex_Complex<float> =                               │

00:02:43 #3843 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v89, v93) v94                    │

00:02:43 #3844 [Verbose] > │         let v96 : string = $"        s = mpmath.zeta(s)"                     │

00:02:43 #3845 [Verbose] > │         let v97 : num_complex_Complex<float> = method3(v95)                  │

00:02:43 #3846 [Verbose] > │         let v98 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3847 [Verbose] > │ method4(v0, v96, v97)                                                        │

00:02:43 #3848 [Verbose] > │         let v99 : num_complex_Complex<float> = method24(v0, v95)             │

00:02:43 #3849 [Verbose] > │         let v100 : string = "v98.ok()"                                       │

00:02:43 #3850 [Verbose] > │         let v101 : num_complex_Complex<float> option =                       │

00:02:43 #3851 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v100                                  │

00:02:43 #3852 [Verbose] > │         let v102 : (num_complex_Complex<float> -> US0) = method30()          │

00:02:43 #3853 [Verbose] > │         let v103 : US0 = US0_1                                               │

00:02:43 #3854 [Verbose] > │         let v104 : US0 = v101 |> Option.map v102 |> Option.defaultValue v103 │

00:02:43 #3855 [Verbose] > │         let v105 : string = "f64::NAN"                                       │

00:02:43 #3856 [Verbose] > │         let v106 : float = Fable.Core.RustInterop.emitRustExpr () v105       │

00:02:43 #3857 [Verbose] > │         let v107 : string = "f64::NAN"                                       │

00:02:43 #3858 [Verbose] > │         let v108 : float = Fable.Core.RustInterop.emitRustExpr () v107       │

00:02:43 #3859 [Verbose] > │         let v109 : string = "num_complex::Complex::new($0, $1)"              │

00:02:43 #3860 [Verbose] > │         let v110 : num_complex_Complex<float> =                              │

00:02:43 #3861 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v106, v108) v109                 │

00:02:43 #3862 [Verbose] > │         let v113 : num_complex_Complex<float> =                              │

00:02:43 #3863 [Verbose] > │             match v104 with                                                  │

00:02:43 #3864 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #3865 [Verbose] > │                 v110                                                         │

00:02:43 #3866 [Verbose] > │             | US0_0(v111) -> (* Some *)                                      │

00:02:43 #3867 [Verbose] > │                 v111                                                         │

00:02:43 #3868 [Verbose] > │         let v114 : string = "$0 * $1"                                        │

00:02:43 #3869 [Verbose] > │         let v115 : num_complex_Complex<float> =                              │

00:02:43 #3870 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v85, v113) v114                  │

00:02:43 #3871 [Verbose] > │         let v116 : num_complex_Complex<float> = method7(v32)                 │

00:02:43 #3872 [Verbose] > │         let v117 : string = "v116.re"                                        │

00:02:43 #3873 [Verbose] > │         let v118 : float = Fable.Core.RustInterop.emitRustExpr () v117       │

00:02:43 #3874 [Verbose] > │         let v119 : num_complex_Complex<float> = method7(v115)                │

00:02:43 #3875 [Verbose] > │         let v120 : string = "v119.re"                                        │

00:02:43 #3876 [Verbose] > │         let v121 : float = Fable.Core.RustInterop.emitRustExpr () v120       │

00:02:43 #3877 [Verbose] > │         let v122 : float = v118 - v121                                       │

00:02:43 #3878 [Verbose] > │         let v123 : float =  -v122                                            │

00:02:43 #3879 [Verbose] > │         let v124 : bool = v122 >= v123                                       │

00:02:43 #3880 [Verbose] > │         let v125 : float =                                                   │

00:02:43 #3881 [Verbose] > │             if v124 then                                                     │

00:02:43 #3882 [Verbose] > │                 v122                                                         │

00:02:43 #3883 [Verbose] > │             else                                                             │

00:02:43 #3884 [Verbose] > │                 v123                                                         │

00:02:43 #3885 [Verbose] > │         let v126 : string = $"%A{v125}"                                      │

00:02:43 #3886 [Verbose] > │         System.Console.WriteLine v126                                        │

00:02:43 #3887 [Verbose] > │         let v127 : bool = v125 < 0.0001                                      │

00:02:43 #3888 [Verbose] > │         let v129 : bool =                                                    │

00:02:43 #3889 [Verbose] > │             if v127 then                                                     │

00:02:43 #3890 [Verbose] > │                 true                                                         │

00:02:43 #3891 [Verbose] > │             else                                                             │

00:02:43 #3892 [Verbose] > │                 method31(v127)                                               │

00:02:43 #3893 [Verbose] > │         let v130 : string = $"__expect / actual: %A{v125} / expected:        │

00:02:43 #3894 [Verbose] > │ %A{0.0001}"                                                                  │

00:02:43 #3895 [Verbose] > │         let v131 : bool = v129 = false                                       │

00:02:43 #3896 [Verbose] > │         if v131 then                                                         │

00:02:43 #3897 [Verbose] > │             failwith<unit> v130                                              │

00:02:43 #3898 [Verbose] > │         let v132 : num_complex_Complex<float> = method8(v32)                 │

00:02:43 #3899 [Verbose] > │         let v133 : string = "v132.im"                                        │

00:02:43 #3900 [Verbose] > │         let v134 : float = Fable.Core.RustInterop.emitRustExpr () v133       │

00:02:43 #3901 [Verbose] > │         let v135 : num_complex_Complex<float> = method8(v115)                │

00:02:43 #3902 [Verbose] > │         let v136 : string = "v135.im"                                        │

00:02:43 #3903 [Verbose] > │         let v137 : float = Fable.Core.RustInterop.emitRustExpr () v136       │

00:02:43 #3904 [Verbose] > │         let v138 : float = v134 - v137                                       │

00:02:43 #3905 [Verbose] > │         let v139 : float =  -v138                                            │

00:02:43 #3906 [Verbose] > │         let v140 : bool = v138 >= v139                                       │

00:02:43 #3907 [Verbose] > │         let v141 : float =                                                   │

00:02:43 #3908 [Verbose] > │             if v140 then                                                     │

00:02:43 #3909 [Verbose] > │                 v138                                                         │

00:02:43 #3910 [Verbose] > │             else                                                             │

00:02:43 #3911 [Verbose] > │                 v139                                                         │

00:02:43 #3912 [Verbose] > │         let v142 : string = $"%A{v141}"                                      │

00:02:43 #3913 [Verbose] > │         System.Console.WriteLine v142                                        │

00:02:43 #3914 [Verbose] > │         let v143 : bool = v141 < 0.0001                                      │

00:02:43 #3915 [Verbose] > │         let v145 : bool =                                                    │

00:02:43 #3916 [Verbose] > │             if v143 then                                                     │

00:02:43 #3917 [Verbose] > │                 true                                                         │

00:02:43 #3918 [Verbose] > │             else                                                             │

00:02:43 #3919 [Verbose] > │                 method31(v143)                                               │

00:02:43 #3920 [Verbose] > │         let v146 : string = $"__expect / actual: %A{v141} / expected:        │

00:02:43 #3921 [Verbose] > │ %A{0.0001}"                                                                  │

00:02:43 #3922 [Verbose] > │         let v147 : bool = v145 = false                                       │

00:02:43 #3923 [Verbose] > │         if v147 then                                                         │

00:02:43 #3924 [Verbose] > │             failwith<unit> v146                                              │

00:02:43 #3925 [Verbose] > │         let v148 : int32 = v13 + 1                                           │

00:02:43 #3926 [Verbose] > │         v11.l0 <- v148                                                       │

00:02:43 #3927 [Verbose] > │         ()                                                                   │

00:02:43 #3928 [Verbose] > │     ()                                                                       │

00:02:43 #3929 [Verbose] > │ and method56 () : unit =                                                     │

00:02:43 #3930 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #3931 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #3932 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #3933 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #3934 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #3935 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #3936 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #3937 [Verbose] > │     method57(v3)                                                             │

00:02:43 #3938 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #3939 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #3940 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #3941 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #3942 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #3943 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #3944 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #3945 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #3946 [Verbose] > │ () v8                                                                        │

00:02:43 #3947 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #3948 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #3949 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #3950 [Verbose] > │     ()                                                                       │

00:02:43 #3951 [Verbose] > │ and method60 (v0 : int32, v1 : Mut3) : bool =                                │

00:02:43 #3952 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:02:43 #3953 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:02:43 #3954 [Verbose] > │     v3                                                                       │

00:02:43 #3955 [Verbose] > │ and method59 (v0 : pyo3_Python) : unit =                                     │

00:02:43 #3956 [Verbose] > │     let v1 : (float []) = [|2.0; 2.5; 3.0; 3.5; 4.0; 4.5; 5.0|]              │

00:02:43 #3957 [Verbose] > │     let v2 : (float []) = [|2.0; 3.0; 5.0; 7.0; 11.0; 13.0; 17.0; 19.0;      │

00:02:43 #3958 [Verbose] > │ 23.0; 29.0; 31.0; 37.0; 41.0; 43.0; 47.0; 53.0; 59.0; 61.0; 67.0; 71.0|]     │

00:02:43 #3959 [Verbose] > │     let v3 : int32 = v1.Length                                               │

00:02:43 #3960 [Verbose] > │     let v4 : Mut0 = {l0 = 0} : Mut0                                          │

00:02:43 #3961 [Verbose] > │     while method2(v3, v4) do                                                 │

00:02:43 #3962 [Verbose] > │         let v6 : int32 = v4.l0                                               │

00:02:43 #3963 [Verbose] > │         let v7 : float = v1.[int v6]                                         │

00:02:43 #3964 [Verbose] > │         let v8 : string = "num_complex::Complex::new($0, $1)"                │

00:02:43 #3965 [Verbose] > │         let v9 : num_complex_Complex<float> =                                │

00:02:43 #3966 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v7, 0.0) v8                      │

00:02:43 #3967 [Verbose] > │         let v10 : int32 = v2.Length                                          │

00:02:43 #3968 [Verbose] > │         let v11 : Mut3 = {l0 = 0; l1 = 1.0} : Mut3                           │

00:02:43 #3969 [Verbose] > │         while method60(v10, v11) do                                          │

00:02:43 #3970 [Verbose] > │             let v13 : int32 = v11.l0                                         │

00:02:43 #3971 [Verbose] > │             let v14 : float = v11.l1                                         │

00:02:43 #3972 [Verbose] > │             let v15 : float = v2.[int v13]                                   │

00:02:43 #3973 [Verbose] > │             let v16 : float =  -v7                                           │

00:02:43 #3974 [Verbose] > │             let v17 : float = v15 ** v16                                     │

00:02:43 #3975 [Verbose] > │             let v18 : float = 1.0 - v17                                      │

00:02:43 #3976 [Verbose] > │             let v19 : float = v14 / v18                                      │

00:02:43 #3977 [Verbose] > │             let v20 : int32 = v13 + 1                                        │

00:02:43 #3978 [Verbose] > │             v11.l0 <- v20                                                    │

00:02:43 #3979 [Verbose] > │             v11.l1 <- v19                                                    │

00:02:43 #3980 [Verbose] > │             ()                                                               │

00:02:43 #3981 [Verbose] > │         let v21 : float = v11.l1                                             │

00:02:43 #3982 [Verbose] > │         let v22 : string = $"        s = mpmath.zeta(s)"                     │

00:02:43 #3983 [Verbose] > │         let v23 : num_complex_Complex<float> = method3(v9)                   │

00:02:43 #3984 [Verbose] > │         let v24 : Result<num_complex_Complex<float>, std_string_String> =    │

00:02:43 #3985 [Verbose] > │ method4(v0, v22, v23)                                                        │

00:02:43 #3986 [Verbose] > │         let v25 : num_complex_Complex<float> = method24(v0, v9)              │

00:02:43 #3987 [Verbose] > │         let v26 : string = "v24.ok()"                                        │

00:02:43 #3988 [Verbose] > │         let v27 : num_complex_Complex<float> option =                        │

00:02:43 #3989 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr () v26                                   │

00:02:43 #3990 [Verbose] > │         let v28 : (num_complex_Complex<float> -> US0) = method30()           │

00:02:43 #3991 [Verbose] > │         let v29 : US0 = US0_1                                                │

00:02:43 #3992 [Verbose] > │         let v30 : US0 = v27 |> Option.map v28 |> Option.defaultValue v29     │

00:02:43 #3993 [Verbose] > │         let v31 : string = "f64::NAN"                                        │

00:02:43 #3994 [Verbose] > │         let v32 : float = Fable.Core.RustInterop.emitRustExpr () v31         │

00:02:43 #3995 [Verbose] > │         let v33 : string = "f64::NAN"                                        │

00:02:43 #3996 [Verbose] > │         let v34 : float = Fable.Core.RustInterop.emitRustExpr () v33         │

00:02:43 #3997 [Verbose] > │         let v35 : string = "num_complex::Complex::new($0, $1)"               │

00:02:43 #3998 [Verbose] > │         let v36 : num_complex_Complex<float> =                               │

00:02:43 #3999 [Verbose] > │ Fable.Core.RustInterop.emitRustExpr struct (v32, v34) v35                    │

00:02:43 #4000 [Verbose] > │         let v39 : num_complex_Complex<float> =                               │

00:02:43 #4001 [Verbose] > │             match v30 with                                                   │

00:02:43 #4002 [Verbose] > │             | US0_1 -> (* None *)                                            │

00:02:43 #4003 [Verbose] > │                 v36                                                          │

00:02:43 #4004 [Verbose] > │             | US0_0(v37) -> (* Some *)                                       │

00:02:43 #4005 [Verbose] > │                 v37                                                          │

00:02:43 #4006 [Verbose] > │         let v40 : num_complex_Complex<float> = method7(v39)                  │

00:02:43 #4007 [Verbose] > │         let v41 : string = "v40.re"                                          │

00:02:43 #4008 [Verbose] > │         let v42 : float = Fable.Core.RustInterop.emitRustExpr () v41         │

00:02:43 #4009 [Verbose] > │         let v43 : float = v42 - v21                                          │

00:02:43 #4010 [Verbose] > │         let v44 : float =  -v43                                              │

00:02:43 #4011 [Verbose] > │         let v45 : bool = v43 >= v44                                          │

00:02:43 #4012 [Verbose] > │         let v46 : float =                                                    │

00:02:43 #4013 [Verbose] > │             if v45 then                                                      │

00:02:43 #4014 [Verbose] > │                 v43                                                          │

00:02:43 #4015 [Verbose] > │             else                                                             │

00:02:43 #4016 [Verbose] > │                 v44                                                          │

00:02:43 #4017 [Verbose] > │         let v47 : string = $"%A{v46}"                                        │

00:02:43 #4018 [Verbose] > │         System.Console.WriteLine v47                                         │

00:02:43 #4019 [Verbose] > │         let v48 : bool = v46 < 0.01                                          │

00:02:43 #4020 [Verbose] > │         let v50 : bool =                                                     │

00:02:43 #4021 [Verbose] > │             if v48 then                                                      │

00:02:43 #4022 [Verbose] > │                 true                                                         │

00:02:43 #4023 [Verbose] > │             else                                                             │

00:02:43 #4024 [Verbose] > │                 method31(v48)                                                │

00:02:43 #4025 [Verbose] > │         let v51 : string = $"__expect / actual: %A{v46} / expected:          │

00:02:43 #4026 [Verbose] > │ %A{0.01}"                                                                    │

00:02:43 #4027 [Verbose] > │         let v52 : bool = v50 = false                                         │

00:02:43 #4028 [Verbose] > │         if v52 then                                                          │

00:02:43 #4029 [Verbose] > │             failwith<unit> v51                                               │

00:02:43 #4030 [Verbose] > │         let v53 : num_complex_Complex<float> = method8(v39)                  │

00:02:43 #4031 [Verbose] > │         let v54 : string = "v53.im"                                          │

00:02:43 #4032 [Verbose] > │         let v55 : float = Fable.Core.RustInterop.emitRustExpr () v54         │

00:02:43 #4033 [Verbose] > │         let v56 : string = $"%A{v55}"                                        │

00:02:43 #4034 [Verbose] > │         System.Console.WriteLine v56                                         │

00:02:43 #4035 [Verbose] > │         let v57 : bool = v55 < 0.01                                          │

00:02:43 #4036 [Verbose] > │         let v59 : bool =                                                     │

00:02:43 #4037 [Verbose] > │             if v57 then                                                      │

00:02:43 #4038 [Verbose] > │                 true                                                         │

00:02:43 #4039 [Verbose] > │             else                                                             │

00:02:43 #4040 [Verbose] > │                 method31(v57)                                                │

00:02:43 #4041 [Verbose] > │         let v60 : string = $"__expect / actual: %A{v55} / expected:          │

00:02:43 #4042 [Verbose] > │ %A{0.01}"                                                                    │

00:02:43 #4043 [Verbose] > │         let v61 : bool = v59 = false                                         │

00:02:43 #4044 [Verbose] > │         if v61 then                                                          │

00:02:43 #4045 [Verbose] > │             failwith<unit> v60                                               │

00:02:43 #4046 [Verbose] > │         let v62 : int32 = v6 + 1                                             │

00:02:43 #4047 [Verbose] > │         v4.l0 <- v62                                                         │

00:02:43 #4048 [Verbose] > │         ()                                                                   │

00:02:43 #4049 [Verbose] > │     ()                                                                       │

00:02:43 #4050 [Verbose] > │ and method58 () : unit =                                                     │

00:02:43 #4051 [Verbose] > │     let v0 : string = "pyo3::prepare_freethreaded_python()"                  │

00:02:43 #4052 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #4053 [Verbose] > │     let v1 : string = "let __result = pyo3::Python::with_gil(|py| ->         │

00:02:43 #4054 [Verbose] > │ pyo3::PyResult<()> { //"                                                     │

00:02:43 #4055 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #4056 [Verbose] > │     let v2 : string = "py"                                                   │

00:02:43 #4057 [Verbose] > │     let v3 : pyo3_Python = Fable.Core.RustInterop.emitRustExpr () v2         │

00:02:43 #4058 [Verbose] > │     method59(v3)                                                             │

00:02:43 #4059 [Verbose] > │     let v4 : Result<unit, pyo3_PyErr> = Ok ()                                │

00:02:43 #4060 [Verbose] > │     let v5 : Result<unit, pyo3_PyErr> = method32(v4)                         │

00:02:43 #4061 [Verbose] > │     let v6 : string = "v5 }})"                                               │

00:02:43 #4062 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #4063 [Verbose] > │     let v7 : string = "{ //"                                                 │

00:02:43 #4064 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #4065 [Verbose] > │     let v8 : string = "__result"                                             │

00:02:43 #4066 [Verbose] > │     let v9 : Result<unit, pyo3_PyErr> = Fable.Core.RustInterop.emitRustExpr  │

00:02:43 #4067 [Verbose] > │ () v8                                                                        │

00:02:43 #4068 [Verbose] > │     let v10 : Result<unit, pyo3_PyErr> = method33(v9)                        │

00:02:43 #4069 [Verbose] > │     let v11 : string = "v10.unwrap()"                                        │

00:02:43 #4070 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #4071 [Verbose] > │     ()                                                                       │

00:02:43 #4072 [Verbose] > │ and closure0 () () : unit =                                                  │

00:02:43 #4073 [Verbose] > │     let v0 : string = "}//"                                                  │

00:02:43 #4074 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v0                                │

00:02:43 #4075 [Verbose] > │     let v1 : string = "#[test] fn test_zeta_at_known_values_() { //"         │

00:02:43 #4076 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v1                                │

00:02:43 #4077 [Verbose] > │     method0()                                                                │

00:02:43 #4078 [Verbose] > │     let v2 : string = "} #[test] fn test_zeta_at_2_minus2() { //"            │

00:02:43 #4079 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v2                                │

00:02:43 #4080 [Verbose] > │     method34()                                                               │

00:02:43 #4081 [Verbose] > │     let v3 : string = "} #[test] fn test_trivial_zero_at_negative_even___()  │

00:02:43 #4082 [Verbose] > │ { //"                                                                        │

00:02:43 #4083 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v3                                │

00:02:43 #4084 [Verbose] > │     method36()                                                               │

00:02:43 #4085 [Verbose] > │     let v4 : string = "} #[test] fn test_non_trivial_zero___() { //"         │

00:02:43 #4086 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v4                                │

00:02:43 #4087 [Verbose] > │     method40()                                                               │

00:02:43 #4088 [Verbose] > │     let v5 : string = "} #[test] fn test_real_part_greater_than_one___() {   │

00:02:43 #4089 [Verbose] > │ //"                                                                          │

00:02:43 #4090 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v5                                │

00:02:43 #4091 [Verbose] > │     method42()                                                               │

00:02:43 #4092 [Verbose] > │     let v6 : string = "} #[test] fn test_zeta_at_1___() { //"                │

00:02:43 #4093 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v6                                │

00:02:43 #4094 [Verbose] > │     method44()                                                               │

00:02:43 #4095 [Verbose] > │     let v7 : string = "} #[test] fn test_symmetry_across_real_axis___() {    │

00:02:43 #4096 [Verbose] > │ //"                                                                          │

00:02:43 #4097 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v7                                │

00:02:43 #4098 [Verbose] > │     method46()                                                               │

00:02:43 #4099 [Verbose] > │     let v8 : string = "} #[test] fn test_behavior_near_origin___() { //"     │

00:02:43 #4100 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v8                                │

00:02:43 #4101 [Verbose] > │     method48()                                                               │

00:02:43 #4102 [Verbose] > │     let v9 : string = "} #[test] fn test_imaginary_axis() { //"              │

00:02:43 #4103 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v9                                │

00:02:43 #4104 [Verbose] > │     method50()                                                               │

00:02:43 #4105 [Verbose] > │     let v10 : string = "} #[test] fn test_critical_strip() { //"             │

00:02:43 #4106 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v10                               │

00:02:43 #4107 [Verbose] > │     method54()                                                               │

00:02:43 #4108 [Verbose] > │     let v11 : string = "} #[test] fn                                         │

00:02:43 #4109 [Verbose] > │ test_reflection_formula_for_specific_value() { //"                           │

00:02:43 #4110 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v11                               │

00:02:43 #4111 [Verbose] > │     method56()                                                               │

00:02:43 #4112 [Verbose] > │     let v12 : string = "} #[test] fn test_euler_product_formula() { //"      │

00:02:43 #4113 [Verbose] > │     Fable.Core.RustInterop.emitRustExpr () v12                               │

00:02:43 #4114 [Verbose] > │     method58()                                                               │

00:02:43 #4115 [Verbose] > │ and closure6 () (v0 : (string [])) : int32 =                                 │

00:02:43 #4116 [Verbose] > │     let v1 : string = $"value: {1}"                                          │

00:02:43 #4117 [Verbose] > │     System.Console.WriteLine v1                                              │

00:02:43 #4118 [Verbose] > │     0                                                                        │

00:02:43 #4119 [Verbose] > │ let v0 : (unit -> unit) = closure0()                                         │

00:02:43 #4120 [Verbose] > │ let tests () = v0 ()                                                         │

00:02:43 #4121 [Verbose] > │ let v1 : ((string []) -> int32) = closure6()                                 │

00:02:43 #4122 [Verbose] > │ let main args = v1 args                                                      │

00:02:43 #4123 [Verbose] > │ ()                                                                           │

00:02:43 #4124 [Verbose] > │                                                                              │

00:02:43 #4125 [Verbose] > │                                                                              │

00:02:43 #4126 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:02:46 #4127 [Verbose] > [NbConvertApp] Converting notebook math.dib.ipynb to html

00:02:46 #4128 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:02:46 #4129 [Verbose] >   validate(nb)

00:02:47 #4130 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:02:47 #4131 [Verbose] >   return _pygments_highlight(

00:02:48 #4132 [Verbose] > [NbConvertApp] Writing 7420568 bytes to math.dib.html

00:02:50 #4133 [Debug] executeAsync / exitCode: 0 / output.Length: 297960

00:02:50 #4134 [Debug] main / executeCommand / exitCode: 0

00:02:52 #4135 [Debug] runWithTimeoutChildAsync / timeout: 2000

00:00:00 #1 [Debug] writeDibCode / output: Spi / path: math.dib

00:00:00 #2 [Debug] parseDibCode / output: Spi / file: math.dib

00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\lib\math

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805

00:00:01 #11 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:01 #12 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:01 #13 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:01 #14 [Debug] sendJson / port: 13805 / json: {"FileOpen":{"spiText":"// // # math\n\nopen testing\nopen rust_operators\n\ninl types () =\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022num_complex::Complex\u003C$0\u003E\\\u0022)\u003E] type num_complex_Complex\u003C\u0027T\u003E = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::types::PyModule\\\u0022)\u003E] type pyo3_types_PyModule = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Bound\u003C$0\u003E\\\u0022)\u003E] type pyo3_Bound\u003C\u0027T\u003E = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::Python\\\u0022)\u003E] type pyo3_Python = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyAny\\\u0022)\u003E] type pyo3_PyAny = class end\u0022\n    global \u0022[\u003CFable.Core.Erase; Fable.Core.Emit(\\\u0022pyo3::PyErr\\\u0022)\u003E] type pyo3_PyErr = class end\u0022\n\ninl types () =\n    rust.types ()\n    sm\u0027.types ()\n    types ()\n\n// // ## complex\n\nnominal complex t = $\u0022num_complex_Complex\u003C\u0060t\u003E\u0022\nnominal bound t = $\u0022pyo3_Bound\u003C\u0060t\u003E\u0022\nnominal python = $\u0022pyo3_Python\u0022\nnominal pymodule = $\u0022pyo3_types_PyModule\u0022\nnominal pyany = $\u0022pyo3_PyAny\u0022\nnominal pyerr = $\u0022pyo3_PyErr\u0022\n\ninl complex forall t. ((re : t), (im : t)) : complex t =\n    !\\\\((re, im), $\u0027\u0022num_complex::Complex::new($0, $1)\u0022\u0027)\n\n// // ## complex_sin\n\ninl re forall t. (c : complex t) : t =\n    inl c = join c\n    !\\($\u0027\u0022!c.re\u0022\u0027)\n\ninl im forall t. (c : complex t) : t =\n    inl c = join c\n    !\\($\u0027\u0022!c.im\u0022\u0027)\n\ninl complex_unbox forall t. (c : complex t) =\n    re c, im c\n\ninl (~.^) c = complex c\n\ninl complex_eq forall t. (a : complex t) (b : complex t) : bool =\n    !\\($\u0027\u0022!a == !b\u0022\u0027)\n\ninl (.=) a b = complex_eq a b\n\ninstance equable complex t = complex_eq\n\ninl complex_add forall t. (a : complex t) (b : complex t) : complex t =\n    !\\($\u0027\u0022!a \u002B !b\u0022\u0027)\n\ninl (.\u002B) a b = complex_add a b\n\ninl complex_sub forall t. (a : complex t) (b : complex t) : complex t =\n    !\\\\((a, b), $\u0027\u0022$0 - $1\u0022\u0027)\n\ninl (.-) a b = complex_sub a b\n\ninl complex_mult forall t. (a : complex t) (b : complex t) : complex t =\n    !\\\\((a, b), $\u0027\u0022$0 * $1\u0022\u0027)\n\ninl (.*) a b = complex_mult a b\n\ninl complex_div forall t. (a : complex t) (b : complex t) : complex t =\n    !\\($\u0027\u0022!a / !b\u0022\u0027)\n\ninl (./) a b = complex_div a b\n\ninl powc forall t. (s : complex t) (c : complex t) : complex t =\n    inl c = join c\n    inl s = join s\n    !\\($\u0027\u0022num_complex::Complex::powc(!c, !s)\u0022\u0027)\n\ninl (.**) a b = powc b a\n\ninl complex_sin forall t. (c : complex t) : complex t =\n    !\\($\u0027\u0022!c.sin()\u0022\u0027)\n\ninl conj forall t. (c : complex t) : complex t =\n    !\\($\u0027\u0022!c.conj()\u0022\u0027)\n\n// // ## zeta\n\ninl zeta log (gamma : complex f64 -\u003E complex f64) (s : complex f64) : complex f64 =\n    inl rec zeta count gamma s =\n        if log then\n            !\\\\(s, $\u0027\u0022println\\!(\\\\\\\u0022zeta / count: {:?} / s: {:?}\\\\\\\u0022, !count, $0)\u0022\u0027)\n        if re s \u003E 1 then\n            (.^(0, 0), (am.init 10000i32 id : a i32 _))\n            ||\u003E am.fold fun acc n =\u003E\n                acc .\u002B (.^(1, 0) ./ (.^(f64 n, 0) .** s))\n        else\n            inl gamma_term = gamma (.^(1, 0) .- s)\n            inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin\n            inl one_minus_s = .^(1 - re s, -(im s))\n            inl mirror_term =\n                if re one_minus_s \u003C= 1\n                then .^(0, 0)\n                else\n                    if count \u003C= 3\n                    then zeta (count \u002B 1) gamma one_minus_s\n                    else one_minus_s\n            inl reflection_formula =\n                .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* mirror_term\n            reflection_formula\n    join zeta 0i32 gamma s\n\n// // ## eval\n\ninl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =\n    inl py = join py\n    inl code = code |\u003E sm\u0027.as_str\n    !\\($\u0027\u0022pyo3::types::PyModule::from_code_bound(!py, !code, \\\\\u0022\\\\\u0022, \\\\\u0022\\\\\u0022)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl use_pyanymethods () =\n    global \u0022Fable.Core.RustInterop.emitRustExpr () \\\u0022);\\nuse pyo3::prelude::PyAnyMethods;\\n//\\\u0022\u0022\n\ninl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =\n    inl attr = join attr\n    inl attr = attr |\u003E sm\u0027.as_str\n    inl module = join module\n    use_pyanymethods ()\n    !\\($\u0027\u0022!module.getattr(!attr)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =\n    inl args = join args\n    inl module = join module\n    !\\($\u0027\u0022pyo3::prelude::PyAnyMethods::call(\u0026!module, ((*!args).0, *(*!args).1), None)\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl extract forall t. (result : bound pyany) : _ t _ =\n    inl result = join result\n    use_pyanymethods ()\n    !\\($\u0027\u0022!result.extract()\u0022\u0027)\n    |\u003E resultm.map_error\u0027 fun (x : pyerr) =\u003E x |\u003E sm\u0027.format\u0027\n\ninl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm\u0027.std_string =\n    inl code =\n        code\n        |\u003E module_from_code py\n        |\u003E resultm.unwrap\u0027\n    inl fn =\n        code\n        |\u003E getattr \u0022fn\u0022\n        |\u003E resultm.unwrap\u0027\n\n    fn\n    |\u003E call args\n    |\u003E resultm.try\u0027\n    |\u003E extract\n    |\u003E resultm.try\u0027\n    |\u003E complex\n    |\u003E Ok\n    |\u003E resultm.box\n\ninl call1_ log py s code =\n    inl code = join (a code : _ i32 _) |\u003E sm\u0027.concat_array_trailing \u0022\\n\u0022\n    \n    inl s = new_pair (re s) (im s)\n    inl args = new_pair log s\n\n    eval py code args\n\ninl call1_ log name py s line =\n    inl s = join s\n    join\n        ;[\n            $\u0027$\u0022import sys\u0022\u0027\n            $\u0027$\u0022import traceback\u0022\u0027\n            $\u0027$\u0022import re\u0022\u0027\n            $\u0027$\u0022count = 0\u0022\u0027\n            $\u0027$\u0022memory_address_pattern = re.compile(r\\\u0027 at 0x[0-9a-fA-F]\u002B\\\u0027)\u0022\u0027\n            $\u0027$\u0022def trace_calls(frame, event, arg):\u0022\u0027\n            $\u0027$\u0022    global count\u0022\u0027\n            $\u0027$\u0022    count \u002B= 1\u0022\u0027\n            $\u0027$\u0022    if count \u003C 200:\u0022\u0027\n            $\u0027$\u0022        try:\u0022\u0027\n            $\u0027$\u0022            args = {{ k: v for k, v in frame.f_locals.items() if frame.f_code.co_name \\!= \\\u0027make_mpc\\\u0027 and k not in [\\\u0027ctx\\\u0027] and not callable(v) }}\u0022\u0027\n            $\u0027$\u0022            args_str = \\\u0027, \\\u0027.join([ f\\\\\\\u0022{{k}}={{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(v))}}\\\\\\\u0022 for k, v in args.items() ])\u0022\u0027\n            $\u0027$\u0022            print(f\\\\\\\u0022{{event}}({!name}) / f_code.co_name: {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} / f_code.co_filename: {{frame.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1]}} / f_back.f_lineno: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_lineno }} / f_back.f_code.co_filename: {{ \\\u0027\\\u0027 if frame.f_back is None else frame.f_back.f_code.co_filename.split(\\\u0027site-packages\\\u0027)[-1] }} / arg: {{re.sub(memory_address_pattern, \\\u0027 at 0x\u003C?\u003E\\\u0027, repr(arg))}}\\\\\\\u0022, flush=True)\u0022\u0027\n            $\u0027$\u0022        except ValueError as e:\u0022\u0027\n            $\u0027$\u0022            print(f\\\u0027{!name} / e: {{e}}\\\u0027, flush=True)\u0022\u0027\n            $\u0027$\u0022        return trace_calls\u0022\u0027\n            $\u0027$\u0022import mpmath\u0022\u0027\n            $\u0027$\u0022def fn(log, s):\u0022\u0027\n            $\u0027$\u0022    global count\u0022\u0027\n            $\u0027$\u0022    if log:\u0022\u0027\n            $\u0027$\u0022        print(f\\\u0027{!name} / s: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n            $\u0027$\u0022    s = complex(*s)\u0022\u0027\n            $\u0027$\u0022    try:\u0022\u0027\n            $\u0027$\u0022        if log: sys.settrace(trace_calls)\u0022\u0027\n            line\n            $\u0027$\u0022        if log:\u0022\u0027\n            $\u0027$\u0022            sys.settrace(None)\u0022\u0027\n            $\u0027$\u0022            print(f\\\u0027{!name} / result: {{s}} / count: {{count}}\\\u0027, flush=True)\u0022\u0027\n            $\u0027$\u0022    except ValueError as e:\u0022\u0027\n            $\u0027$\u0022        if s.real == 1:\u0022\u0027\n            $\u0027$\u0022            s = complex(float(\\\u0027inf\\\u0027), 0)\u0022\u0027\n            $\u0027$\u0022    return (s.real, s.imag)\u0022\u0027\n        ]\n        |\u003E call1_ log py s\n\ninl gamma_ log py s =\n    call1_ log \u0022gamma_\u0022 py s $\u0027$\u0022        s = mpmath.gamma(s)\u0022\u0027\n\ninl zeta_ log py s =\n    call1_ log \u0022zeta_\u0022 py s $\u0027$\u0022        s = mpmath.zeta(s)\u0022\u0027\n\n// // ## run_test\n\ninl run_test log closure_fix (fn : (complex f64 -\u003E complex f64) * (complex f64 -\u003E complex f64) -\u003E ()) =\n    inl fn_ (py : python) : resultm.result\u0027 () pyerr =\n        inl nan () =\n            !\\($\u0027\u0022f64::NAN\u0022\u0027)\n        inl gamma__ = fun (s : complex f64) =\u003E\n            inl result = gamma_ log py s\n            if log then\n                inl s = join s\n                !\\($\u0027\u0022println\\!(\\\\\\\u0022gamma__ / s: {:?} / result: {:?}\\\\\\\u0022, !s, !result)\u0022\u0027)\n            result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n        inl zeta__ = fun (s : complex f64) =\u003E\n            inl result = zeta_ log py s\n\n            inl z = zeta true gamma__ s\n\n            if log then\n                inl s = join s\n                !\\($\u0027\u0022println\\!(\\\\\\\u0022zeta__ / s: {:?} / result: {:?} / z: {:?}\\\\\\\u0022, !s, !result, !z)\u0022\u0027)\n\n    //             re result - re x |\u003E abs\n    //             |\u003E _assert_lt 0.001\n\n    //             im result - im x |\u003E abs\n    //             |\u003E _assert_lt 0.001\n\n            result |\u003E resultm.ok\u0027 |\u003E optionm\u0027.unbox |\u003E optionm\u0027.default_value .^(nan (), nan ())\n        join fn (zeta__, gamma__)\n\n        Ok ()\n        |\u003E resultm.box\n    \n    join\n        !\\($\u0027\u0022pyo3::prepare_freethreaded_python()\u0022\u0027) : ()\n\n        !\\($\u0027\u0022let __result = pyo3::Python::with_gil(|py| -\u003E pyo3::PyResult\u003C()\u003E { //\u0022\u0027)\n\n        let x\u0027 = fn_ (!\\($\u0027\u0022py\u0022\u0027) : python)\n        inl x\u0027 = join x\u0027\n        \n        inl closure_fix = 2u8, 1u8\n        x\u0027 |\u003E rust.fix_closure closure_fix\n\n        (!\\($\u0027\u0022__result\u0022\u0027) : _ () pyerr)\n        |\u003E resultm.unwrap\u0027\n\n// // ## test_zeta_at_known_values_\n\ninl test_zeta_at_known_values_ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(2, 0), pi ** 2 / 6\n        .^(-1, 0), -1 / 12\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun s, e =\u003E\n        inl result = zeta s\n\n        result |\u003E im |\u003E _assert_eq 0\n        re result - e |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_zeta_at_2_minus2\n\ninl test_zeta_at_2_minus2 log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n    inl s = .^(2, -2)\n    inl result = zeta s\n\n    (re result - 0.8673) |\u003E abs |\u003E _assert_lt 0.001\n    (im result - 0.2750) |\u003E abs |\u003E _assert_lt 0.001\n\n// // ## test_trivial_zero_at_negative_even___\n\ninl test_trivial_zero_at_negative_even___ log = run_test log (2u8, 1u8) fun zeta, gamma =\u003E\n    (join listm\u0027.init_series -2f64 -40 -2)\n    |\u003E listm.iter fun n =\u003E\n        inl s = .^(n, 0)\n        inl result = zeta s\n\n        result |\u003E re |\u003E _assert_eq 0\n        result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_non_trivial_zero___\n\ninl test_non_trivial_zero___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(0.5, 14.134725)\n        .^(0.5, 21.022040)\n        .^(0.5, 25.010857)\n        .^(0.5, 30.424876)\n        .^(0.5, 32.935062)\n        .^(0.5, 37.586178)\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun x =\u003E\n            inl result = zeta x\n            result |\u003E re |\u003E abs |\u003E _assert_lt 0.0001\n            result |\u003E im |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_real_part_greater_than_one___\n\ninl test_real_part_greater_than_one___ log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    inl points = ;[2; 3; 4; 5; 10; 20; 50]\n    (a points : _ i32 _)\n    |\u003E am.iter fun point =\u003E\n        inl s = .^(point, 0)\n        inl result = zeta s\n        result |\u003E re |\u003E _assert_gt 0\n        result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_zeta_at_1___\n\ninl test_zeta_at_1___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n    inl s = .^(1, 0)\n    inl result = zeta s\n    result |\u003E re |\u003E _assert_eq limit.max\n    result |\u003E im |\u003E _assert_eq 0\n\n// // ## test_symmetry_across_real_axis___\n\ninl test_symmetry_across_real_axis___ log = run_test log (8u8, 7u8) fun zeta, gamma =\u003E\n    inl s = .^(2, 10)\n    inl result_positive_im = zeta s\n    inl result_negative_im = zeta .^(re s, -(im s))\n    inl conj = result_negative_im |\u003E conj\n    result_positive_im |\u003E re |\u003E _assert_eq (conj |\u003E re)\n    result_positive_im |\u003E im |\u003E _assert_eq (conj |\u003E im)\n\n// // ## test_behavior_near_origin___\n\ninl test_behavior_near_origin___ log = run_test log (6u8, 5u8) fun zeta, gamma =\u003E\n    inl s = .^(0.01, 0.01)\n    inl result = zeta s\n    result |\u003E re |\u003E _assert_lt limit.max\n    result |\u003E im |\u003E _assert_lt limit.max\n\n// // ## test_imaginary_axis\n\ninl test_imaginary_axis log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    (join a ;[10; 20; 30; 40; 50; 60; 70; 80; 90; 100] : _ i32 _)\n    |\u003E am.iter fun s =\u003E\n        inl s = .^(0, s)\n        inl result = zeta s\n        result |\u003E re |\u003E _assert_ne 0\n        result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_critical_strip\n\ninl test_critical_strip log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(0.5, 14.134725)\n        .^(0.75, 20.5)\n        .^(1.25, 30.1)\n        .^(0.25, 40.0)\n        .^(1.0, 50.0)\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun s =\u003E\n        inl result = zeta s\n        result |\u003E re |\u003E _assert_ne 0\n        result |\u003E im |\u003E _assert_ne 0\n\n// // ## test_reflection_formula_for_specific_value\n\ninl test_reflection_formula_for_specific_value log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    ;[\n        .^(3, 4)\n        .^(2.5, -3.5)\n        .^(1.5, 2.5)\n        .^(0.5, 14.134725)\n    ]\n    |\u003E fun x =\u003E a x : _ i32 _\n    |\u003E am.iter fun s =\u003E\n        inl lhs = zeta s\n        inl reflection_coefficient =\n            (.^(2, 0) .** s)\n            .* (.^(pi, 0) .** (s .- .^(1, 0)))\n            .* (.^(pi, 0) .* s ./ .^(2, 0) |\u003E complex_sin)\n            .* gamma (.^(1, 0) .- s)\n\n        inl one_minus_s = .^(1 - re s, -(im s))\n        inl rhs = reflection_coefficient .* zeta one_minus_s\n\n        re lhs - re rhs |\u003E abs |\u003E _assert_lt 0.0001\n        im lhs - im rhs |\u003E abs |\u003E _assert_lt 0.0001\n\n// // ## test_euler_product_formula\n\ninl test_euler_product_formula log = run_test log (3u8, 2u8) fun zeta, gamma =\u003E\n    inl s_values = ;[2; 2.5; 3; 3.5; 4; 4.5; 5]\n    inl primes = ;[2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; 53; 59; 61; 67; 71]\n    (a s_values : _ i32 _)\n    |\u003E am.iter fun s_re =\u003E\n        inl s = .^(s_re, 0)\n        inl product =\n            (1, (a primes : _ i32 _))\n            ||\u003E am.fold fun acc x =\u003E\n                acc * 1 / (1 - x ** -s_re)\n\n        inl result = zeta s\n        re result - product |\u003E abs |\u003E _assert_lt 0.01\n        result |\u003E im |\u003E _assert_lt 0.01\n\n// // ## graph\n\n// // ## tests\n\ninl tests () =\n    !\\($\u0027\u0022}//\u0022\u0027) : ()\n\n    !\\($\u0027\u0022#[test] fn test_zeta_at_known_values_() { //\u0022\u0027) : ()\n    test_zeta_at_known_values_ false\n    !\\($\u0027\u0022} #[test] fn test_zeta_at_2_minus2() { //\u0022\u0027) : ()\n    test_zeta_at_2_minus2 false\n    !\\($\u0027\u0022} #[test] fn test_trivial_zero_at_negative_even___() { //\u0022\u0027) : ()\n    test_trivial_zero_at_negative_even___ false\n    !\\($\u0027\u0022} #[test] fn test_non_trivial_zero___() { //\u0022\u0027) : ()\n    test_non_trivial_zero___ false\n    !\\($\u0027\u0022} #[test] fn test_real_part_greater_than_one___() { //\u0022\u0027) : ()\n    test_real_part_greater_than_one___ false\n    !\\($\u0027\u0022} #[test] fn test_zeta_at_1___() { //\u0022\u0027) : ()\n    test_zeta_at_1___ false\n    !\\($\u0027\u0022} #[test] fn test_symmetry_across_real_axis___() { //\u0022\u0027) : ()\n    test_symmetry_across_real_axis___ false\n    !\\($\u0027\u0022} #[test] fn test_behavior_near_origin___() { //\u0022\u0027) : ()\n    test_behavior_near_origin___ false\n    !\\($\u0027\u0022} #[test] fn test_imaginary_axis() { //\u0022\u0027) : ()\n    test_imaginary_axis false\n    !\\($\u0027\u0022} #[test] fn test_critical_strip() { //\u0022\u0027) : ()\n    test_critical_strip false\n    !\\($\u0027\u0022} #[test] fn test_reflection_formula_for_specific_value() { //\u0022\u0027) : ()\n    test_reflection_formula_for_specific_value false\n    !\\($\u0027\u0022} #[test] fn test_euler_product_formula() { //\u0022\u0027) : ()\n    test_euler_product_formula false\n\n// // rust=\n\ninl main (_args : array_base string) =\n    inl value = 1i32\n    console.write_line ($\u0022$\\\u0022value: {!value}\\\u0022\u0022 : string)\n    0i32\n\ninl main () =\n    types ()\n    $\u0022let tests () = !tests ()\u0022 : ()\n    $\u0022let main args = !main args\u0022 : ()\n","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result.Length:

00:00:02 #15 [Debug] sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result.Length:

00:00:02 #16 [Verbose] > Building c:\home\git\polyglot\lib\math\math.spi

00:00:02 #17 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:03 #18 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:04 #19 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: [] / typeErrorCount: 0

00:00:05 #20 [Debug] buildFile / takeWhileInclusive / fsxContent: [<Fable.Core.Erase; Fable.Core.Emit("Func0<$0>")>] type Func0<'T> = class end

[<Fable.Core.Erase; Fable.Core.Emit("Func1<$0, $1>")>] type Func0<'T, 'U> = class end

[<Fable.Core.Erase; Fable.Core.Emit("Box<$0>")>] type Box<'T> = class end

[<Fable.Core.Erase; Fable.Core.Emit("dyn $0")>] type Dyn<'T> = class end

[<Fable.Core.Erase; Fable.Core.Emit("Fn() -> $0")>] type Fn<'T> = class end

[<Fable.Core.Erase; Fable.Core.Emit("Fn()")>] type FnUnit = class end

[<Fable.Core.Erase; Fable.Core.Emit("FnOnce() -> $0")>] type FnOnce<'T> = class end

[<Fable.Core.Erase; Fable.Core.Emit("Fn($0, $1)")>] type ActionFn2<'T, 'U> = class end

[<Fable.Core.Erase; Fable.Core.Emit("impl $0")>] type Impl<'T> = class end

[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>]... / errors: [] / typeErrorCount: 0

00:00:05 #21 [Debug] watchWithFilter / Disposing watch stream / filter: FileName, LastWrite

00:00:07 #22 [Debug] runWithTimeoutChildAsync / timeout: 2000

00:00:00 #1 [Debug] persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: math / code.Length: 125490

00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj

00:00:00 #3 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64"

  WorkingDirectory = Some "C:\home\git\polyglot\target\polyglot\builder\math"

  CancellationToken = None

  OnLine = None }

00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:03 #5 [Verbose] >   Determining projects to restore...

00:00:04 #6 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj (in 1.04 sec).

00:00:05 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj]

00:00:15 #8 [Verbose] >   math -> C:\home\git\polyglot\target\polyglot\builder\math\bin\Release\net9.0\linux-x64\math.dll

00:00:17 #9 [Verbose] >   math -> C:\home\git\polyglot\lib\math\dist\

00:00:17 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 666

00:00:17 #11 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64"

  WorkingDirectory = Some "C:\home\git\polyglot\target\polyglot\builder\math"

  CancellationToken = None

  OnLine = None }

00:00:18 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:19 #13 [Verbose] >   Determining projects to restore...

00:00:20 #14 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj (in 540 ms).

00:00:20 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\math\math.fsproj]

00:00:29 #16 [Verbose] >   math -> C:\home\git\polyglot\target\polyglot\builder\math\bin\Release\net9.0\win-x64\math.dll

00:00:39 #17 [Verbose] >   math -> C:\home\git\polyglot\lib\math\dist\

00:00:40 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 662

Fable 4.14.0: F# to Rust compiler (status: alpha)



Thanks to the contributor! @dgchurchill

Stand with Ukraine! https://standwithukraine.com.ua/



Parsing ..\..\target\polyglot\builder\math\math.fsproj...

Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option.

Project and references (7 source files) parsed in 249ms



Started Fable compilation...



Fable compilation finished in 5682ms



.\..\spiral\common.fsx(117,0): (117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!

.\..\spiral\date_time.fsx(107,0): (107,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!

.\..\spiral\file_system.fsx(814,0): (814,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!

.\..\spiral\sm.fsx(291,0): (291,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!

.\..\..\target\polyglot\builder\math\math.fs(37,0): (39,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!

    Blocking waiting for file lock on package cache

    Blocking waiting for file lock on package cache

    Blocking waiting for file lock on package cache

   Compiling math v0.0.1 (C:\home\git\polyglot\lib\math)

    Finished `release` profile [optimized] target(s) in 23.80s

     Running unittests math.rs (C:\home\git\polyglot\target\release\deps\math-d4dbef61f0dacdd5.exe)



running 12 tests

test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok

test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok

test module_b7a9935b::Math::test_behavior_near_origin___ ... ok

test module_b7a9935b::Math::test_zeta_at_1___ ... ok

test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok

test module_b7a9935b::Math::test_non_trivial_zero___ ... ok

test module_b7a9935b::Math::test_euler_product_formula ... ok

test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok

test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok

test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok

test module_b7a9935b::Math::test_critical_strip ... ok

test module_b7a9935b::Math::test_imaginary_axis ... ok



test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s



In [ ]:
{ . "$ScriptDir/../apps/scheduler/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\scheduler

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805

00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Tasks.dib -Retries 3""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:05 #12 [Verbose] >

00:00:05 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:05 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:05 #15 [Verbose] > │ ## Tasks (Polyglot)                                                          │

00:00:05 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:05 #17 [Verbose] >

00:00:05 #18 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:05 #19 [Verbose] > // // test

00:00:05 #20 [Verbose] >

00:00:05 #21 [Verbose] > open testing

00:00:09 #22 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4014-1418-155acb0ec2e8\main.spi

00:00:13 #23 [Verbose] >

00:00:13 #24 [Verbose] > ╭─[ 8.39s - stdout ]───────────────────────────────────────────────────────────╮

00:00:13 #25 [Verbose] > │ ()                                                                           │

00:00:13 #26 [Verbose] > │                                                                              │

00:00:13 #27 [Verbose] > │                                                                              │

00:00:13 #28 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:13 #29 [Verbose] >

00:00:13 #30 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:13 #31 [Verbose] > inl types () =

00:00:13 #32 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"std::string::String\")>]]

00:00:13 #33 [Verbose] > type std_string_String = class end"

00:00:13 #34 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"&$0\")>]] type Ref<'T> =

00:00:13 #35 [Verbose] > class end"

00:00:13 #36 [Verbose] >     global "[[<Fable.Core.Erase; Fable.Core.Emit(\"str\")>]] type Str = class

00:00:13 #37 [Verbose] > end"

00:00:13 #38 [Verbose] >

00:00:13 #39 [Verbose] > inl emit_expr forall a t. (args : a) (code : string) : t =

00:00:13 #40 [Verbose] >     real

00:00:13 #41 [Verbose] >         $"Fable.Core.RustInterop.emitRustExpr !args !code" : t

00:00:13 #42 [Verbose] >

00:00:13 #43 [Verbose] >

00:00:13 #44 [Verbose] > nominal std_string = $"std_string_String"

00:00:13 #45 [Verbose] > nominal ref' t = $"Ref<`t>"

00:00:13 #46 [Verbose] > nominal str = $"Str"

00:00:13 #47 [Verbose] >

00:00:13 #48 [Verbose] > inl format_debug forall t. (x : t) : std_string =

00:00:13 #49 [Verbose] >     real

00:00:13 #50 [Verbose] >         emit_expr `t `std_string x "format!(\"{:?}\", $0)"

00:00:13 #51 [Verbose] >

00:00:13 #52 [Verbose] > inl format_pretty forall t. (x : t) : std_string =

00:00:13 #53 [Verbose] >     real

00:00:13 #54 [Verbose] >         emit_expr `t `std_string x "format!(\"{:#?}\", $0)"

00:00:13 #55 [Verbose] >

00:00:13 #56 [Verbose] > inl to_std_string (str : ref' str) : std_string =

00:00:13 #57 [Verbose] >     // inl str = join str

00:00:13 #58 [Verbose] >     // // emit_expr () $"\"!str.to_string()\""

00:00:13 #59 [Verbose] >     // // emit_expr () $"\"alloc::string::to_string(!str)\""

00:00:13 #60 [Verbose] >     // emit_expr str "($0).to_string()"

00:00:13 #61 [Verbose] >     emit_expr str $"\"String::from(core::ops::Deref::deref($0))\""

00:00:13 #62 [Verbose] >     // emit_expr str $"\"String::from(*$0)\""

00:00:13 #63 [Verbose] >     // emit_expr () $"\"String::from(!str)\""

00:00:13 #64 [Verbose] >

00:00:13 #65 [Verbose] > inl format forall t. (x : t) : std_string =

00:00:13 #66 [Verbose] >     real

00:00:13 #67 [Verbose] >         inl result : std_string =

00:00:13 #68 [Verbose] >             typecase t with

00:00:13 #69 [Verbose] >             | string => to_std_string x

00:00:13 #70 [Verbose] >             | std_string => x

00:00:13 #71 [Verbose] >             | _ => format_pretty `t x

00:00:13 #72 [Verbose] >         result

00:00:13 #73 [Verbose] >

00:00:13 #74 [Verbose] > inl raw_string_literal (s : string) : ref' str =

00:00:13 #75 [Verbose] >     emit_expr () $"\"r#\\\"\" + !s + \"\\\"#\""

00:00:13 #76 [Verbose] >

00:00:13 #77 [Verbose] > inl (~#) (s : string) : ref' str =

00:00:13 #78 [Verbose] >     raw_string_literal s

00:00:13 #79 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4554-5448-52110cbe755a\main.spi

00:00:13 #80 [Verbose] >

00:00:13 #81 [Verbose] > ╭─[ 351.67ms - stdout ]────────────────────────────────────────────────────────╮

00:00:13 #82 [Verbose] > │ ()                                                                           │

00:00:13 #83 [Verbose] > │                                                                              │

00:00:13 #84 [Verbose] > │                                                                              │

00:00:13 #85 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:13 #86 [Verbose] >

00:00:13 #87 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:13 #88 [Verbose] > nominal task_name = string

00:00:13 #89 [Verbose] >

00:00:13 #90 [Verbose] > union manual_scheduling =

00:00:13 #91 [Verbose] >     | WithSuggestion

00:00:13 #92 [Verbose] >     | WithoutSuggestion

00:00:13 #93 [Verbose] >

00:00:13 #94 [Verbose] > union recurrency_offset =

00:00:13 #95 [Verbose] >     | Days : i32

00:00:13 #96 [Verbose] >     | Weeks : i32

00:00:13 #97 [Verbose] >     | Months : i32

00:00:13 #98 [Verbose] >

00:00:13 #99 [Verbose] > union day_of_week =

00:00:13 #100 [Verbose] >     | Sunday

00:00:13 #101 [Verbose] >     | Monday

00:00:13 #102 [Verbose] >     | Tuesday

00:00:13 #103 [Verbose] >     | Wednesday

00:00:13 #104 [Verbose] >     | Thursday

00:00:13 #105 [Verbose] >     | Friday

00:00:13 #106 [Verbose] >     | Saturday

00:00:13 #107 [Verbose] >

00:00:13 #108 [Verbose] > union month =

00:00:13 #109 [Verbose] >     | January

00:00:13 #110 [Verbose] >     | February

00:00:13 #111 [Verbose] >     | March

00:00:13 #112 [Verbose] >     | April

00:00:13 #113 [Verbose] >     | May

00:00:13 #114 [Verbose] >     | June

00:00:13 #115 [Verbose] >     | July

00:00:13 #116 [Verbose] >     | August

00:00:13 #117 [Verbose] >     | September

00:00:13 #118 [Verbose] >     | October

00:00:13 #119 [Verbose] >     | November

00:00:13 #120 [Verbose] >     | December

00:00:13 #121 [Verbose] >

00:00:13 #122 [Verbose] > nominal day = i32

00:00:13 #123 [Verbose] > nominal year = i32

00:00:13 #124 [Verbose] >

00:00:13 #125 [Verbose] > union fixed_recurrency =

00:00:13 #126 [Verbose] >     | Weekly : day_of_week

00:00:13 #127 [Verbose] >     | Monthly : day

00:00:13 #128 [Verbose] >     | Yearly : day * month

00:00:13 #129 [Verbose] >

00:00:13 #130 [Verbose] > union recurrency =

00:00:13 #131 [Verbose] >     | Offset : recurrency_offset

00:00:13 #132 [Verbose] >     | Fixed : list fixed_recurrency

00:00:13 #133 [Verbose] >

00:00:13 #134 [Verbose] > union scheduling =

00:00:13 #135 [Verbose] >     | Manual : manual_scheduling

00:00:13 #136 [Verbose] >     | Recurrent : recurrency

00:00:13 #137 [Verbose] >

00:00:13 #138 [Verbose] > type task =

00:00:13 #139 [Verbose] >     {

00:00:13 #140 [Verbose] >         name : task_name

00:00:13 #141 [Verbose] >         scheduling : scheduling

00:00:13 #142 [Verbose] >     }

00:00:13 #143 [Verbose] >

00:00:13 #144 [Verbose] > type date =

00:00:13 #145 [Verbose] >     {

00:00:13 #146 [Verbose] >         year : year

00:00:13 #147 [Verbose] >         month : month

00:00:13 #148 [Verbose] >         day : day

00:00:13 #149 [Verbose] >     }

00:00:13 #150 [Verbose] >

00:00:13 #151 [Verbose] > union status =

00:00:13 #152 [Verbose] >     | Postponed : option ()

00:00:13 #153 [Verbose] >

00:00:13 #154 [Verbose] > type event =

00:00:13 #155 [Verbose] >     {

00:00:13 #156 [Verbose] >         date : date

00:00:13 #157 [Verbose] >         status : status

00:00:13 #158 [Verbose] >     }

00:00:13 #159 [Verbose] >

00:00:13 #160 [Verbose] > type task_template =

00:00:13 #161 [Verbose] >     {

00:00:13 #162 [Verbose] >         task : task

00:00:13 #163 [Verbose] >         events : list event

00:00:13 #164 [Verbose] >     }

00:00:14 #165 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4588-8875-8a42fab01d3a\main.spi

00:00:14 #166 [Verbose] >

00:00:14 #167 [Verbose] > ╭─[ 473.65ms - stdout ]────────────────────────────────────────────────────────╮

00:00:14 #168 [Verbose] > │ ()                                                                           │

00:00:14 #169 [Verbose] > │                                                                              │

00:00:14 #170 [Verbose] > │                                                                              │

00:00:14 #171 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:14 #172 [Verbose] >

00:00:14 #173 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:14 #174 [Verbose] > // // test

00:00:14 #175 [Verbose] > // // rust=

00:00:14 #176 [Verbose] >

00:00:14 #177 [Verbose] > types ()

00:00:14 #178 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-4637-3704-34ddaf476ef8\main.spi

00:00:21 #179 [Verbose] >

00:00:21 #180 [Verbose] > ╭─[ 6.69s - return value ]─────────────────────────────────────────────────────╮

00:00:21 #181 [Verbose] > │ .rs output:                                                                  │

00:00:21 #182 [Verbose] > │                                                                              │

00:00:21 #183 [Verbose] > │                                                                              │

00:00:21 #184 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:21 #185 [Verbose] >

00:00:21 #186 [Verbose] > ╭─[ 6.70s - stdout ]───────────────────────────────────────────────────────────╮

00:00:21 #187 [Verbose] > │                                                                              │

00:00:21 #188 [Verbose] > │ .fsx:                                                                        │

00:00:21 #189 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │

00:00:21 #190 [Verbose] > │ std_string_String = class end                                                │

00:00:21 #191 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │

00:00:21 #192 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │

00:00:21 #193 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:21 #194 [Verbose] > │     ()                                                                       │

00:00:21 #195 [Verbose] > │ method0()                                                                    │

00:00:21 #196 [Verbose] > │                                                                              │

00:00:21 #197 [Verbose] > │                                                                              │

00:00:21 #198 [Verbose] > │ .rs:                                                                         │

00:00:21 #199 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:00:21 #200 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:00:21 #201 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:00:21 #202 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:00:21 #203 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:00:21 #204 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:00:21 #205 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:00:21 #206 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:00:21 #207 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:00:21 #208 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:00:21 #209 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:00:21 #210 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:00:21 #211 [Verbose] > │         use super::*;                                                        │

00:00:21 #212 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:00:21 #213 [Verbose] > │         pub fn method0() { (); }                                             │

00:00:21 #214 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:00:21 #215 [Verbose] > │     }                                                                        │

00:00:21 #216 [Verbose] > │ }                                                                            │

00:00:21 #217 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:00:21 #218 [Verbose] > │                                                                              │

00:00:21 #219 [Verbose] > │                                                                              │

00:00:21 #220 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:21 #221 [Verbose] >

00:00:21 #222 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:21 #223 [Verbose] > // // test

00:00:21 #224 [Verbose] > // // rust=

00:00:21 #225 [Verbose] >

00:00:21 #226 [Verbose] > inl get_tasks () : list task_template =

00:00:21 #227 [Verbose] >     [[

00:00:21 #228 [Verbose] >         {

00:00:21 #229 [Verbose] >             task =

00:00:21 #230 [Verbose] >                 {

00:00:21 #231 [Verbose] >                     name = task_name "01"

00:00:21 #232 [Verbose] >                     scheduling = Manual WithSuggestion

00:00:21 #233 [Verbose] >                 }

00:00:21 #234 [Verbose] >             events = [[]]

00:00:21 #235 [Verbose] >         }

00:00:21 #236 [Verbose] >         {

00:00:21 #237 [Verbose] >             task =

00:00:21 #238 [Verbose] >                 {

00:00:21 #239 [Verbose] >                     name = task_name "02"

00:00:21 #240 [Verbose] >                     scheduling = Manual WithSuggestion

00:00:21 #241 [Verbose] >                 }

00:00:21 #242 [Verbose] >             events = [[]]

00:00:21 #243 [Verbose] >         }

00:00:21 #244 [Verbose] >         {

00:00:21 #245 [Verbose] >             task =

00:00:21 #246 [Verbose] >                 {

00:00:21 #247 [Verbose] >                     name = task_name "03"

00:00:21 #248 [Verbose] >                     scheduling = Manual WithSuggestion

00:00:21 #249 [Verbose] >                 }

00:00:21 #250 [Verbose] >             events = [[]]

00:00:21 #251 [Verbose] >         }

00:00:21 #252 [Verbose] >     ]]

00:00:21 #253 [Verbose] >

00:00:21 #254 [Verbose] > types ()

00:00:21 #255 [Verbose] > get_tasks () |> format_pretty |> console.write_line

00:00:21 #256 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-5308-0848-00a2d36a809b\main.spi

00:00:27 #257 [Verbose] >

00:00:27 #258 [Verbose] > ╭─[ 6.58s - return value ]─────────────────────────────────────────────────────╮

00:00:27 #259 [Verbose] > │ .rs output:                                                                  │

00:00:27 #260 [Verbose] > │ UH2_1(                                                                       │

00:00:27 #261 [Verbose] > │     UH0_0,                                                                   │

00:00:27 #262 [Verbose] > │     "01",                                                                    │

00:00:27 #263 [Verbose] > │     US4_0(                                                                   │

00:00:27 #264 [Verbose] > │         US3_0,                                                               │

00:00:27 #265 [Verbose] > │     ),                                                                       │

00:00:27 #266 [Verbose] > │     UH2_1(                                                                   │

00:00:27 #267 [Verbose] > │         UH0_0,                                                               │

00:00:27 #268 [Verbose] > │         "02",                                                                │

00:00:27 #269 [Verbose] > │         US4_0(                                                               │

00:00:27 #270 [Verbose] > │             US3_0,                                                           │

00:00:27 #271 [Verbose] > │         ),                                                                   │

00:00:27 #272 [Verbose] > │         UH2_1(                                                               │

00:00:27 #273 [Verbose] > │             UH0_0,                                                           │

00:00:27 #274 [Verbose] > │             "03",                                                            │

00:00:27 #275 [Verbose] > │             US4_0(                                                           │

00:00:27 #276 [Verbose] > │                 US3_0,                                                       │

00:00:27 #277 [Verbose] > │             ),                                                               │

00:00:27 #278 [Verbose] > │             UH2_0,                                                           │

00:00:27 #279 [Verbose] > │         ),                                                                   │

00:00:27 #280 [Verbose] > │     ),                                                                       │

00:00:27 #281 [Verbose] > │ )                                                                            │

00:00:27 #282 [Verbose] > │                                                                              │

00:00:27 #283 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:27 #284 [Verbose] >

00:00:27 #285 [Verbose] > ╭─[ 6.60s - stdout ]───────────────────────────────────────────────────────────╮

00:00:27 #286 [Verbose] > │                                                                              │

00:00:27 #287 [Verbose] > │ .fsx:                                                                        │

00:00:27 #288 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type            │

00:00:27 #289 [Verbose] > │ std_string_String = class end                                                │

00:00:27 #290 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("&$0")>] type Ref<'T> = class end        │

00:00:27 #291 [Verbose] > │ [<Fable.Core.Erase; Fable.Core.Emit("str")>] type Str = class end            │

00:00:27 #292 [Verbose] > │ type [<Struct>] US0 =                                                        │

00:00:27 #293 [Verbose] > │     | US0_0                                                                  │

00:00:27 #294 [Verbose] > │     | US0_1                                                                  │

00:00:27 #295 [Verbose] > │     | US0_2                                                                  │

00:00:27 #296 [Verbose] > │     | US0_3                                                                  │

00:00:27 #297 [Verbose] > │     | US0_4                                                                  │

00:00:27 #298 [Verbose] > │     | US0_5                                                                  │

00:00:27 #299 [Verbose] > │     | US0_6                                                                  │

00:00:27 #300 [Verbose] > │     | US0_7                                                                  │

00:00:27 #301 [Verbose] > │     | US0_8                                                                  │

00:00:27 #302 [Verbose] > │     | US0_9                                                                  │

00:00:27 #303 [Verbose] > │     | US0_10                                                                 │

00:00:27 #304 [Verbose] > │     | US0_11                                                                 │

00:00:27 #305 [Verbose] > │ and [<Struct>] US2 =                                                         │

00:00:27 #306 [Verbose] > │     | US2_0                                                                  │

00:00:27 #307 [Verbose] > │     | US2_1                                                                  │

00:00:27 #308 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:00:27 #309 [Verbose] > │     | US1_0 of f0_0 : US2                                                    │

00:00:27 #310 [Verbose] > │ and UH0 =                                                                    │

00:00:27 #311 [Verbose] > │     | UH0_0                                                                  │

00:00:27 #312 [Verbose] > │     | UH0_1 of int32 * US0 * int32 * US1 * UH0                               │

00:00:27 #313 [Verbose] > │ and [<Struct>] US3 =                                                         │

00:00:27 #314 [Verbose] > │     | US3_0                                                                  │

00:00:27 #315 [Verbose] > │     | US3_1                                                                  │

00:00:27 #316 [Verbose] > │ and [<Struct>] US6 =                                                         │

00:00:27 #317 [Verbose] > │     | US6_0 of f0_0 : int32                                                  │

00:00:27 #318 [Verbose] > │     | US6_1 of f1_0 : int32                                                  │

00:00:27 #319 [Verbose] > │     | US6_2 of f2_0 : int32                                                  │

00:00:27 #320 [Verbose] > │ and [<Struct>] US8 =                                                         │

00:00:27 #321 [Verbose] > │     | US8_0                                                                  │

00:00:27 #322 [Verbose] > │     | US8_1                                                                  │

00:00:27 #323 [Verbose] > │     | US8_2                                                                  │

00:00:27 #324 [Verbose] > │     | US8_3                                                                  │

00:00:27 #325 [Verbose] > │     | US8_4                                                                  │

00:00:27 #326 [Verbose] > │     | US8_5                                                                  │

00:00:27 #327 [Verbose] > │     | US8_6                                                                  │

00:00:27 #328 [Verbose] > │ and [<Struct>] US7 =                                                         │

00:00:27 #329 [Verbose] > │     | US7_0 of f0_0 : US8                                                    │

00:00:27 #330 [Verbose] > │     | US7_1 of f1_0 : int32                                                  │

00:00:27 #331 [Verbose] > │     | US7_2 of f2_0 : int32 * f2_1 : US0                                     │

00:00:27 #332 [Verbose] > │ and UH1 =                                                                    │

00:00:27 #333 [Verbose] > │     | UH1_0                                                                  │

00:00:27 #334 [Verbose] > │     | UH1_1 of US7 * UH1                                                     │

00:00:27 #335 [Verbose] > │ and [<Struct>] US5 =                                                         │

00:00:27 #336 [Verbose] > │     | US5_0 of f0_0 : US6                                                    │

00:00:27 #337 [Verbose] > │     | US5_1 of f1_0 : UH1                                                    │

00:00:27 #338 [Verbose] > │ and [<Struct>] US4 =                                                         │

00:00:27 #339 [Verbose] > │     | US4_0 of f0_0 : US3                                                    │

00:00:27 #340 [Verbose] > │     | US4_1 of f1_0 : US5                                                    │

00:00:27 #341 [Verbose] > │ and UH2 =                                                                    │

00:00:27 #342 [Verbose] > │     | UH2_0                                                                  │

00:00:27 #343 [Verbose] > │     | UH2_1 of UH0 * string * US4 * UH2                                      │

00:00:27 #344 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:27 #345 [Verbose] > │     let v0 : UH0 = UH0_0                                                     │

00:00:27 #346 [Verbose] > │     let v1 : string = "01"                                                   │

00:00:27 #347 [Verbose] > │     let v2 : US3 = US3_0                                                     │

00:00:27 #348 [Verbose] > │     let v3 : US4 = US4_0(v2)                                                 │

00:00:27 #349 [Verbose] > │     let v4 : UH0 = UH0_0                                                     │

00:00:27 #350 [Verbose] > │     let v5 : string = "02"                                                   │

00:00:27 #351 [Verbose] > │     let v6 : US3 = US3_0                                                     │

00:00:27 #352 [Verbose] > │     let v7 : US4 = US4_0(v6)                                                 │

00:00:27 #353 [Verbose] > │     let v8 : UH0 = UH0_0                                                     │

00:00:27 #354 [Verbose] > │     let v9 : string = "03"                                                   │

00:00:27 #355 [Verbose] > │     let v10 : US3 = US3_0                                                    │

00:00:27 #356 [Verbose] > │     let v11 : US4 = US4_0(v10)                                               │

00:00:27 #357 [Verbose] > │     let v12 : UH2 = UH2_0                                                    │

00:00:27 #358 [Verbose] > │     let v13 : UH2 = UH2_1(v8, v9, v11, v12)                                  │

00:00:27 #359 [Verbose] > │     let v14 : UH2 = UH2_1(v4, v5, v7, v13)                                   │

00:00:27 #360 [Verbose] > │     let v15 : UH2 = UH2_1(v0, v1, v3, v14)                                   │

00:00:27 #361 [Verbose] > │     let v16 : string = "format!(\"{:#?}\", $0)"                              │

00:00:27 #362 [Verbose] > │     let v17 : std_string_String = Fable.Core.RustInterop.emitRustExpr v15    │

00:00:27 #363 [Verbose] > │ v16                                                                          │

00:00:27 #364 [Verbose] > │     System.Console.WriteLine v17                                             │

00:00:27 #365 [Verbose] > │     ()                                                                       │

00:00:27 #366 [Verbose] > │ method0()                                                                    │

00:00:27 #367 [Verbose] > │                                                                              │

00:00:27 #368 [Verbose] > │                                                                              │

00:00:27 #369 [Verbose] > │ .rs:                                                                         │

00:00:27 #370 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:00:27 #371 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:00:27 #372 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:00:27 #373 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:00:27 #374 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:00:27 #375 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:00:27 #376 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:00:27 #377 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:00:27 #378 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:00:27 #379 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:00:27 #380 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:00:27 #381 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:00:27 #382 [Verbose] > │         use super::*;                                                        │

00:00:27 #383 [Verbose] > │         use fable_library_rust::Native_::LrcPtr;                             │

00:00:27 #384 [Verbose] > │         use fable_library_rust::Native_::MutCell;                            │

00:00:27 #385 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:00:27 #386 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:00:27 #387 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:00:27 #388 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #389 [Verbose] > │         pub enum US0 {                                                       │

00:00:27 #390 [Verbose] > │             US0_0,                                                           │

00:00:27 #391 [Verbose] > │             US0_1,                                                           │

00:00:27 #392 [Verbose] > │             US0_2,                                                           │

00:00:27 #393 [Verbose] > │             US0_3,                                                           │

00:00:27 #394 [Verbose] > │             US0_4,                                                           │

00:00:27 #395 [Verbose] > │             US0_5,                                                           │

00:00:27 #396 [Verbose] > │             US0_6,                                                           │

00:00:27 #397 [Verbose] > │             US0_7,                                                           │

00:00:27 #398 [Verbose] > │             US0_8,                                                           │

00:00:27 #399 [Verbose] > │             US0_9,                                                           │

00:00:27 #400 [Verbose] > │             US0_10,                                                          │

00:00:27 #401 [Verbose] > │             US0_11,                                                          │

00:00:27 #402 [Verbose] > │         }                                                                    │

00:00:27 #403 [Verbose] > │         impl Spiral_eval::US0 {                                              │

00:00:27 #404 [Verbose] > │             pub fn get_IsUS0_0(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #405 [Verbose] > │ ())                                                                          │

00:00:27 #406 [Verbose] > │              -> bool {                                                       │

00:00:27 #407 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #408 [Verbose] > │             }                                                                │

00:00:27 #409 [Verbose] > │             pub fn get_IsUS0_1(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #410 [Verbose] > │ ())                                                                          │

00:00:27 #411 [Verbose] > │              -> bool {                                                       │

00:00:27 #412 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #413 [Verbose] > │             }                                                                │

00:00:27 #414 [Verbose] > │             pub fn get_IsUS0_2(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #415 [Verbose] > │ ())                                                                          │

00:00:27 #416 [Verbose] > │              -> bool {                                                       │

00:00:27 #417 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #418 [Verbose] > │             }                                                                │

00:00:27 #419 [Verbose] > │             pub fn get_IsUS0_3(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #420 [Verbose] > │ ())                                                                          │

00:00:27 #421 [Verbose] > │              -> bool {                                                       │

00:00:27 #422 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #423 [Verbose] > │             }                                                                │

00:00:27 #424 [Verbose] > │             pub fn get_IsUS0_4(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #425 [Verbose] > │ ())                                                                          │

00:00:27 #426 [Verbose] > │              -> bool {                                                       │

00:00:27 #427 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #428 [Verbose] > │             }                                                                │

00:00:27 #429 [Verbose] > │             pub fn get_IsUS0_5(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #430 [Verbose] > │ ())                                                                          │

00:00:27 #431 [Verbose] > │              -> bool {                                                       │

00:00:27 #432 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #433 [Verbose] > │             }                                                                │

00:00:27 #434 [Verbose] > │             pub fn get_IsUS0_6(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #435 [Verbose] > │ ())                                                                          │

00:00:27 #436 [Verbose] > │              -> bool {                                                       │

00:00:27 #437 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #438 [Verbose] > │             }                                                                │

00:00:27 #439 [Verbose] > │             pub fn get_IsUS0_7(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #440 [Verbose] > │ ())                                                                          │

00:00:27 #441 [Verbose] > │              -> bool {                                                       │

00:00:27 #442 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #443 [Verbose] > │             }                                                                │

00:00:27 #444 [Verbose] > │             pub fn get_IsUS0_8(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #445 [Verbose] > │ ())                                                                          │

00:00:27 #446 [Verbose] > │              -> bool {                                                       │

00:00:27 #447 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #448 [Verbose] > │             }                                                                │

00:00:27 #449 [Verbose] > │             pub fn get_IsUS0_9(this_: &MutCell<Spiral_eval::US0>, unitArg:   │

00:00:27 #450 [Verbose] > │ ())                                                                          │

00:00:27 #451 [Verbose] > │              -> bool {                                                       │

00:00:27 #452 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #453 [Verbose] > │             }                                                                │

00:00:27 #454 [Verbose] > │             pub fn get_IsUS0_10(this_: &MutCell<Spiral_eval::US0>,           │

00:00:27 #455 [Verbose] > │                                 unitArg: ()) -> bool {                       │

00:00:27 #456 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #457 [Verbose] > │             }                                                                │

00:00:27 #458 [Verbose] > │             pub fn get_IsUS0_11(this_: &MutCell<Spiral_eval::US0>,           │

00:00:27 #459 [Verbose] > │                                 unitArg: ()) -> bool {                       │

00:00:27 #460 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #461 [Verbose] > │             }                                                                │

00:00:27 #462 [Verbose] > │         }                                                                    │

00:00:27 #463 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US0 {                       │

00:00:27 #464 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #465 [Verbose] > │ {                                                                            │

00:00:27 #466 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #467 [Verbose] > │             }                                                                │

00:00:27 #468 [Verbose] > │         }                                                                    │

00:00:27 #469 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #470 [Verbose] > │         pub enum US2 { US2_0, US2_1, }                                       │

00:00:27 #471 [Verbose] > │         impl Spiral_eval::US2 {                                              │

00:00:27 #472 [Verbose] > │             pub fn get_IsUS2_0(this_: &MutCell<Spiral_eval::US2>, unitArg:   │

00:00:27 #473 [Verbose] > │ ())                                                                          │

00:00:27 #474 [Verbose] > │              -> bool {                                                       │

00:00:27 #475 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #476 [Verbose] > │             }                                                                │

00:00:27 #477 [Verbose] > │             pub fn get_IsUS2_1(this_: &MutCell<Spiral_eval::US2>, unitArg:   │

00:00:27 #478 [Verbose] > │ ())                                                                          │

00:00:27 #479 [Verbose] > │              -> bool {                                                       │

00:00:27 #480 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #481 [Verbose] > │             }                                                                │

00:00:27 #482 [Verbose] > │         }                                                                    │

00:00:27 #483 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US2 {                       │

00:00:27 #484 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #485 [Verbose] > │ {                                                                            │

00:00:27 #486 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #487 [Verbose] > │             }                                                                │

00:00:27 #488 [Verbose] > │         }                                                                    │

00:00:27 #489 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #490 [Verbose] > │         pub enum US1 { US1_0(Spiral_eval::US2), }                            │

00:00:27 #491 [Verbose] > │         impl Spiral_eval::US1 {                                              │

00:00:27 #492 [Verbose] > │             pub fn get_IsUS1_0(this_: &MutCell<Spiral_eval::US1>, unitArg:   │

00:00:27 #493 [Verbose] > │ ())                                                                          │

00:00:27 #494 [Verbose] > │              -> bool {                                                       │

00:00:27 #495 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #496 [Verbose] > │             }                                                                │

00:00:27 #497 [Verbose] > │         }                                                                    │

00:00:27 #498 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US1 {                       │

00:00:27 #499 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #500 [Verbose] > │ {                                                                            │

00:00:27 #501 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #502 [Verbose] > │             }                                                                │

00:00:27 #503 [Verbose] > │         }                                                                    │

00:00:27 #504 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │

00:00:27 #505 [Verbose] > │         pub enum UH0 {                                                       │

00:00:27 #506 [Verbose] > │             UH0_0,                                                           │

00:00:27 #507 [Verbose] > │             UH0_1(i32, Spiral_eval::US0, i32, Spiral_eval::US1,              │

00:00:27 #508 [Verbose] > │                   LrcPtr<Spiral_eval::UH0>),                                 │

00:00:27 #509 [Verbose] > │         }                                                                    │

00:00:27 #510 [Verbose] > │         impl Spiral_eval::UH0 {                                              │

00:00:27 #511 [Verbose] > │             pub fn get_IsUH0_0(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │

00:00:27 #512 [Verbose] > │              -> bool {                                                       │

00:00:27 #513 [Verbose] > │                 if let Spiral_eval::UH0::UH0_0 = this_.as_ref() {            │

00:00:27 #514 [Verbose] > │                     true                                                     │

00:00:27 #515 [Verbose] > │                 } else { false }                                             │

00:00:27 #516 [Verbose] > │             }                                                                │

00:00:27 #517 [Verbose] > │             pub fn get_IsUH0_1(this_: LrcPtr<Spiral_eval::UH0>, unitArg: ()) │

00:00:27 #518 [Verbose] > │              -> bool {                                                       │

00:00:27 #519 [Verbose] > │                 if let Spiral_eval::UH0::UH0_1(this__1_0, this__1_1,         │

00:00:27 #520 [Verbose] > │                                                this__1_2, this__1_3,         │

00:00:27 #521 [Verbose] > │                                                this__1_4) = this_.as_ref() { │

00:00:27 #522 [Verbose] > │                     true                                                     │

00:00:27 #523 [Verbose] > │                 } else { false }                                             │

00:00:27 #524 [Verbose] > │             }                                                                │

00:00:27 #525 [Verbose] > │         }                                                                    │

00:00:27 #526 [Verbose] > │         impl core::fmt::Display for Spiral_eval::UH0 {                       │

00:00:27 #527 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #528 [Verbose] > │ {                                                                            │

00:00:27 #529 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #530 [Verbose] > │             }                                                                │

00:00:27 #531 [Verbose] > │         }                                                                    │

00:00:27 #532 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #533 [Verbose] > │         pub enum US3 { US3_0, US3_1, }                                       │

00:00:27 #534 [Verbose] > │         impl Spiral_eval::US3 {                                              │

00:00:27 #535 [Verbose] > │             pub fn get_IsUS3_0(this_: &MutCell<Spiral_eval::US3>, unitArg:   │

00:00:27 #536 [Verbose] > │ ())                                                                          │

00:00:27 #537 [Verbose] > │              -> bool {                                                       │

00:00:27 #538 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #539 [Verbose] > │             }                                                                │

00:00:27 #540 [Verbose] > │             pub fn get_IsUS3_1(this_: &MutCell<Spiral_eval::US3>, unitArg:   │

00:00:27 #541 [Verbose] > │ ())                                                                          │

00:00:27 #542 [Verbose] > │              -> bool {                                                       │

00:00:27 #543 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #544 [Verbose] > │             }                                                                │

00:00:27 #545 [Verbose] > │         }                                                                    │

00:00:27 #546 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US3 {                       │

00:00:27 #547 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #548 [Verbose] > │ {                                                                            │

00:00:27 #549 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #550 [Verbose] > │             }                                                                │

00:00:27 #551 [Verbose] > │         }                                                                    │

00:00:27 #552 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #553 [Verbose] > │         pub enum US6 { US6_0(i32), US6_1(i32), US6_2(i32), }                 │

00:00:27 #554 [Verbose] > │         impl Spiral_eval::US6 {                                              │

00:00:27 #555 [Verbose] > │             pub fn get_IsUS6_0(this_: &MutCell<Spiral_eval::US6>, unitArg:   │

00:00:27 #556 [Verbose] > │ ())                                                                          │

00:00:27 #557 [Verbose] > │              -> bool {                                                       │

00:00:27 #558 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #559 [Verbose] > │             }                                                                │

00:00:27 #560 [Verbose] > │             pub fn get_IsUS6_1(this_: &MutCell<Spiral_eval::US6>, unitArg:   │

00:00:27 #561 [Verbose] > │ ())                                                                          │

00:00:27 #562 [Verbose] > │              -> bool {                                                       │

00:00:27 #563 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #564 [Verbose] > │             }                                                                │

00:00:27 #565 [Verbose] > │             pub fn get_IsUS6_2(this_: &MutCell<Spiral_eval::US6>, unitArg:   │

00:00:27 #566 [Verbose] > │ ())                                                                          │

00:00:27 #567 [Verbose] > │              -> bool {                                                       │

00:00:27 #568 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #569 [Verbose] > │             }                                                                │

00:00:27 #570 [Verbose] > │         }                                                                    │

00:00:27 #571 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US6 {                       │

00:00:27 #572 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #573 [Verbose] > │ {                                                                            │

00:00:27 #574 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #575 [Verbose] > │             }                                                                │

00:00:27 #576 [Verbose] > │         }                                                                    │

00:00:27 #577 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #578 [Verbose] > │         pub enum US8 { US8_0, US8_1, US8_2, US8_3, US8_4, US8_5, US8_6, }    │

00:00:27 #579 [Verbose] > │         impl Spiral_eval::US8 {                                              │

00:00:27 #580 [Verbose] > │             pub fn get_IsUS8_0(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #581 [Verbose] > │ ())                                                                          │

00:00:27 #582 [Verbose] > │              -> bool {                                                       │

00:00:27 #583 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #584 [Verbose] > │             }                                                                │

00:00:27 #585 [Verbose] > │             pub fn get_IsUS8_1(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #586 [Verbose] > │ ())                                                                          │

00:00:27 #587 [Verbose] > │              -> bool {                                                       │

00:00:27 #588 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #589 [Verbose] > │             }                                                                │

00:00:27 #590 [Verbose] > │             pub fn get_IsUS8_2(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #591 [Verbose] > │ ())                                                                          │

00:00:27 #592 [Verbose] > │              -> bool {                                                       │

00:00:27 #593 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #594 [Verbose] > │             }                                                                │

00:00:27 #595 [Verbose] > │             pub fn get_IsUS8_3(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #596 [Verbose] > │ ())                                                                          │

00:00:27 #597 [Verbose] > │              -> bool {                                                       │

00:00:27 #598 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #599 [Verbose] > │             }                                                                │

00:00:27 #600 [Verbose] > │             pub fn get_IsUS8_4(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #601 [Verbose] > │ ())                                                                          │

00:00:27 #602 [Verbose] > │              -> bool {                                                       │

00:00:27 #603 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #604 [Verbose] > │             }                                                                │

00:00:27 #605 [Verbose] > │             pub fn get_IsUS8_5(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #606 [Verbose] > │ ())                                                                          │

00:00:27 #607 [Verbose] > │              -> bool {                                                       │

00:00:27 #608 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #609 [Verbose] > │             }                                                                │

00:00:27 #610 [Verbose] > │             pub fn get_IsUS8_6(this_: &MutCell<Spiral_eval::US8>, unitArg:   │

00:00:27 #611 [Verbose] > │ ())                                                                          │

00:00:27 #612 [Verbose] > │              -> bool {                                                       │

00:00:27 #613 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #614 [Verbose] > │             }                                                                │

00:00:27 #615 [Verbose] > │         }                                                                    │

00:00:27 #616 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US8 {                       │

00:00:27 #617 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #618 [Verbose] > │ {                                                                            │

00:00:27 #619 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #620 [Verbose] > │             }                                                                │

00:00:27 #621 [Verbose] > │         }                                                                    │

00:00:27 #622 [Verbose] > │         #[derive(Clone, Copy, Debug, PartialEq, PartialOrd, Hash, Eq,)]      │

00:00:27 #623 [Verbose] > │         pub enum US7 {                                                       │

00:00:27 #624 [Verbose] > │             US7_0(Spiral_eval::US8),                                         │

00:00:27 #625 [Verbose] > │             US7_1(i32),                                                      │

00:00:27 #626 [Verbose] > │             US7_2(i32, Spiral_eval::US0),                                    │

00:00:27 #627 [Verbose] > │         }                                                                    │

00:00:27 #628 [Verbose] > │         impl Spiral_eval::US7 {                                              │

00:00:27 #629 [Verbose] > │             pub fn get_IsUS7_0(this_: &MutCell<Spiral_eval::US7>, unitArg:   │

00:00:27 #630 [Verbose] > │ ())                                                                          │

00:00:27 #631 [Verbose] > │              -> bool {                                                       │

00:00:27 #632 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #633 [Verbose] > │             }                                                                │

00:00:27 #634 [Verbose] > │             pub fn get_IsUS7_1(this_: &MutCell<Spiral_eval::US7>, unitArg:   │

00:00:27 #635 [Verbose] > │ ())                                                                          │

00:00:27 #636 [Verbose] > │              -> bool {                                                       │

00:00:27 #637 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #638 [Verbose] > │             }                                                                │

00:00:27 #639 [Verbose] > │             pub fn get_IsUS7_2(this_: &MutCell<Spiral_eval::US7>, unitArg:   │

00:00:27 #640 [Verbose] > │ ())                                                                          │

00:00:27 #641 [Verbose] > │              -> bool {                                                       │

00:00:27 #642 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #643 [Verbose] > │             }                                                                │

00:00:27 #644 [Verbose] > │         }                                                                    │

00:00:27 #645 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US7 {                       │

00:00:27 #646 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #647 [Verbose] > │ {                                                                            │

00:00:27 #648 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #649 [Verbose] > │             }                                                                │

00:00:27 #650 [Verbose] > │         }                                                                    │

00:00:27 #651 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │

00:00:27 #652 [Verbose] > │         pub enum UH1 {                                                       │

00:00:27 #653 [Verbose] > │             UH1_0,                                                           │

00:00:27 #654 [Verbose] > │             UH1_1(Spiral_eval::US7, LrcPtr<Spiral_eval::UH1>),               │

00:00:27 #655 [Verbose] > │         }                                                                    │

00:00:27 #656 [Verbose] > │         impl Spiral_eval::UH1 {                                              │

00:00:27 #657 [Verbose] > │             pub fn get_IsUH1_0(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │

00:00:27 #658 [Verbose] > │              -> bool {                                                       │

00:00:27 #659 [Verbose] > │                 if let Spiral_eval::UH1::UH1_0 = this_.as_ref() {            │

00:00:27 #660 [Verbose] > │                     true                                                     │

00:00:27 #661 [Verbose] > │                 } else { false }                                             │

00:00:27 #662 [Verbose] > │             }                                                                │

00:00:27 #663 [Verbose] > │             pub fn get_IsUH1_1(this_: LrcPtr<Spiral_eval::UH1>, unitArg: ()) │

00:00:27 #664 [Verbose] > │              -> bool {                                                       │

00:00:27 #665 [Verbose] > │                 if let Spiral_eval::UH1::UH1_1(this__1_0, this__1_1) =       │

00:00:27 #666 [Verbose] > │                        this_.as_ref() {                                      │

00:00:27 #667 [Verbose] > │                     true                                                     │

00:00:27 #668 [Verbose] > │                 } else { false }                                             │

00:00:27 #669 [Verbose] > │             }                                                                │

00:00:27 #670 [Verbose] > │         }                                                                    │

00:00:27 #671 [Verbose] > │         impl core::fmt::Display for Spiral_eval::UH1 {                       │

00:00:27 #672 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #673 [Verbose] > │ {                                                                            │

00:00:27 #674 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #675 [Verbose] > │             }                                                                │

00:00:27 #676 [Verbose] > │         }                                                                    │

00:00:27 #677 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │

00:00:27 #678 [Verbose] > │         pub enum US5 {                                                       │

00:00:27 #679 [Verbose] > │             US5_0(Spiral_eval::US6),                                         │

00:00:27 #680 [Verbose] > │             US5_1(LrcPtr<Spiral_eval::UH1>),                                 │

00:00:27 #681 [Verbose] > │         }                                                                    │

00:00:27 #682 [Verbose] > │         impl Spiral_eval::US5 {                                              │

00:00:27 #683 [Verbose] > │             pub fn get_IsUS5_0(this_: &MutCell<Spiral_eval::US5>, unitArg:   │

00:00:27 #684 [Verbose] > │ ())                                                                          │

00:00:27 #685 [Verbose] > │              -> bool {                                                       │

00:00:27 #686 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #687 [Verbose] > │             }                                                                │

00:00:27 #688 [Verbose] > │             pub fn get_IsUS5_1(this_: &MutCell<Spiral_eval::US5>, unitArg:   │

00:00:27 #689 [Verbose] > │ ())                                                                          │

00:00:27 #690 [Verbose] > │              -> bool {                                                       │

00:00:27 #691 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #692 [Verbose] > │             }                                                                │

00:00:27 #693 [Verbose] > │         }                                                                    │

00:00:27 #694 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US5 {                       │

00:00:27 #695 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #696 [Verbose] > │ {                                                                            │

00:00:27 #697 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #698 [Verbose] > │             }                                                                │

00:00:27 #699 [Verbose] > │         }                                                                    │

00:00:27 #700 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │

00:00:27 #701 [Verbose] > │         pub enum US4 { US4_0(Spiral_eval::US3), US4_1(Spiral_eval::US5), }   │

00:00:27 #702 [Verbose] > │         impl Spiral_eval::US4 {                                              │

00:00:27 #703 [Verbose] > │             pub fn get_IsUS4_0(this_: &MutCell<Spiral_eval::US4>, unitArg:   │

00:00:27 #704 [Verbose] > │ ())                                                                          │

00:00:27 #705 [Verbose] > │              -> bool {                                                       │

00:00:27 #706 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #707 [Verbose] > │             }                                                                │

00:00:27 #708 [Verbose] > │             pub fn get_IsUS4_1(this_: &MutCell<Spiral_eval::US4>, unitArg:   │

00:00:27 #709 [Verbose] > │ ())                                                                          │

00:00:27 #710 [Verbose] > │              -> bool {                                                       │

00:00:27 #711 [Verbose] > │                 if unreachable!() { true } else { false }                    │

00:00:27 #712 [Verbose] > │             }                                                                │

00:00:27 #713 [Verbose] > │         }                                                                    │

00:00:27 #714 [Verbose] > │         impl core::fmt::Display for Spiral_eval::US4 {                       │

00:00:27 #715 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:27 #716 [Verbose] > │ {                                                                            │

00:00:27 #717 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:27 #718 [Verbose] > │             }                                                                │

00:00:27 #719 [Verbose] > │         }                                                                    │

00:00:27 #720 [Verbose] > │         #[derive(Clone, Debug, PartialEq, PartialOrd, Hash, Eq,)]            │

00:00:27 #721 [Verbose] > │         pub enum UH2 {                                                       │

00:00:27 #722 [Verbose] > │             UH2_0,                                                           │

00:00:27 #723 [Verbose] > │             UH2_1(LrcPtr<Spiral_eval::UH0>, string, Spiral_eval::US4,        │

00:00:27 #724 [Verbose] > │                   LrcPtr<Spiral_eval::UH2>),                                 │

00:00:27 #725 [Verbose] > │         }                                                                    │

00:00:27 #726 [Verbose] > │         impl Spiral_eval::UH2 {                                              │

00:00:27 #727 [Verbose] > │             pub fn get_IsUH2_0(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │

00:00:27 #728 [Verbose] > │              -> bool {                                                       │

00:00:28 #729 [Verbose] > │                 if let Spiral_eval::UH2::UH2_0 = this_.as_ref() {            │

00:00:28 #730 [Verbose] > │                     true                                                     │

00:00:28 #731 [Verbose] > │                 } else { false }                                             │

00:00:28 #732 [Verbose] > │             }                                                                │

00:00:28 #733 [Verbose] > │             pub fn get_IsUH2_1(this_: LrcPtr<Spiral_eval::UH2>, unitArg: ()) │

00:00:28 #734 [Verbose] > │              -> bool {                                                       │

00:00:28 #735 [Verbose] > │                 if let Spiral_eval::UH2::UH2_1(this__1_0, this__1_1,         │

00:00:28 #736 [Verbose] > │                                                this__1_2, this__1_3) =       │

00:00:28 #737 [Verbose] > │                        this_.as_ref() {                                      │

00:00:28 #738 [Verbose] > │                     true                                                     │

00:00:28 #739 [Verbose] > │                 } else { false }                                             │

00:00:28 #740 [Verbose] > │             }                                                                │

00:00:28 #741 [Verbose] > │         }                                                                    │

00:00:28 #742 [Verbose] > │         impl core::fmt::Display for Spiral_eval::UH2 {                       │

00:00:28 #743 [Verbose] > │             fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result │

00:00:28 #744 [Verbose] > │ {                                                                            │

00:00:28 #745 [Verbose] > │                 write!(f, "{}", core::any::type_name::<Self>())              │

00:00:28 #746 [Verbose] > │             }                                                                │

00:00:28 #747 [Verbose] > │         }                                                                    │

00:00:28 #748 [Verbose] > │         pub fn method0() {                                                   │

00:00:28 #749 [Verbose] > │             let v17: std::string::String =                                   │

00:00:28 #750 [Verbose] > │                 format!("{:#?}",                                             │

00:00:28 #751 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1(LrcPtr::new(Spiral_eval::UH0::UH0_0),    │

00:00:28 #752 [Verbose] > │                                                                              │

00:00:28 #753 [Verbose] > │ string("01"),                                                                │

00:00:28 #754 [Verbose] > │                                                                              │

00:00:28 #755 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0),                            │

00:00:28 #756 [Verbose] > │                                                                              │

00:00:28 #757 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1(LrcPtr::new(Spiral_eval::UH0::UH0_0),    │

00:00:28 #758 [Verbose] > │                                                                              │

00:00:28 #759 [Verbose] > │ string("02"),                                                                │

00:00:28 #760 [Verbose] > │                                                                              │

00:00:28 #761 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0),                            │

00:00:28 #762 [Verbose] > │                                                                              │

00:00:28 #763 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_1(LrcPtr::new(Spiral_eval::UH0::UH0_0),    │

00:00:28 #764 [Verbose] > │                                                                              │

00:00:28 #765 [Verbose] > │ string("03"),                                                                │

00:00:28 #766 [Verbose] > │                                                                              │

00:00:28 #767 [Verbose] > │ Spiral_eval::US4::US4_0(Spiral_eval::US3::US3_0),                            │

00:00:28 #768 [Verbose] > │                                                                              │

00:00:28 #769 [Verbose] > │ LrcPtr::new(Spiral_eval::UH2::UH2_0))))))));                                 │

00:00:28 #770 [Verbose] > │             printfn!("{0}", v17);                                            │

00:00:28 #771 [Verbose] > │             ()                                                               │

00:00:28 #772 [Verbose] > │         }                                                                    │

00:00:28 #773 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:00:28 #774 [Verbose] > │     }                                                                        │

00:00:28 #775 [Verbose] > │ }                                                                            │

00:00:28 #776 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:00:28 #777 [Verbose] > │                                                                              │

00:00:28 #778 [Verbose] > │                                                                              │

00:00:28 #779 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:28 #780 [Verbose] >

00:00:28 #781 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:28 #782 [Verbose] > // // test

00:00:28 #783 [Verbose] > // // rust=

00:00:28 #784 [Verbose] >

00:00:28 #785 [Verbose] > get_tasks ()

00:00:28 #786 [Verbose] > |> listm'.try_item 0i32

00:00:28 #787 [Verbose] > |> fun (Some task) => task.task.name

00:00:28 #788 [Verbose] > |> _assert_eq (task_name "01")

00:00:28 #789 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1302-5994-9456-95bfd2aef334\main.spi

00:00:33 #790 [Verbose] >

00:00:33 #791 [Verbose] > ╭─[ 5.67s - return value ]─────────────────────────────────────────────────────╮

00:00:33 #792 [Verbose] > │ .rs output:                                                                  │

00:00:33 #793 [Verbose] > │ "01"                                                                         │

00:00:33 #794 [Verbose] > │                                                                              │

00:00:33 #795 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:33 #796 [Verbose] >

00:00:33 #797 [Verbose] > ╭─[ 5.67s - stdout ]───────────────────────────────────────────────────────────╮

00:00:33 #798 [Verbose] > │                                                                              │

00:00:33 #799 [Verbose] > │ .fsx:                                                                        │

00:00:33 #800 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:33 #801 [Verbose] > │     let v0 : string = "01"                                                   │

00:00:33 #802 [Verbose] > │     let v1 : string = $"%A{v0}"                                              │

00:00:33 #803 [Verbose] > │     System.Console.WriteLine v1                                              │

00:00:33 #804 [Verbose] > │     let v2 : string = $"__expect / actual: %A{v0} / expected: %A{v0}"        │

00:00:33 #805 [Verbose] > │     ()                                                                       │

00:00:33 #806 [Verbose] > │ method0()                                                                    │

00:00:33 #807 [Verbose] > │                                                                              │

00:00:33 #808 [Verbose] > │                                                                              │

00:00:33 #809 [Verbose] > │ .rs:                                                                         │

00:00:33 #810 [Verbose] > │ #![allow(dead_code,)]                                                        │

00:00:33 #811 [Verbose] > │ #![allow(non_camel_case_types,)]                                             │

00:00:33 #812 [Verbose] > │ #![allow(non_snake_case,)]                                                   │

00:00:33 #813 [Verbose] > │ #![allow(non_upper_case_globals,)]                                           │

00:00:33 #814 [Verbose] > │ #![allow(unreachable_code,)]                                                 │

00:00:33 #815 [Verbose] > │ #![allow(unused_attributes,)]                                                │

00:00:33 #816 [Verbose] > │ #![allow(unused_imports,)]                                                   │

00:00:33 #817 [Verbose] > │ #![allow(unused_macros,)]                                                    │

00:00:33 #818 [Verbose] > │ #![allow(unused_parens,)]                                                    │

00:00:33 #819 [Verbose] > │ #![allow(unused_variables,)]                                                 │

00:00:33 #820 [Verbose] > │ mod module_ccfa04bf {                                                        │

00:00:33 #821 [Verbose] > │     pub mod Spiral_eval {                                                    │

00:00:33 #822 [Verbose] > │         use super::*;                                                        │

00:00:33 #823 [Verbose] > │         use fable_library_rust::Native_::on_startup;                         │

00:00:33 #824 [Verbose] > │         use fable_library_rust::String_::printfn;                            │

00:00:33 #825 [Verbose] > │         use fable_library_rust::String_::sprintf;                            │

00:00:33 #826 [Verbose] > │         use fable_library_rust::String_::string;                             │

00:00:33 #827 [Verbose] > │         pub fn method0() {                                                   │

00:00:33 #828 [Verbose] > │             let v1: string = sprintf!("{:?}", string("01"));                 │

00:00:33 #829 [Verbose] > │             printfn!("{0}", v1);                                             │

00:00:33 #830 [Verbose] > │             {                                                                │

00:00:33 #831 [Verbose] > │                 let v2: string =                                             │

00:00:33 #832 [Verbose] > │                     sprintf!("__expect / actual: {:?} / expected: {:?}",     │

00:00:33 #833 [Verbose] > │                              string("01"), string("01"));                    │

00:00:33 #834 [Verbose] > │                 ()                                                           │

00:00:33 #835 [Verbose] > │             }                                                                │

00:00:33 #836 [Verbose] > │         }                                                                    │

00:00:33 #837 [Verbose] > │         on_startup!(Spiral_eval::method0());                                 │

00:00:33 #838 [Verbose] > │     }                                                                        │

00:00:33 #839 [Verbose] > │ }                                                                            │

00:00:33 #840 [Verbose] > │ pub use module_ccfa04bf::*;                                                  │

00:00:33 #841 [Verbose] > │                                                                              │

00:00:33 #842 [Verbose] > │                                                                              │

00:00:33 #843 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:33 #844 [Verbose] >

00:00:33 #845 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:33 #846 [Verbose] > // // test

00:00:33 #847 [Verbose] >

00:00:33 #848 [Verbose] > ()

00:00:33 #849 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1303-0563-6379-621d9ff856df\main.spi

00:00:34 #850 [Verbose] >

00:00:34 #851 [Verbose] > ╭─[ 713.86ms - stdout ]────────────────────────────────────────────────────────╮

00:00:34 #852 [Verbose] > │ let rec method0 () : unit =                                                  │

00:00:34 #853 [Verbose] > │     ()                                                                       │

00:00:34 #854 [Verbose] > │ method0()                                                                    │

00:00:34 #855 [Verbose] > │                                                                              │

00:00:34 #856 [Verbose] > │                                                                              │

00:00:34 #857 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:37 #858 [Verbose] > [NbConvertApp] Converting notebook Tasks.dib.ipynb to html

00:00:37 #859 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:00:37 #860 [Verbose] >   validate(nb)

00:00:37 #861 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:00:37 #862 [Verbose] >   return _pygments_highlight(

00:00:38 #863 [Verbose] > [NbConvertApp] Writing 313974 bytes to Tasks.dib.html

00:00:39 #864 [Debug] executeAsync / exitCode: 0 / output.Length: 56712

00:00:39 #865 [Debug] main / executeCommand / exitCode: 0

00:00:41 #866 [Debug] runWithTimeoutChildAsync / timeout: 2000

00:00:00 #1 [Debug] writeDibCode / output: Spi / path: Tasks.dib

00:00:00 #2 [Debug] parseDibCode / output: Spi / file: Tasks.dib

In [ ]:
{ . "$ScriptDir/../apps/chat/build.ps1" } | Invoke-Block
    Finished `release` profile [optimized] target(s) in 2.10s

   Compiling libc v0.2.153

   Compiling serde v1.0.197

   Compiling syn v1.0.109

   Compiling typenum v1.17.0

   Compiling lock_api v0.4.11

   Compiling thiserror v1.0.58

   Compiling proc-macro-error-attr v1.0.4

   Compiling proc-macro-error v1.0.4

   Compiling crossbeam-utils v0.8.19

   Compiling jobserver v0.1.28

   Compiling getrandom v0.2.12

   Compiling parking_lot_core v0.9.9

   Compiling cc v1.0.90

   Compiling signal-hook-registry v1.4.1

   Compiling socket2 v0.5.6

   Compiling parking_lot v0.12.1

   Compiling num_cpus v1.16.0

   Compiling mio v0.8.11

   Compiling rand_core v0.6.4

   Compiling tokio v1.37.0

   Compiling rand_chacha v0.3.1

   Compiling serde_json v1.0.115

   Compiling rustversion v1.0.14

   Compiling zstd-sys v2.0.10+zstd.1.5.6

   Compiling ring v0.17.8

   Compiling rand v0.8.5

   Compiling bzip2-sys v0.1.11+1.0.8

   Compiling prost-derive v0.9.0

   Compiling async-trait v0.1.79

   Compiling crossbeam-channel v0.5.12

   Compiling tokio-util v0.7.10

   Compiling syn_derive v0.1.8

   Compiling h2 v0.3.26

   Compiling hex v0.4.3

   Compiling hyper v0.14.28

   Compiling derive_more v0.99.17

   Compiling openssl-sys v0.9.102

   Compiling generic-array v0.14.7

   Compiling num-rational v0.3.2

   Compiling crypto-common v0.1.6

   Compiling block-buffer v0.10.4

   Compiling digest v0.10.7

   Compiling strum_macros v0.24.3

   Compiling tokio-stream v0.1.15

   Compiling sha2 v0.10.8

   Compiling getrandom v0.1.16

   Compiling secp256k1-sys v0.8.1

   Compiling rand_core v0.5.1

   Compiling serde_with v3.7.0

   Compiling borsh-derive v1.4.0

   Compiling fs2 v0.4.3

   Compiling prost v0.9.0

   Compiling curve25519-dalek v4.1.2

   Compiling prost-types v0.9.0

   Compiling prost-build v0.9.0

   Compiling rand_chacha v0.2.2

   Compiling uint v0.9.5

   Compiling digest v0.9.0

   Compiling cipher v0.2.5

   Compiling tonic-build v0.6.2

   Compiling crypto-mac v0.8.0

   Compiling tokio-io-timeout v1.2.0

   Compiling opentelemetry v0.17.0

   Compiling tower v0.4.13

   Compiling strum v0.24.1

   Compiling blake2 v0.9.2

   Compiling zstd-safe v5.0.2+zstd.1.5.2

   Compiling near-config-utils v0.20.1

   Compiling hyper-timeout v0.4.1

   Compiling opentelemetry-otlp v0.10.0

   Compiling c2-chacha v0.3.3

   Compiling primitive-types v0.10.1

   Compiling rand v0.7.3

   Compiling secp256k1 v0.27.0

   Compiling ed25519-dalek v2.1.1

   Compiling tokio-util v0.6.10

   Compiling semver v1.0.22

   Compiling serde_yaml v0.9.34+deprecated

   Compiling tonic v0.6.2

   Compiling openssl v0.10.64

   Compiling rustls-webpki v0.102.2

   Compiling rustls v0.22.3

   Compiling actix-rt v2.9.0

   Compiling chrono v0.4.37

   Compiling actix v0.13.3

   Compiling native-tls v0.2.11

   Compiling zeropool-bn v0.5.11

   Compiling sha3 v0.10.8

   Compiling tracing-opentelemetry v0.17.4

   Compiling prometheus v0.13.3

   Compiling zstd v0.11.2+zstd.1.5.2

   Compiling bzip2 v0.4.4

   Compiling url v2.5.0

   Compiling tracing-appender v0.2.3

   Compiling opentelemetry-semantic-conventions v0.9.0

   Compiling borsh v1.4.0

   Compiling ripemd v0.1.3

   Compiling near-account-id v1.0.0

   Compiling inout v0.1.3

   Compiling serde_derive_internals v0.26.0

   Compiling near-primitives-core v0.20.1

   Compiling near-crypto v0.20.1

   Compiling dirs-sys-next v0.1.2

   Compiling filetime v0.2.23

   Compiling ureq v2.9.6

   Compiling tar v0.4.40

   Compiling zip v0.6.6

   Compiling near-fmt v0.20.1

   Compiling near-parameters v0.20.1

   Compiling schemars v0.8.16

   Compiling radium v0.7.0

   Compiling camino v1.1.6

   Compiling password-hash v0.4.2

   Compiling schemars_derive v0.8.16

   Compiling dirs-next v2.0.0

   Compiling near-rpc-error-macro v0.20.1

   Compiling cipher v0.4.4

   Compiling ahash v0.7.8

   Compiling hmac v0.12.1

   Compiling smart-default v0.6.0

   Compiling borsh-derive-internal v0.9.3

   Compiling near-vm-runner v0.20.1

   Compiling borsh-schema-derive-internal v0.9.3

   Compiling bytesize v1.3.0

   Compiling binary-install v0.2.0

   Compiling string_cache v0.8.7

   Compiling borsh-derive v0.9.3

   Compiling hashbrown v0.11.2

   Compiling pbkdf2 v0.11.0

   Compiling aes v0.8.4

   Compiling tokio-native-tls v0.3.1

   Compiling sha1 v0.10.6

   Compiling cargo-platform v0.1.8

   Compiling memmap2 v0.5.10

   Compiling atty v0.2.14

   Compiling elementtree v0.7.0

   Compiling bitvec v1.0.1

   Compiling symbolic-common v8.8.0

   Compiling near-sandbox-utils v0.7.0

   Compiling hyper-tls v0.5.0

   Compiling serde_urlencoded v0.7.1

   Compiling zip v0.5.13

   Compiling clap_derive v3.2.25

   Compiling symbolic-debuginfo v8.8.0

   Compiling reqwest v0.11.27

   Compiling env_logger v0.9.3

   Compiling near-workspaces v0.10.0

   Compiling cargo_metadata v0.14.2

   Compiling rustc_version v0.4.0

   Compiling treediff v4.0.3

   Compiling json-patch v1.2.0

   Compiling cargo_metadata v0.18.1

   Compiling tokio-retry v0.3.0

   Compiling near-token v0.2.0

   Compiling near-gas v0.2.5

   Compiling borsh v0.9.3

   Compiling near-abi v0.3.0

   Compiling near-o11y v0.20.1

   Compiling clap v3.2.25

   Compiling near-primitives v0.20.1

   Compiling cargo-near v0.3.1

   Compiling near-chain-configs v0.20.1

   Compiling near-jsonrpc-primitives v0.20.1

   Compiling near-jsonrpc-client v0.8.0

   Compiling chat_contract_tests v0.0.1 (/mnt/c/home/git/polyglot/apps/chat/contract/tests)

    Finished `release` profile [optimized] target(s) in 14m 20s

     Running `/mnt/c/home/git/polyglot/target/release/chat_contract_tests`

Updated the logging layer according to `log_config.json`





new: ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 5283524958066,

    },

    transaction: ExecutionOutcome {

        transaction_hash: AsQ1i3PnLDQBm7hXMv54dFQWUyHX8Wp1mTDx67iyHGY6,

        block_hash: D1GYTyQZrjYCDpaK4Fr2hbjoMaq8s9YMV5RmWfjfJuT8,

        logs: [],

        receipt_ids: [

            56cvyNhVaxm7KabBhiW7hQ35WD9PkGAqyquBsLxzyLL5,

        ],

        gas_burnt: NearGas {

            inner: 2427927707802,

        },

        tokens_burnt: NearToken {

            inner: 242792770780200000000,

        },

        executor_id: AccountId(

            "dev-20240404171800-97307881902005",

        ),

        status: SuccessReceiptId(56cvyNhVaxm7KabBhiW7hQ35WD9PkGAqyquBsLxzyLL5),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: 56cvyNhVaxm7KabBhiW7hQ35WD9PkGAqyquBsLxzyLL5,

            block_hash: D1GYTyQZrjYCDpaK4Fr2hbjoMaq8s9YMV5RmWfjfJuT8,

            logs: [],

            receipt_ids: [

                AwXwFHt7E9w5VTr5Nn6vXS2vLyVKbtBVa3yf7jUcGvPx,

            ],

            gas_burnt: NearGas {

                inner: 2632414687764,

            },

            tokens_burnt: NearToken {

                inner: 263241468776400000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: AwXwFHt7E9w5VTr5Nn6vXS2vLyVKbtBVa3yf7jUcGvPx,

            block_hash: 5nMPjevLSU8bWEbE9Yvotd6kTnY3GSpsuGW6CWLhayjo,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.003529394671988088

outcome (success: true):

  outcome_gas_burnt_usd: 0.001621855708811736

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.0017584530114263522

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





claim_alias(contract, ''): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 5288528837296,

    },

    transaction: ExecutionOutcome {

        transaction_hash: CeHHJKyZSwXNAr9zpDjYN2AMbAkL6uzzJXoQVXNnquYB,

        block_hash: 7nThsCeKskoDDGKE1gSXXaxruuuu3nb7E1KnMVRH5rt,

        logs: [],

        receipt_ids: [

            BhjeB6Y3RxrJtm5zzLr89Gwu5Hp7pMvMhC4gnrrBWGvC,

        ],

        gas_burnt: NearGas {

            inner: 2427972426482,

        },

        tokens_burnt: NearToken {

            inner: 242797242648200000000,

        },

        executor_id: AccountId(

            "dev-20240404171800-97307881902005",

        ),

        status: SuccessReceiptId(BhjeB6Y3RxrJtm5zzLr89Gwu5Hp7pMvMhC4gnrrBWGvC),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: BhjeB6Y3RxrJtm5zzLr89Gwu5Hp7pMvMhC4gnrrBWGvC,

            block_hash: 7nThsCeKskoDDGKE1gSXXaxruuuu3nb7E1KnMVRH5rt,

            logs: [

                "claim_alias / alias: \"\" / account_id: AccountId(\n    \"dev-20240404171800-97307881902005\",\n) / timestamp: 1712251082901387619",

            ],

            receipt_ids: [

                CG25JjwykLQPMqYnA4H2Y9JzFK67ZLiidwMMp7SDaQ8b,

            ],

            gas_burnt: NearGas {

                inner: 2637373848314,

            },

            tokens_burnt: NearToken {

                inner: 263737384831400000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })),

        },

        ExecutionOutcome {

            transaction_hash: CG25JjwykLQPMqYnA4H2Y9JzFK67ZLiidwMMp7SDaQ8b,

            block_hash: ErAAhbhM1r2UXUjtT7AfAYp6c4fktgrcso3hRegkhuD6,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

    ],

    status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: Invalid alias")) })),

}

total_gas_burnt_usd: 0.0035327372633137282

outcome (success: true):

  outcome_gas_burnt_usd: 0.001621885580889976

  outcome_tokens_burnt_usd: 0.0

outcome (success: false):

  outcome_gas_burnt_usd: 0.0017617657306737517

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





dev_create_account(account1): Account {

    id: AccountId(

        "dev-20240404171803-36489746474463",

    ),

}





generate_cid_borsh(account1): ViewResultDetails {

    result: [

        59,

        0,

        0,

        0,

        98,

        97,

        102,

        107,

        114,

        101,

        105,

        104,

        100,

        119,

        100,

        99,

        101,

        102,

        103,

        104,

        52,

        100,

        113,

        107,

        106,

        118,

        54,

        55,

        117,

        122,

        99,

        109,

        119,

        55,

        111,

        106,

        101,

        101,

        54,

        120,

        101,

        100,

        122,

        100,

        101,

        116,

        111,

        106,

        117,

        122,

        106,

        101,

        118,

        116,

        101,

        110,

        120,

        113,

        117,

        118,

        121,

        107,

        117,

    ],

    logs: [],

}





claim_alias(account1, alias1): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 5710392058645,

    },

    transaction: ExecutionOutcome {

        transaction_hash: 2yAdxArEpJTRZCM5ZETTd3V5Y3ukqXkdQbM8ervQrhWk,

        block_hash: 5sBerGsXxEj2maqJE2f8tU6MBZEfEGsCxEtPN26rom7w,

        logs: [],

        receipt_ids: [

            J8oDxaZmLmmxtjaYwWQQdYE4tkdCCP5zJ3fJ6XebZZwz,

        ],

        gas_burnt: NearGas {

            inner: 2427985842086,

        },

        tokens_burnt: NearToken {

            inner: 242798584208600000000,

        },

        executor_id: AccountId(

            "dev-20240404171803-36489746474463",

        ),

        status: SuccessReceiptId(J8oDxaZmLmmxtjaYwWQQdYE4tkdCCP5zJ3fJ6XebZZwz),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: J8oDxaZmLmmxtjaYwWQQdYE4tkdCCP5zJ3fJ6XebZZwz,

            block_hash: AywgEJnVePSsMYwpVNKDPLSxeEcdDMFXqYqrH3JUt3rf,

            logs: [

                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251085135358395",

            ],

            receipt_ids: [

                CeqLdcKEUTeMiNU4nnNatA1rTHV2F7FozVJsLNWtDoPx,

            ],

            gas_burnt: NearGas {

                inner: 3059223654059,

            },

            tokens_burnt: NearToken {

                inner: 305922365405900000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: CeqLdcKEUTeMiNU4nnNatA1rTHV2F7FozVJsLNWtDoPx,

            block_hash: E13T6QLxaazRoZMBpBGAYAm1hW1V3gK1RSJwdzkUDRnz,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171803-36489746474463",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.00381454189517486

outcome (success: true):

  outcome_gas_burnt_usd: 0.0016218945425134478

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.002043561400911412

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





claim_alias(account1, alias1): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 5534798929042,

    },

    transaction: ExecutionOutcome {

        transaction_hash: DuwGsPXyzqdEPgC2YtRyC9YKJs7yZ519u5EYXXMYH2R9,

        block_hash: Fs6Sv7VeY8xXHE4n3ofMbZJC5TcYpZUqs7npqMZpoube,

        logs: [],

        receipt_ids: [

            ChNns7NBs2KQ2aVmo5tnJJdqfBUB3pLiHZF3CckvS7Kx,

        ],

        gas_burnt: NearGas {

            inner: 2427985842086,

        },

        tokens_burnt: NearToken {

            inner: 242798584208600000000,

        },

        executor_id: AccountId(

            "dev-20240404171803-36489746474463",

        ),

        status: SuccessReceiptId(ChNns7NBs2KQ2aVmo5tnJJdqfBUB3pLiHZF3CckvS7Kx),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: ChNns7NBs2KQ2aVmo5tnJJdqfBUB3pLiHZF3CckvS7Kx,

            block_hash: 4g9p6TTZcANUiA54ys6nZcT15QNUwD7Da1zgz4qu58WS,

            logs: [

                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251086150560494",

                "Alias already claimed",

            ],

            receipt_ids: [

                6ZZ5mGLQHSmT1HCpyzHMTBgbfAEpUEzkNGqkgzJbnwwh,

            ],

            gas_burnt: NearGas {

                inner: 2883630524456,

            },

            tokens_burnt: NearToken {

                inner: 288363052445600000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: 6ZZ5mGLQHSmT1HCpyzHMTBgbfAEpUEzkNGqkgzJbnwwh,

            block_hash: 5fZnHpXhMZtEakVojxozYh7Ex6Sa3RpbUhozFNqpP2Ka,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171803-36489746474463",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.0036972456846000555

outcome (success: true):

  outcome_gas_burnt_usd: 0.0016218945425134478

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.0019262651903366077

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





get_account_info(account1): Some(

    (

        "alias1",

        (

            1712251085135358395,

            0,

        ),

    ),

)





get_alias_map(account1, alias1): Some(

    {

        AccountId(

            "dev-20240404171803-36489746474463",

        ): (

            1712251085135358395,

            0,

        ),

    },

)





dev_create_account(account2): Account {

    id: AccountId(

        "dev-20240404171806-29854470360507",

    ),

}





claim_alias(alias2): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 5797741838275,

    },

    transaction: ExecutionOutcome {

        transaction_hash: P2v4bN2cWQtaSWcyJ43Q2QfRXuDV3TfmdNj9vqY8qeR,

        block_hash: J1tAzpF8aMEuNJf91mf6gK4k9b4Yz2rcqhE4BDnT3yUQ,

        logs: [],

        receipt_ids: [

            32ybiVdv4BH9KMMCQEVTXGchNwDx2LH9LABXnEJtZmN3,

        ],

        gas_burnt: NearGas {

            inner: 2427985842086,

        },

        tokens_burnt: NearToken {

            inner: 242798584208600000000,

        },

        executor_id: AccountId(

            "dev-20240404171806-29854470360507",

        ),

        status: SuccessReceiptId(32ybiVdv4BH9KMMCQEVTXGchNwDx2LH9LABXnEJtZmN3),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: 32ybiVdv4BH9KMMCQEVTXGchNwDx2LH9LABXnEJtZmN3,

            block_hash: zxProLjm5ovAq3Hfum5gAA2eEK77sWgpcBPWAmVsH8P,

            logs: [

                "claim_alias / alias: \"alias2\" / account_id: AccountId(\n    \"dev-20240404171806-29854470360507\",\n) / timestamp: 1712251088183296192",

            ],

            receipt_ids: [

                4HGhTjBkxGWGDRZBS1GFsQ1c9us2ARYxYeQNtQEAEjWG,

            ],

            gas_burnt: NearGas {

                inner: 3146573433689,

            },

            tokens_burnt: NearToken {

                inner: 314657343368900000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: 4HGhTjBkxGWGDRZBS1GFsQ1c9us2ARYxYeQNtQEAEjWG,

            block_hash: 7NfJPebVx6ryi3iLRSL9PxivXkweHmM9bVB3dRsQXkSX,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171806-29854470360507",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.0038728915479677

outcome (success: true):

  outcome_gas_burnt_usd: 0.0016218945425134478

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.002101911053704252

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





get_account_info(account2): Some(

    (

        "alias2",

        (

            1712251088183296192,

            0,

        ),

    ),

)





get_alias_map_borsh(alias2): Some(

    {

        AccountId(

            "dev-20240404171806-29854470360507",

        ): (

            1712251088183296192,

            0,

        ),

    },

)





claim_alias(account2, alias1): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 6102073589470,

    },

    transaction: ExecutionOutcome {

        transaction_hash: 2TDzSz1AXbazGz6vnu9nr7DRkGSdaT9zowyQ2tHXFAgx,

        block_hash: D4YuA3wh7i2ZApbPbYeThTGRDkXY62AA6ajnVxHXf5oZ,

        logs: [],

        receipt_ids: [

            6n9WizbbTNRD8FzJ1SwU67pQhrR24TvDY6vJ5HEA6hiJ,

        ],

        gas_burnt: NearGas {

            inner: 2427985842086,

        },

        tokens_burnt: NearToken {

            inner: 242798584208600000000,

        },

        executor_id: AccountId(

            "dev-20240404171806-29854470360507",

        ),

        status: SuccessReceiptId(6n9WizbbTNRD8FzJ1SwU67pQhrR24TvDY6vJ5HEA6hiJ),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: 6n9WizbbTNRD8FzJ1SwU67pQhrR24TvDY6vJ5HEA6hiJ,

            block_hash: AskGXrMPnid3HT9wEK2y3U6zTugMdGCAXGjrutA4rJq1,

            logs: [

                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240404171806-29854470360507\",\n) / timestamp: 1712251089197544790",

            ],

            receipt_ids: [

                Ga7LozeqYeYcnzVAtJ3FW7jT5RDXP212vbAJFKm4iJtf,

            ],

            gas_burnt: NearGas {

                inner: 3450905184884,

            },

            tokens_burnt: NearToken {

                inner: 345090518488400000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: Ga7LozeqYeYcnzVAtJ3FW7jT5RDXP212vbAJFKm4iJtf,

            block_hash: BmC5dN5Tfgd3GQDPPKbATQ7P3D65hAaPyVoNsSBUAfPj,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171806-29854470360507",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.00407618515776596

outcome (success: true):

  outcome_gas_burnt_usd: 0.0016218945425134478

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.002305204663502512

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





get_account_info(account2): Some(

    (

        "alias1",

        (

            1712251089197544790,

            1,

        ),

    ),

)





get_alias_map(account2, alias1): Some(

    {

        AccountId(

            "dev-20240404171803-36489746474463",

        ): (

            1712251085135358395,

            0,

        ),

        AccountId(

            "dev-20240404171806-29854470360507",

        ): (

            1712251089197544790,

            1,

        ),

    },

)





get_alias_map(account2, alias2): Some(

    {},

)





claim_alias(account1, alias2): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 6096724852714,

    },

    transaction: ExecutionOutcome {

        transaction_hash: 2odr5bBq7TMEbuJLyH3a4EWGQ7rTMHoE1Do7syXCnr23,

        block_hash: XmV8YiaWh9F24d84tqwCZ4MwEjkpHMHPwak15dJBrLy,

        logs: [],

        receipt_ids: [

            BkML8KaJehynUo7ysWaEVrVhZ6NL81ZgCkn2ZXSkWfTa,

        ],

        gas_burnt: NearGas {

            inner: 2427985842086,

        },

        tokens_burnt: NearToken {

            inner: 242798584208600000000,

        },

        executor_id: AccountId(

            "dev-20240404171803-36489746474463",

        ),

        status: SuccessReceiptId(BkML8KaJehynUo7ysWaEVrVhZ6NL81ZgCkn2ZXSkWfTa),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: BkML8KaJehynUo7ysWaEVrVhZ6NL81ZgCkn2ZXSkWfTa,

            block_hash: 6FeAZbqpWxajxn6zgDzYpsD6rF7mB6tTbVs2fi4QYyF6,

            logs: [

                "claim_alias / alias: \"alias2\" / account_id: AccountId(\n    \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251090210571689",

            ],

            receipt_ids: [

                429En3GmcE7domoe5NrquxSYmDkajSNaiqux58yfU3hK,

            ],

            gas_burnt: NearGas {

                inner: 3445556448128,

            },

            tokens_burnt: NearToken {

                inner: 344555644812800000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: 429En3GmcE7domoe5NrquxSYmDkajSNaiqux58yfU3hK,

            block_hash: 81efSgNknwHN7i8RTF5LH67uXXhhbaWUd2YfaCDpTtMQ,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171803-36489746474463",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.004072612201612952

outcome (success: true):

  outcome_gas_burnt_usd: 0.0016218945425134478

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.0023016317073495042

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





get_account_info(account1): Some(

    (

        "alias2",

        (

            1712251090210571689,

            0,

        ),

    ),

)





get_alias_map(account1, alias2): Some(

    {

        AccountId(

            "dev-20240404171803-36489746474463",

        ): (

            1712251090210571689,

            0,

        ),

    },

)





get_alias_map(account1, alias1): Some(

    {

        AccountId(

            "dev-20240404171806-29854470360507",

        ): (

            1712251089197544790,

            1,

        ),

    },

)





claim_alias(account1, alias1): ExecutionFinalResult {

    total_gas_burnt: NearGas {

        inner: 6102073589470,

    },

    transaction: ExecutionOutcome {

        transaction_hash: 6zV5hiPgMmNihMLrRdYKn2aLGkwqpCr7GTu7JMzknBj7,

        block_hash: GRHbFhUxXU28ffatjotwBJZGczsvY5oEm6H2jsu7ZPDx,

        logs: [],

        receipt_ids: [

            HLokvVMgP57v6qRxw5YiV4ReusmkDVgHYzgvDyUqQxDp,

        ],

        gas_burnt: NearGas {

            inner: 2427985842086,

        },

        tokens_burnt: NearToken {

            inner: 242798584208600000000,

        },

        executor_id: AccountId(

            "dev-20240404171803-36489746474463",

        ),

        status: SuccessReceiptId(HLokvVMgP57v6qRxw5YiV4ReusmkDVgHYzgvDyUqQxDp),

    },

    receipts: [

        ExecutionOutcome {

            transaction_hash: HLokvVMgP57v6qRxw5YiV4ReusmkDVgHYzgvDyUqQxDp,

            block_hash: 8Y5vDMByMpwSp1o4pxKC6SiHFnbM44L3rTVEBvZFcB5C,

            logs: [

                "claim_alias / alias: \"alias1\" / account_id: AccountId(\n    \"dev-20240404171803-36489746474463\",\n) / timestamp: 1712251091224065687",

            ],

            receipt_ids: [

                38z5A9hWFKNLtRbLMy1NZMDSBVqzLJUM8LhH16NdvJyM,

            ],

            gas_burnt: NearGas {

                inner: 3450905184884,

            },

            tokens_burnt: NearToken {

                inner: 345090518488400000000,

            },

            executor_id: AccountId(

                "dev-20240404171800-97307881902005",

            ),

            status: SuccessValue(''),

        },

        ExecutionOutcome {

            transaction_hash: 38z5A9hWFKNLtRbLMy1NZMDSBVqzLJUM8LhH16NdvJyM,

            block_hash: Hm9ACiLjvPhZ7xS7RvSxgAMkaKPKMiK7Pf9E958Y3ZC5,

            logs: [],

            receipt_ids: [],

            gas_burnt: NearGas {

                inner: 223182562500,

            },

            tokens_burnt: NearToken {

                inner: 0,

            },

            executor_id: AccountId(

                "dev-20240404171803-36489746474463",

            ),

            status: SuccessValue(''),

        },

    ],

    status: SuccessValue(''),

}

total_gas_burnt_usd: 0.00407618515776596

outcome (success: true):

  outcome_gas_burnt_usd: 0.0016218945425134478

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.002305204663502512

  outcome_tokens_burnt_usd: 0.0

outcome (success: true):

  outcome_gas_burnt_usd: 0.00014908595175

  outcome_tokens_burnt_usd: 0.0





get_account_info(account1): Some(

    (

        "alias1",

        (

            1712251091224065687,

            1,

        ),

    ),

)





get_alias_map(account1, alias1): Some(

    {

        AccountId(

            "dev-20240404171803-36489746474463",

        ): (

            1712251091224065687,

            1,

        ),

        AccountId(

            "dev-20240404171806-29854470360507",

        ): (

            1712251089197544790,

            0,

        ),

    },

)





get_alias_map(account1, alias2): Some(

    {},

)

In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/extension/build.ps1" } | Invoke-Block
bun install v1.1.0 (5903a614)



Checked 11 installs across 13 packages (no changes) [109.00ms]

[INFO]: 🎯  Checking for the Wasm target...

[INFO]: 🌀  Compiling to Wasm...

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.73s

[INFO]: ⬇️  Installing wasm-bindgen...

[INFO]: origin crate has no LICENSE

[INFO]: ✨   Done in 5.36s

[INFO]: 📦   Your wasm pkg is ready to publish at C:\home\git\polyglot\apps\spiral\temp\extension\pkg.

▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta]



    pkg/spiral_temp_extension.js:1494:57:

      1494 │ ...put = new URL('spiral_temp_extension_bg.wasm', import.meta.url);

           ╵                                                   ~~~~~~~~~~~



  You need to set the output format to "esm" for "import.meta" to work correctly.



1 warning



  dist\spiral_temp_extension_bg-4DEZJNWN.wasm   4.5mb ⚠️

  dist\devtools.js                             29.0kb

  dist\content_script.js                       27.1kb

  dist\service_worker.js                        2.2kb



⚡ Done in 106ms

$ playwright test

[WebServer] (node:36424) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.

(Use `node --trace-deprecation ...` to show where the warning was created)





Running 3 tests using 3 workers



[1/3] [Desktop Chrome] › extension.spec.ts:3:5 › popup localhost

[2/3] [Desktop Chrome] › extension.spec.ts:8:5 › popup extension

[3/3] [Desktop Chrome] › extension.spec.ts:13:5 › libgen

  3 passed (20.0s)



To open last HTML report run:



  npx playwright show-report



In [ ]:
{ . "$ScriptDir/../apps/spiral/temp/test/build.ps1" } | Invoke-Block

── pwsh ────────────────────────────────────────────────────────────────────────

. ../../../../scripts/nbs_header.ps1

. ../../../../scripts/core.ps1



── pwsh ────────────────────────────────────────────────────────────────────────

{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix) 

--execute-command "pwsh -c `"../../../../scripts/invoke-dib.ps1 test.dib`"" } | 

Invoke-Block -Retries 5



╭─[ 21.78s - stdout ]──────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60                   │

│ 00:00:00 #2 [Debug] executeAsync / options: { Command =                      │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:main@438-47> }                                          │

│ 00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral\temp\test      │

│ 00:00:00 #4 [Verbose] > dll_path:                                            │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to:          │

│ http://localhost:13805                                                       │

│ 00:00:00 #6 [Debug] runWithTimeoutChildAsync / timeout: 500                  │

│ 00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0             │

│ 00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} /           │

│ result.Length:                                                               │

│ 00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port:      │

│ 13805 / retry: 0                                                             │

│ 00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c            │

│ "../../../../scripts/invoke-dib.ps1 test.dib""                               │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = None }                                                            │

│ 00:00:03 #12 [Verbose] >                                                     │

│ 00:00:03 #13 [Verbose] > ── markdown                                         │

│ ────────────────────────────────────────────────────────────────────         │

│ 00:00:03 #14 [Verbose] >                                                     │

│ ╭─────────────────────────────────────────────────────────────────────────── │

│ ───╮                                                                         │

│ 00:00:03 #15 [Verbose] > │ # test (Polyglot)                                 │

│ │                                                                            │

│ 00:00:03 #16 [Verbose] >                                                     │

│ ╰─────────────────────────────────────────────────────────────────────────── │

│ ───╯                                                                         │

│ 00:00:03 #17 [Verbose] >                                                     │

│ 00:00:03 #18 [Verbose] > ── spiral                                           │

│ ──────────────────────────────────────────────────────────────────────       │

│ 00:00:03 #19 [Verbose] > // // test                                          │

│ 00:00:03 #20 [Verbose] >                                                     │

│ 00:00:03 #21 [Verbose] > open testing                                        │

│ 00:00:07 #22 [Verbose] > Building                                            │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1318-5642-4238-44ad2 │

│ 0b13f9d\main.spi                                                             │

│ 00:00:10 #23 [Verbose] >                                                     │

│ 00:00:10 #24 [Verbose] > ╭─[ 6.33s - stdout                                  │

│ ]───────────────────────────────────────────────────────────╮                │

│ 00:00:10 #25 [Verbose] > │ ()                                                │

│ │                                                                            │

│ 00:00:10 #26 [Verbose] > │                                                   │

│                                                                              │

│ │                                                                            │

│ 00:00:10 #27 [Verbose] > │                                                   │

│                                                                              │

│ │                                                                            │

│ 00:00:10 #28 [Verbose] >                                                     │

│ ╰─────────────────────────────────────────────────────────────────────────── │

│ ───╯                                                                         │

│ 00:00:10 #29 [Verbose] >                                                     │

│ 00:00:10 #30 [Verbose] > ── spiral                                           │

│ ──────────────────────────────────────────────────────────────────────       │

│ 00:00:10 #31 [Verbose] > nominal i = ()                                      │

│ 00:00:10 #32 [Verbose] > nominal e = ()                                      │

│ 00:00:10 #33 [Verbose] > nominal s = ()                                      │

│ 00:00:10 #34 [Verbose] > nominal n = ()                                      │

│ 00:00:10 #35 [Verbose] > nominal t = ()                                      │

│ 00:00:10 #36 [Verbose] > nominal f = ()                                      │

│ 00:00:10 #37 [Verbose] > nominal j = ()                                      │

│ 00:00:10 #38 [Verbose] > nominal p = ()                                      │

│ 00:00:10 #39 [Verbose] >                                                     │

│ 00:00:10 #40 [Verbose] > union sensing =                                     │

│ 00:00:10 #41 [Verbose] >     | Si : s * i                                    │

│ 00:00:10 #42 [Verbose] >     | Se : s * e                                    │

│ 00:00:10 #43 [Verbose] >                                                     │

│ 00:00:10 #44 [Verbose] > union intuition =                                   │

│ 00:00:10 #45 [Verbose] >     | Ni : n * i                                    │

│ 00:00:10 #46 [Verbose] >     | Ne : n * e                                    │

│ 00:00:10 #47 [Verbose] >                                                     │

│ 00:00:10 #48 [Verbose] > union thinking =                                    │

│ 00:00:10 #49 [Verbose] >     | Ti : t * i                                    │

│ 00:00:10 #50 [Verbose] >     | Te : t * e                                    │

│ 00:00:10 #51 [Verbose] >                                                     │

│ 00:00:10 #52 [Verbose] > union feeling =                                     │

│ 00:00:10 #53 [Verbose] >     | Fi : f * i                                    │

│ 00:00:10 #54 [Verbose] >     | Fe : f * e                                    │

│ 00:00:10 #55 [Verbose] >                                                     │

│ 00:00:10 #56 [Verbose] > union function_stack =                              │

│ 00:00:10 #57 [Verbose] >     | FS : sensing * intuition * thinking * feeling │

│ 00:00:10 #58 [Verbose] >                                                     │

│ 00:00:10 #59 [Verbose] > union personality_type =                            │

│ 00:00:10 #60 [Verbose] >     | ISTJ : i * s * t * j * function_stack         │

│ 00:00:10 #61 [Verbose] >     | ISFJ : i * s * f * j * function_stack         │

│ 00:00:10 #62 [Verbose] >     | INFJ : i * n * f * j * function_stack         │

│ 00:00:10 #63 [Verbose] >     | INTJ : i * n * t * j * function_stack         │

│ 00:00:10 #64 [Verbose] >     | ISTP : i * s * t * p * function_stack         │

│ 00:00:10 #65 [Verbose] >     | ISFP : i * s * f * p * function_stack         │

│ 00:00:10 #66 [Verbose] >     | INFP : i * n * f * p * function_stack         │

│ 00:00:10 #67 [Verbose] >     | INTP : i * n * t * p * function_stack         │

│ 00:00:10 #68 [Verbose] >     | ESTP : e * s * t * p * function_stack         │

│ 00:00:10 #69 [Verbose] >     | ESFP : e * s * f * p * function_stack         │

│ 00:00:10 #70 [Verbose] >     | ENFP : e * n * f * p * function_stack         │

│ 00:00:10 #71 [Verbose] >     | ENTP : e * n * t * p * function_stack         │

│ 00:00:10 #72 [Verbose] >     | ESTJ : e * s * t * j * function_stack         │

│ 00:00:10 #73 [Verbose] >     | ESFJ : e * s * f * j * function_stack         │

│ 00:00:10 #74 [Verbose] >     | ENFJ : e * n * f * j * function_stack         │

│ 00:00:10 #75 [Verbose] >     | ENTJ : e * n * t * j * function_stack         │

│ 00:00:10 #76 [Verbose] >                                                     │

│ 00:00:10 #77 [Verbose] >                                                     │

│ 00:00:10 #78 [Verbose] > inl main () =                                       │

│ 00:00:10 #79 [Verbose] >     inl istj_stack = FS ((Si (s, i)), Ne (n, e),    │

│ (Te (t, e)), (Fi (f, i)))                                                    │

│ 00:00:10 #80 [Verbose] >     inl istj_personality = ISTJ (i, s, t, j,        │

│ istj_stack)                                                                  │

│ 00:00:10 #81 [Verbose] >     // inl isfj_stack = FS ((Si (s, i)), Ne (n, e), │

│ (Fe (f, e)), (Ti (t, i)))                                                    │

│ 00:00:10 #82 [Verbose] >     // inl isfj_personality = ISFJ (i, s, f, j,     │

│ isfj_stack)                                                                  │

│ 00:00:10 #83 [Verbose] >                                                     │

│ 00:00:10 #84 [Verbose] >     ;[[                                             │

│ 00:00:10 #85 [Verbose] >         istj_personality                            │

│ 00:00:10 #86 [Verbose] >     ]]                                              │

│ 00:00:10 #87 [Verbose] >     |> fun x => $'$"%A{!x}"' : string               │

│ 00:00:10 #88 [Verbose] >     |> console.write_line                           │

│ 00:00:10 #89 [Verbose] >                                                     │

│ 00:00:10 #90 [Verbose] > inl main () =                                       │

│ 00:00:10 #91 [Verbose] >     $"!main ()" : ()                                │

│ 00:00:10 #92 [Verbose] > Building                                            │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1319-0030-3029-32dac │

│ 623695b\main.spi                                                             │

│ 00:00:12 #93 [Verbose] >                                                     │

│ 00:00:12 #94 [Verbose] > ╭─[ 1.75s - stdout                                  │

│ ]───────────────────────────────────────────────────────────╮                │

│ 00:00:12 #95 [Verbose] > │ type [<Struct>] US0 =                             │

│ │                                                                            │

│ 00:00:12 #96 [Verbose] > │     | US0_0                                       │

│ │                                                                            │

│ 00:00:12 #97 [Verbose] > │     | US0_1                                       │

│ │                                                                            │

│ 00:00:12 #98 [Verbose] > │ and [<Struct>] US1 =                              │

│ │                                                                            │

│ 00:00:12 #99 [Verbose] > │     | US1_0                                       │

│ │                                                                            │

│ 00:00:12 #100 [Verbose] > │     | US1_1                                      │

│ │                                                                            │

│ 00:00:12 #101 [Verbose] > │ and [<Struct>] US2 =                             │

│ │                                                                            │

│ 00:00:12 #102 [Verbose] > │     | US2_0                                      │

│ │                                                                            │

│ 00:00:12 #103 [Verbose] > │     | US2_1                                      │

│ │                                                                            │

│ 00:00:12 #104 [Verbose] > │ and [<Struct>] US3 =                             │

│ │                                                                            │

│ 00:00:12 #105 [Verbose] > │     | US3_0                                      │

│ │                                                                            │

│ 00:00:12 #106 [Verbose] > │     | US3_1                                      │

│ │                                                                            │

│ 00:00:12 #107 [Verbose] > │ and [<Struct>] US4 =                             │

│ │                                                                            │

│ 00:00:12 #108 [Verbose] > │     | US4_0 of f0_0 : US0 * f0_1 : US1 * f0_2 :  │

│ US2 * f0_3 : US3             │                                               │

│ 00:00:12 #109 [Verbose] > │ and [<Struct>] US5 =                             │

│ │                                                                            │

│ 00:00:12 #110 [Verbose] > │     | US5_0 of f0_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #111 [Verbose] > │     | US5_1 of f1_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #112 [Verbose] > │     | US5_2 of f2_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #113 [Verbose] > │     | US5_3 of f3_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #114 [Verbose] > │     | US5_4 of f4_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #115 [Verbose] > │     | US5_5 of f5_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #116 [Verbose] > │     | US5_6 of f6_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #117 [Verbose] > │     | US5_7 of f7_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #118 [Verbose] > │     | US5_8 of f8_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #119 [Verbose] > │     | US5_9 of f9_0 : US4                        │

│ │                                                                            │

│ 00:00:12 #120 [Verbose] > │     | US5_10 of f10_0 : US4                      │

│ │                                                                            │

│ 00:00:12 #121 [Verbose] > │     | US5_11 of f11_0 : US4                      │

│ │                                                                            │

│ 00:00:12 #122 [Verbose] > │     | US5_12 of f12_0 : US4                      │

│ │                                                                            │

│ 00:00:12 #123 [Verbose] > │     | US5_13 of f13_0 : US4                      │

│ │                                                                            │

│ 00:00:12 #124 [Verbose] > │     | US5_14 of f14_0 : US4                      │

│ │                                                                            │

│ 00:00:12 #125 [Verbose] > │     | US5_15 of f15_0 : US4                      │

│ │                                                                            │

│ 00:00:12 #126 [Verbose] > │ let rec closure0 () () : unit =                  │

│ │                                                                            │

│ 00:00:12 #127 [Verbose] > │     let v0 : US0 = US0_0                         │

│ │                                                                            │

│ 00:00:12 #128 [Verbose] > │     let v1 : US1 = US1_1                         │

│ │                                                                            │

│ 00:00:12 #129 [Verbose] > │     let v2 : US2 = US2_1                         │

│ │                                                                            │

│ 00:00:12 #130 [Verbose] > │     let v3 : US3 = US3_0                         │

│ │                                                                            │

│ 00:00:12 #131 [Verbose] > │     let v4 : US4 = US4_0(v0, v1, v2, v3)         │

│ │                                                                            │

│ 00:00:12 #132 [Verbose] > │     let v5 : US5 = US5_0(v4)                     │

│ │                                                                            │

│ 00:00:12 #133 [Verbose] > │     let v6 : (US5 []) = [|v5|]                   │

│ │                                                                            │

│ 00:00:12 #134 [Verbose] > │     let v7 : string = $"%A{v6}"                  │

│ │                                                                            │

│ 00:00:12 #135 [Verbose] > │     System.Console.WriteLine v7                  │

│ │                                                                            │

│ 00:00:12 #136 [Verbose] > │     ()                                           │

│ │                                                                            │

│ 00:00:12 #137 [Verbose] > │ let v0 : (unit -> unit) = closure0()             │

│ │                                                                            │

│ 00:00:12 #138 [Verbose] > │ v0 ()                                            │

│ │                                                                            │

│ 00:00:12 #139 [Verbose] > │ ()                                               │

│ │                                                                            │

│ 00:00:12 #140 [Verbose] > │                                                  │

│                                                                              │

│ │                                                                            │

│ 00:00:12 #141 [Verbose] > │ [|US5_0 (US4_0 (US0_0, US1_1, US2_1, US3_0))|]   │

│ │                                                                            │

│ 00:00:12 #142 [Verbose] > │                                                  │

│                                                                              │

│ │                                                                            │

│ 00:00:12 #143 [Verbose] >                                                    │

│ ╰─────────────────────────────────────────────────────────────────────────── │

│ ───╯                                                                         │

│ 00:00:12 #144 [Verbose] >                                                    │

│ 00:00:12 #145 [Verbose] > ── fsharp                                          │

│ ──────────────────────────────────────────────────────────────────────       │

│ 00:00:12 #146 [Verbose] > type PhonologicalFeature =                         │

│ 00:00:12 #147 [Verbose] >     | VowelFeature of                              │

│ 00:00:12 #148 [Verbose] >         height: Height                             │

│ 00:00:12 #149 [Verbose] >         * backness: Backness                       │

│ 00:00:12 #150 [Verbose] >         * roundedness: Roundedness                 │

│ 00:00:12 #151 [Verbose] >         * tone: Option<Tone>                       │

│ 00:00:12 #152 [Verbose] >         * stress: Option<Stress>                   │

│ 00:00:12 #153 [Verbose] >         * length: Option<Length>                   │

│ 00:00:12 #154 [Verbose] >     | ConsonantFeature of                          │

│ 00:00:12 #155 [Verbose] >         place: PlaceOfArticulation                 │

│ 00:00:12 #156 [Verbose] >         * manner: MannerOfArticulation             │

│ 00:00:12 #157 [Verbose] >         * voicing: Voicing                         │

│ 00:00:12 #158 [Verbose] >         * length: Option<Length>                   │

│ 00:00:12 #159 [Verbose] >     | VowelHarmonyFeature                          │

│ 00:00:12 #160 [Verbose] >     | PitchAccentFeature                           │

│ 00:00:12 #161 [Verbose] >                                                    │

│ 00:00:12 #162 [Verbose] > and Stress = Primary | Secondary                   │

│ 00:00:12 #163 [Verbose] > and Length = Long | Short | HalfLong               │

│ 00:00:12 #164 [Verbose] >                                                    │

│ 00:00:12 #165 [Verbose] > and Height =                                       │

│ 00:00:12 #166 [Verbose] >     | High | NearHigh | HighMid                    │

│ 00:00:12 #167 [Verbose] >     | Mid | LowMid | NearLow                       │

│ 00:00:12 #168 [Verbose] >     | Low                                          │

│ 00:00:12 #169 [Verbose] >                                                    │

│ 00:00:12 #170 [Verbose] > and Backness = Front | Central | Back              │

│ 00:00:12 #171 [Verbose] >                                                    │

│ 00:00:12 #172 [Verbose] > and Roundedness = Rounded | Unrounded              │

│ 00:00:12 #173 [Verbose] >                                                    │

│ 00:00:12 #174 [Verbose] > and PlaceOfArticulation =                          │

│ 00:00:12 #175 [Verbose] >     | Bilabial | Labiodental | Dental              │

│ 00:00:12 #176 [Verbose] >     | Alveolar | Postalveolar | Retroflex          │

│ 00:00:12 #177 [Verbose] >     | Palatal | Velar | Uvular                     │

│ 00:00:12 #178 [Verbose] >     | Pharyngeal | Epiglottal | Glottal            │

│ 00:00:12 #179 [Verbose] >                                                    │

│ 00:00:12 #180 [Verbose] > and MannerOfArticulation =                         │

│ 00:00:12 #181 [Verbose] >     | Plosive | Nasal | Trill                      │

│ 00:00:12 #182 [Verbose] >     | TapOrFlap | Fricative | LateralFricative     │

│ 00:00:12 #183 [Verbose] >     | Approximant | LateralApproximant             │

│ 00:00:12 #184 [Verbose] >                                                    │

│ 00:00:12 #185 [Verbose] > and Voicing = Voiced | Voiceless                   │

│ 00:00:12 #186 [Verbose] >                                                    │

│ 00:00:12 #187 [Verbose] > and SecondaryArticulation =                        │

│ 00:00:12 #188 [Verbose] >     | Labialization | Palatalization |             │

│ Velarization                                                                 │

│ 00:00:12 #189 [Verbose] >     | Pharyngealization | Aspiration               │

│ 00:00:12 #190 [Verbose] >                                                    │

│ 00:00:12 #191 [Verbose] > and Tone =                                         │

│ 00:00:12 #192 [Verbose] >     | LevelTone of int                             │

│ 00:00:12 #193 [Verbose] >     | ContourTone of int list                      │

│ 00:00:12 #194 [Verbose] >                                                    │

│ 00:00:12 #195 [Verbose] > and MorphologicalFeature =                         │

│ 00:00:12 #196 [Verbose] >     | RootFeature of string                        │

│ 00:00:12 #197 [Verbose] >     | AffixFeature of AffixType * string           │

│ 00:00:12 #198 [Verbose] >     | IncorporationFeature of string *             │

│ MorphologicalFeature                                                         │

│ 00:00:12 #199 [Verbose] >     | NonConcatenativePattern of string * string   │

│ 00:00:12 #200 [Verbose] >     | AgglutinativeAffixFeature of                 │

│ AgglutinativeAffixType * string                                              │

│ 00:00:12 #201 [Verbose] >     | HonorificFeature of HonorificType * string   │

│ 00:00:12 #202 [Verbose] >                                                    │

│ 00:00:12 #203 [Verbose] > and AgglutinativeAffixType = Suffix | Prefix       │

│ 00:00:12 #204 [Verbose] >                                                    │

│ 00:00:12 #205 [Verbose] > and HonorificType = VerbHonorific | NounHonorific  │

│ 00:00:12 #206 [Verbose] >                                                    │

│ 00:00:12 #207 [Verbose] > and AffixType =                                    │

│ 00:00:12 #208 [Verbose] >     | Prefix | Suffix | Infix                      │

│ 00:00:12 #209 [Verbose] >     | Circumfix                                    │

│ 00:00:12 #210 [Verbose] >                                                    │

│ 00:00:12 #211 [Verbose] > type SyntacticFeature =                            │

│ 00:00:12 #212 [Verbose] >     | WordFeature of MorphologicalFeature list *   │

│ LexicalCategory                                                              │

│ 00:00:12 #213 [Verbose] >     | PhraseFeature of PhraseType *                │

│ SyntacticFeature list                                                        │

│ 00:00:12 #214 [Verbose] >     | GrammaticalRelation of                       │

│ GrammaticalRelationType * SyntacticFeature list                              │

│ 00:00:12 #215 [Verbose] >     | SOVOrderFeature                              │

│ 00:00:12 #216 [Verbose] >     | TopicCommentFeature                          │

│ 00:00:12 #217 [Verbose] >                                                    │

│ 00:00:12 #218 [Verbose] > and GrammaticalRelationType =                      │

│ 00:00:12 #219 [Verbose] >     | Ergative | Absolutive | Nominative           │

│ 00:00:12 #220 [Verbose] >     | Accusative                                   │

│ 00:00:12 #221 [Verbose] >                                                    │

│ 00:00:12 #222 [Verbose] > and LexicalCategory =                              │

│ 00:00:12 #223 [Verbose] >     | Noun | Verb | Adjective                      │

│ 00:00:12 #224 [Verbose] >     | Adverb | Pronoun | Preposition               │

│ 00:00:12 #225 [Verbose] >     | Conjunction | Determiner | Interjection      │

│ 00:00:12 #226 [Verbose] >                                                    │

│ 00:00:12 #227 [Verbose] > and PhraseType =                                   │

│ 00:00:12 #228 [Verbose] >     | NP | VP | AP                                 │

│ 00:00:12 #229 [Verbose] >     | PP | CP                                      │

│ 00:00:12 #230 [Verbose] >                                                    │

│ 00:00:12 #231 [Verbose] > and SemanticFeature =                              │

│ 00:00:12 #232 [Verbose] >     | Meaning of string                            │

│ 00:00:12 #233 [Verbose] >     | SemanticRole of SemanticRoleType *           │

│ SemanticFeature                                                              │

│ 00:00:12 #234 [Verbose] >                                                    │

│ 00:00:12 #235 [Verbose] > and SemanticRoleType =                             │

│ 00:00:12 #236 [Verbose] >     | Agent | Patient | Instrument                 │

│ 00:00:12 #237 [Verbose] >     | Location | Time | Cause                      │

│ 00:00:12 #238 [Verbose] >                                                    │

│ 00:00:12 #239 [Verbose] > and PragmaticFeature =                             │

│ 00:00:12 #240 [Verbose] >     | UseContext of string                         │

│ 00:00:12 #241 [Verbose] >     | PolitenessLevel of Politeness                │

│ 00:00:12 #242 [Verbose] >     | SpeechAct of SpeechActType                   │

│ 00:00:12 #243 [Verbose] >     | SpeechLevel of SpeechLevelType               │

│ 00:00:12 #244 [Verbose] >                                                    │

│ 00:00:12 #245 [Verbose] > and Politeness = Formal | Informal | Neutral       │

│ 00:00:12 #246 [Verbose] >                                                    │

│ 00:00:12 #247 [Verbose] > and SpeechActType =                                │

│ 00:00:12 #248 [Verbose] >     | Assertive | Directive | Commissive           │

│ 00:00:12 #249 [Verbose] >     | Expressive | Declarative                     │

│ 00:00:12 #250 [Verbose] >                                                    │

│ 00:00:12 #251 [Verbose] > and SpeechLevelType =                              │

│ 00:00:12 #252 [Verbose] >     | FormalHigh | FormalLow | InformalHigh        │

│ 00:00:12 #253 [Verbose] >     | InformalLow | Neutral                        │

│ 00:00:12 #254 [Verbose] >                                                    │

│ 00:00:12 #255 [Verbose] > type LinguisticFeature =                           │

│ 00:00:12 #256 [Verbose] >     | Phonological of PhonologicalFeature          │

│ 00:00:12 #257 [Verbose] >     | Morphological of MorphologicalFeature        │

│ 00:00:12 #258 [Verbose] >     | Syntactic of SyntacticFeature                │

│ 00:00:12 #259 [Verbose] >     | Semantic of SemanticFeature                  │

│ 00:00:12 #260 [Verbose] >     | Pragmatic of PragmaticFeature                │

│ 00:00:12 #261 [Verbose] >                                                    │

│ 00:00:12 #262 [Verbose] > type LanguageConstruct =                           │

│ 00:00:12 #263 [Verbose] >     | LanguageElement of LinguisticFeature         │

│ 00:00:12 #264 [Verbose] >     | LanguageStructure of LanguageConstruct list  │

│ 00:00:12 #265 [Verbose] >     | TranslationElement of TranslationFeature     │

│ 00:00:12 #266 [Verbose] >                                                    │

│ 00:00:12 #267 [Verbose] > and TranslationFeature =                           │

│ 00:00:12 #268 [Verbose] >     | LinkedPhonological of PhonologicalFeature *  │

│ PhonologicalFeature                                                          │

│ 00:00:12 #269 [Verbose] >     | LinkedMorphological of MorphologicalFeature  │

│ * MorphologicalFeature                                                       │

│ 00:00:12 #270 [Verbose] >     | LinkedSyntactic of SyntacticFeature *        │

│ SyntacticFeature                                                             │

│ 00:00:12 #271 [Verbose] >     | LinkedSemantic of SemanticFeature *          │

│ SemanticFeature                                                              │

│ 00:00:12 #272 [Verbose] >                                                    │

│ 00:00:12 #273 [Verbose] > type Discourse = DiscourseUnit of                  │

│ LanguageConstruct list                                                       │

│ 00:00:12 #274 [Verbose] >                                                    │

│ 00:00:12 #275 [Verbose] > type LanguageModel =                               │

│ 00:00:12 #276 [Verbose] >     | Model of discourse: Discourse                │

│ 00:00:12 #277 [Verbose] >                                                    │

│ 00:00:12 #278 [Verbose] > ── fsharp - import                                 │

│ ─────────────────────────────────────────────────────────────                │

│ 00:00:12 #279 [Verbose] > #r                                                 │

│ 00:00:12 #280 [Verbose] >                                                    │

│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │

│ ft.A                                                                         │

│ 00:00:12 #281 [Verbose] > spNetCore.Html.Abstractions.dll"                   │

│ 00:00:12 #282 [Verbose] > #r                                                 │

│ 00:00:12 #283 [Verbose] >                                                    │

│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │

│ ft.D                                                                         │

│ 00:00:12 #284 [Verbose] > otNet.Interactive.dll"                             │

│ 00:00:12 #285 [Verbose] > #r                                                 │

│ 00:00:12 #286 [Verbose] >                                                    │

│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │

│ ft.D                                                                         │

│ 00:00:12 #287 [Verbose] > otNet.Interactive.FSharp.dll"                      │

│ 00:00:12 #288 [Verbose] > #r                                                 │

│ 00:00:12 #289 [Verbose] >                                                    │

│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │

│ ft.D                                                                         │

│ 00:00:12 #290 [Verbose] > otNet.Interactive.Formatting.dll"                  │

│ 00:00:12 #291 [Verbose] > open System                                        │

│ 00:00:12 #292 [Verbose] > open System.IO                                     │

│ 00:00:12 #293 [Verbose] > open System.Text                                   │

│ 00:00:12 #294 [Verbose] > open Microsoft.DotNet.Interactive.Formatting       │

│ 00:00:13 #295 [Verbose] >                                                    │

│ 00:00:13 #296 [Verbose] > ── fsharp - import                                 │

│ ─────────────────────────────────────────────────────────────                │

│ 00:00:13 #297 [Verbose] > #r                                                 │

│ 00:00:13 #298 [Verbose] >                                                    │

│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │

│ ft.D                                                                         │

│ 00:00:13 #299 [Verbose] > otNet.Interactive.FSharp.dll"                      │

│ 00:00:13 #300 [Verbose] > open                                               │

│ Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers                      │

│ 00:00:13 #301 [Verbose] > #r                                                 │

│ 00:00:13 #302 [Verbose] >                                                    │

│ "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microso │

│ ft.D                                                                         │

│ 00:00:13 #303 [Verbose] > otNet.Interactive.dll"                             │

│ 00:00:13 #304 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel      │

│ 00:00:13 #305 [Verbose] >                                                    │

│ 00:00:13 #306 [Verbose] > ── fsharp - import                                 │

│ ─────────────────────────────────────────────────────────────                │

│ 00:00:13 #307 [Verbose] > type PhonologicalFeature =                         │

│ 00:00:13 #308 [Verbose] >     | VowelFeature of                              │

│ 00:00:13 #309 [Verbose] >         height: Height                             │

│ 00:00:13 #310 [Verbose] >         * backness: Backness                       │

│ 00:00:13 #311 [Verbose] >         * roundedness: Roundedness                 │

│ 00:00:13 #312 [Verbose] >         * tone: Option<Tone>                       │

│ 00:00:13 #313 [Verbose] >         * stress: Option<Stress>                   │

│ 00:00:13 #314 [Verbose] >         * length: Option<Length>                   │

│ 00:00:13 #315 [Verbose] >     | ConsonantFeature of                          │

│ 00:00:13 #316 [Verbose] >         place: PlaceOfArticulation                 │

│ 00:00:13 #317 [Verbose] >         * manner: MannerOfArticulation             │

│ 00:00:13 #318 [Verbose] >         * voicing: Voicing                         │

│ 00:00:13 #319 [Verbose] >         * length: Option<Length>                   │

│ 00:00:13 #320 [Verbose] >     | VowelHarmonyFeature                          │

│ 00:00:13 #321 [Verbose] >     | PitchAccentFeature                           │

│ 00:00:13 #322 [Verbose] >                                                    │

│ 00:00:13 #323 [Verbose] > and Stress = Primary | Secondary                   │

│ 00:00:13 #324 [Verbose] > and Length = Long | Short | HalfLong               │

│ 00:00:13 #325 [Verbose] >                                                    │

│ 00:00:13 #326 [Verbose] > and Height =                                       │

│ 00:00:13 #327 [Verbose] >     | High | NearHigh | HighMid                    │

│ 00:00:13 #328 [Verbose] >     | Mid | LowMid | NearLow                       │

│ 00:00:13 #329 [Verbose] >     | Low                                          │

│ 00:00:13 #330 [Verbose] >                                                    │

│ 00:00:13 #331 [Verbose] > and Backness = Front | Central | Back              │

│ 00:00:13 #332 [Verbose] >                                                    │

│ 00:00:13 #333 [Verbose] > and Roundedness = Rounded | Unrounded              │

│ 00:00:13 #334 [Verbose] >                                                    │

│ 00:00:13 #335 [Verbose] > and PlaceOfArticulation =                          │

│ 00:00:13 #336 [Verbose] >     | Bilabial | Labiodental | Dental              │

│ 00:00:13 #337 [Verbose] >     | Alv...                                       │

│ 00:00:14 #338 [Verbose] >                                                    │

│ 00:00:14 #339 [Verbose] > ── fsharp                                          │

│ ──────────────────────────────────────────────────────────────────────       │

│ 00:00:14 #340 [Verbose] > let testEnglish =                                  │

│ 00:00:14 #341 [Verbose] >     Model(                                         │

│ 00:00:14 #342 [Verbose] >         DiscourseUnit [[                           │

│ 00:00:14 #343 [Verbose] >             LanguageElement (Phonological          │

│ (ConsonantFeature (Alveolar, Nasal,                                          │

│ 00:00:14 #344 [Verbose] > Voiced, Some(HalfLong))));                         │

│ 00:00:14 #345 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (High, Front, Unrounded,                                       │

│ 00:00:14 #346 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short))));  │

│ 00:00:14 #347 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (Low, Front, Unrounded,                                        │

│ 00:00:14 #348 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │

│ 00:00:14 #349 [Verbose] >             LanguageElement (Phonological          │

│ (ConsonantFeature (Velar, Plosive,                                           │

│ 00:00:14 #350 [Verbose] > Voiceless, Some(HalfLong))));                      │

│ 00:00:14 #351 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "I"));                                                          │

│ 00:00:14 #352 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "see"));                                                        │

│ 00:00:14 #353 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "a"));                                                          │

│ 00:00:14 #354 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "cat"));                                                        │

│ 00:00:14 #355 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (NP, [[WordFeature                                            │

│ 00:00:14 #356 [Verbose] > ([[RootFeature "I"]], Pronoun)]])));               │

│ 00:00:14 #357 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (VP, [[WordFeature                                            │

│ 00:00:14 #358 [Verbose] > ([[RootFeature "see"]], Verb)]])));                │

│ 00:00:14 #359 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (NP, [[WordFeature                                            │

│ 00:00:14 #360 [Verbose] > ([[RootFeature "a"; RootFeature "cat"]],           │

│ Noun)]])));                                                                  │

│ 00:00:14 #361 [Verbose] >             LanguageElement (Semantic (Meaning     │

│ "Perception act of a feline by                                               │

│ 00:00:14 #362 [Verbose] > the speaker"));                                    │

│ 00:00:14 #363 [Verbose] >             LanguageElement (Pragmatic (UseContext │

│ "Statement of an action being                                                │

│ 00:00:14 #364 [Verbose] > observed"))                                        │

│ 00:00:14 #365 [Verbose] >         ]]                                         │

│ 00:00:14 #366 [Verbose] >     )                                              │

│ 00:00:14 #367 [Verbose] >                                                    │

│ 00:00:14 #368 [Verbose] > let testPortuguese =                               │

│ 00:00:14 #369 [Verbose] >     Model(                                         │

│ 00:00:14 #370 [Verbose] >         DiscourseUnit [[                           │

│ 00:00:14 #371 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (High, Front, Unrounded,                                       │

│ 00:00:14 #372 [Verbose] > Some(LevelTone 1), Some(Primary), Some(Short))));  │

│ 00:00:14 #373 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (Low, Front, Unrounded,                                        │

│ 00:00:14 #374 [Verbose] > Some(LevelTone 2), Some(Secondary), Some(Long)))); │

│ 00:00:14 #375 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (Mid, Back, Rounded,                                           │

│ 00:00:14 #376 [Verbose] > Some(LevelTone 3), Some(Primary), Some(Short))));  │

│ 00:00:14 #377 [Verbose] >             LanguageElement (Phonological          │

│ (ConsonantFeature (Velar, Plosive,                                           │

│ 00:00:14 #378 [Verbose] > Voiceless, Some(HalfLong))));                      │

│ 00:00:14 #379 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "Eu"));                                                         │

│ 00:00:14 #380 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "ver" |> ignore;                                                │

│ 00:00:14 #381 [Verbose] > AffixFeature (Suffix, "o")));                      │

│ 00:00:14 #382 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "um"));                                                         │

│ 00:00:14 #383 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "gato"));                                                       │

│ 00:00:14 #384 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (NP, [[WordFeature                                            │

│ 00:00:14 #385 [Verbose] > ([[RootFeature "Eu"]], Pronoun)]])));              │

│ 00:00:14 #386 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (VP, [[WordFeature                                            │

│ 00:00:14 #387 [Verbose] > ([[RootFeature "vejo"]], Verb)]])));               │

│ 00:00:14 #388 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (NP, [[WordFeature                                            │

│ 00:00:14 #389 [Verbose] > ([[RootFeature "um"; RootFeature "gato"]],         │

│ Noun)]])));                                                                  │

│ 00:00:14 #390 [Verbose] >             LanguageElement (Semantic (Meaning     │

│ "Ação de percepção de um felino                                              │

│ 00:00:14 #391 [Verbose] > pelo falante"));                                   │

│ 00:00:14 #392 [Verbose] >             LanguageElement (Pragmatic (UseContext │

│ "Declaração de uma ação sendo                                                │

│ 00:00:14 #393 [Verbose] > observada"))                                       │

│ 00:00:14 #394 [Verbose] >         ]]                                         │

│ 00:00:14 #395 [Verbose] >     )                                              │

│ 00:00:14 #396 [Verbose] >                                                    │

│ 00:00:14 #397 [Verbose] > let testKorean =                                   │

│ 00:00:14 #398 [Verbose] >     Model(                                         │

│ 00:00:14 #399 [Verbose] >         DiscourseUnit [[                           │

│ 00:00:14 #400 [Verbose] >             LanguageElement (Phonological          │

│ (ConsonantFeature (Alveolar, Nasal,                                          │

│ 00:00:14 #401 [Verbose] > Voiced, Some(Short))));                            │

│ 00:00:14 #402 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (High, Back, Rounded,                                          │

│ 00:00:14 #403 [Verbose] > None, None, Some(Short))));                        │

│ 00:00:14 #404 [Verbose] >             LanguageElement (Phonological          │

│ (VowelFeature (Mid, Front, Unrounded,                                        │

│ 00:00:14 #405 [Verbose] > None, None, Some(Long))));                         │

│ 00:00:14 #406 [Verbose] >             LanguageElement (Phonological          │

│ (ConsonantFeature (Bilabial, Plosive,                                        │

│ 00:00:14 #407 [Verbose] > Voiceless, Some(Short))));                         │

│ 00:00:14 #408 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "나"));                                                         │

│ 00:00:14 #409 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "보다"));                                                       │

│ 00:00:14 #410 [Verbose] >             LanguageElement (Morphological         │

│ (AffixFeature (Suffix, "아")));                                              │

│ 00:00:14 #411 [Verbose] >             LanguageElement (Morphological         │

│ (RootFeature "고양이"));                                                     │

│ 00:00:14 #412 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (NP, [[WordFeature                                            │

│ 00:00:14 #413 [Verbose] > ([[RootFeature "나"]], Pronoun)]])));              │

│ 00:00:14 #414 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (VP, [[WordFeature                                            │

│ 00:00:14 #415 [Verbose] > ([[RootFeature "보다"; AffixFeature (Suffix,       │

│ "아")]], Verb)]])));                                                         │

│ 00:00:14 #416 [Verbose] >             LanguageElement (Syntactic             │

│ (PhraseFeature (NP, [[WordFeature                                            │

│ 00:00:14 #417 [Verbose] > ([[RootFeature "고양이"]], Noun)]])));             │

│ 00:00:14 #418 [Verbose] >             LanguageElement (Semantic (Meaning     │

│ "화자에 의한 고양이의 관찰                                                   │

│ 00:00:14 #419 [Verbose] > 행위"));                                           │

│ 00:00:14 #420 [Verbose] >             LanguageElement (Pragmatic (UseContext │

│ "관찰되고 있는 행동의 진술"))                                                │

│ 00:00:14 #421 [Verbose] >         ]]                                         │

│ 00:00:14 #422 [Verbose] >     )                                              │

│ 00:00:14 #423 [Verbose] >                                                    │

│ 00:00:14 #424 [Verbose] > ── markdown                                        │

│ ────────────────────────────────────────────────────────────────────         │

│ 00:00:14 #425 [Verbose] >                                                    │

│ ╭─────────────────────────────────────────────────────────────────────────── │

│ ───╮                                                                         │

│ 00:00:14 #426 [Verbose] > │ ## main                                          │

│ │                                                                            │

│ 00:00:14 #427 [Verbose] >                                                    │

│ ╰─────────────────────────────────────────────────────────────────────────── │

│ ───╯                                                                         │

│ 00:00:14 #428 [Verbose] >                                                    │

│ 00:00:14 #429 [Verbose] > ── spiral                                          │

│ ──────────────────────────────────────────────────────────────────────       │

│ 00:00:14 #430 [Verbose] > inl main (_args : array_base string) =             │

│ 00:00:14 #431 [Verbose] >     0i32                                           │

│ 00:00:14 #432 [Verbose] >                                                    │

│ 00:00:14 #433 [Verbose] > inl main () =                                      │

│ 00:00:14 #434 [Verbose] >     $"let main args = !main args" : ()             │

│ 00:00:14 #435 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1319-0460-6040-6a3d1 │

│ b6704e6\main.spi                                                             │

│ 00:00:14 #436 [Verbose] >                                                    │

│ 00:00:14 #437 [Verbose] > ╭─[ 338.94ms - stdout                              │

│ ]────────────────────────────────────────────────────────╮                   │

│ 00:00:14 #438 [Verbose] > │ let rec closure0 () (v0 : (string [])) : int32 = │

│ │                                                                            │

│ 00:00:14 #439 [Verbose] > │     0                                            │

│ │                                                                            │

│ 00:00:14 #440 [Verbose] > │ let v0 : ((string []) -> int32) = closure0()     │

│ │                                                                            │

│ 00:00:14 #441 [Verbose] > │ let main args = v0 args                          │

│ │                                                                            │

│ 00:00:14 #442 [Verbose] > │ ()                                               │

│ │                                                                            │

│ 00:00:14 #443 [Verbose] > │                                                  │

│                                                                              │

│ │                                                                            │

│ 00:00:14 #444 [Verbose] > │                                                  │

│                                                                              │

│ │                                                                            │

│ 00:00:14 #445 [Verbose] >                                                    │

│ ╰─────────────────────────────────────────────────────────────────────────── │

│ ───╯                                                                         │

│ 00:00:14 #446 [Verbose] >                                                    │

│ 00:00:14 #447 [Verbose] > ── spiral                                          │

│ ──────────────────────────────────────────────────────────────────────       │

│ 00:00:14 #448 [Verbose] > inl app () =                                       │

│ 00:00:14 #449 [Verbose] >     "test" |> console.write_line                   │

│ 00:00:14 #450 [Verbose] >     0i32                                           │

│ 00:00:14 #451 [Verbose] >                                                    │

│ 00:00:14 #452 [Verbose] > inl main () =                                      │

│ 00:00:14 #453 [Verbose] >     print_static "<test>"                          │

│ 00:00:14 #454 [Verbose] >                                                    │

│ 00:00:14 #455 [Verbose] >     app                                            │

│ 00:00:14 #456 [Verbose] >     |> dyn                                         │

│ 00:00:14 #457 [Verbose] >     |> ignore                                      │

│ 00:00:14 #458 [Verbose] >                                                    │

│ 00:00:14 #459 [Verbose] >     print_static "</test>"                         │

│ 00:00:15 #460 [Verbose] > Building                                           │

│ c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1319-0494-9454-9b792 │

│ 444b5eb\main.spi                                                             │

│ 00:00:15 #461 [Verbose] > <test>                                             │

│ 00:00:15 #462 [Verbose] > </test>                                            │

│ 00:00:15 #463 [Verbose] >                                                    │

│ 00:00:15 #464 [Verbose] > ╭─[ 325.76ms - stdout                              │

│ ]────────────────────────────────────────────────────────╮                   │

│ 00:00:15 #465 [Verbose] > │ let rec closure0 () () : int32 =                 │

│ │                                                                            │

│ 00:00:15 #466 [Verbose] > │     let v0 : string = "test"                     │

│ │                                                                            │

│ 00:00:15 #467 [Verbose] > │     System.Console.WriteLine v0                  │

│ │                                                                            │

│ 00:00:15 #468 [Verbose] > │     0                                            │

│ │                                                                            │

│ 00:00:15 #469 [Verbose] > │ let v0 : (unit -> int32) = closure0()            │

│ │                                                                            │

│ 00:00:15 #470 [Verbose] > │ ()                                               │

│ │                                                                            │

│ 00:00:15 #471 [Verbose] > │                                                  │

│                                                                              │

│ │                                                                            │

│ 00:00:15 #472 [Verbose] > │                                                  │

│                                                                              │

│ │                                                                            │

│ 00:00:15 #473 [Verbose] >                                                    │

│ ╰─────────────────────────────────────────────────────────────────────────── │

│ ───╯                                                                         │

│ 00:00:17 #474 [Verbose] > [NbConvertApp] Converting notebook test.dib.ipynb  │

│ to html                                                                      │

│ 00:00:17 #475 [Verbose] >                                                    │

│ C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__ │

│ .py:93: MissingIDFieldWarning: Code cell is missing an id field, this will   │

│ become a hard error in future nbformat versions. You may want to use         │

│ `normalize()` on your notebooks before validations (available since nbformat │

│ 5.1.4). Previous versions of nbformat are fixing this issue transparently,   │

│ and will stop doing so in the future.                                        │

│ 00:00:17 #476 [Verbose] >   validate(nb)                                     │

│ 00:00:17 #477 [Verbose] >                                                    │

│ C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters │

│ \highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on   │

│ Python 3                                                                     │

│ 00:00:17 #478 [Verbose] >   return _pygments_highlight(                      │

│ 00:00:18 #479 [Verbose] > [NbConvertApp] Writing 321504 bytes to             │

│ test.dib.html                                                                │

│ 00:00:18 #480 [Debug] executeAsync / exitCode: 0 / output.Length: 19236      │

│ 00:00:18 #481 [Debug] main / executeCommand / exitCode: 0                    │

│ 00:00:20 #482 [Debug] runWithTimeoutChildAsync / timeout: 2000               │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── pwsh ────────────────────────────────────────────────────────────────────────

{ . ../../../../apps/parser/dist/DibParser$(GetExecutableSuffix) test.dib spi } 

| Invoke-Block



╭─[ 556.97ms - stdout ]────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] writeDibCode / output: Spi / path: test.dib              │

│ 00:00:00 #2 [Debug] parseDibCode / output: Spi / file: test.dib              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── pwsh ────────────────────────────────────────────────────────────────────────

{ . ../../../../apps/spiral/dist/Supervisor$(GetExecutableSuffix) --build-file 

test.spi test.fsx --timeout 10000 } | Invoke-Block



╭─[ 6.78s - stdout ]───────────────────────────────────────────────────────────╮

│ 00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60                   │

│ 00:00:00 #2 [Debug] executeAsync / options: { Command =                      │

│    "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral         │

│ Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port    │

│ 13805 --default-int i32 --default-float f64"                                 │

│   WorkingDirectory = None                                                    │

│   CancellationToken = Some System.Threading.CancellationToken                │

│   OnLine = Some <fun:main@438-47> }                                          │

│ 00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\spiral\temp\test      │

│ 00:00:00 #4 [Verbose] > dll_path:                                            │

│ C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language            │

│ 2\artifacts\bin\The Spiral Language 2\release                                │

│ 00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to:          │

│ http://localhost:13805                                                       │

│ 00:00:00 #6 [Debug] runWithTimeoutChildAsync / timeout: 500                  │

│ 00:00:00 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0             │

│ 00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} /           │

│ result.Length:                                                               │

│ 00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port:      │

│ 13805 / retry: 0                                                             │

│ 00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805             │

│ 00:00:01 #11 [Debug] runWithTimeoutChildAsync / timeout: 60                  │

│ 00:00:01 #12 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:01 #13 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:01 #14 [Debug] sendJson / port: 13805 / json:                          │

│ {"FileOpen":{"spiText":"// // # test (Polyglot)\n\nnominal i = ()\nnominal e │

│ = ()\nnominal s = ()\nnominal n = ()\nnominal t = ()\nnominal f =            │

│ ()\nnominal j = ()\nnominal p = ()\n\nunion sensing =\n    | Si : s * i\n    │

│ | Se : s * e\n\nunion intuition =\n    | Ni : n * i\n    | Ne : n *          │

│ e\n\nunion thinking =\n    | Ti : t * i\n    | Te : t * e\n\nunion feeling   │

│ =\n    | Fi : f * i\n    | Fe : f * e\n\nunion function_stack =\n    | FS :  │

│ sensing * intuition * thinking * feeling\n\nunion personality_type =\n    |  │

│ ISTJ : i * s * t * j * function_stack\n    | ISFJ : i * s * f * j *          │

│ function_stack\n    | INFJ : i * n * f * j * function_stack\n    | INTJ : i  │

│ * n * t * j * function_stack\n    | ISTP : i * s * t * p * function_stack\n  │

│ | ISFP : i * s * f * p * function_stack\n    | INFP : i * n * f * p *        │

│ function_stack\n    | INTP : i * n * t * p * function_stack\n    | ESTP : e  │

│ * s * t * p * function_stack\n    | ESFP : e * s * f * p * function_stack\n  │

│ | ENFP : e * n * f * p * function_stack\n    | ENTP : e * n * t * p *        │

│ function_stack\n    | ESTJ : e * s * t * j * function_stack\n    | ESFJ : e  │

│ * s * f * j * function_stack\n    | ENFJ : e * n * f * j * function_stack\n  │

│ | ENTJ : e * n * t * j * function_stack\n\n\ninl main () =\n    inl          │

│ istj_stack = FS ((Si (s, i)), Ne (n, e), (Te (t, e)), (Fi (f, i)))\n    inl  │

│ istj_personality = ISTJ (i, s, t, j, istj_stack)\n    // inl isfj_stack = FS │

│ ((Si (s, i)), Ne (n, e), (Fe (f, e)), (Ti (t, i)))\n    // inl               │

│ isfj_personality = ISFJ (i, s, f, j, isfj_stack)\n\n    ;[\n                 │

│ istj_personality\n    ]\n    |\u003E fun x =\u003E                           │

│ $\u0027$\u0022%A{!x}\u0022\u0027 : string\n    |\u003E                       │

│ console.write_line\n\ninl main () =\n    $\u0022!main ()\u0022 : ()\n\n// // │

│ ## main\n\ninl main (_args : array_base string) =\n    0i32\n\ninl main ()   │

│ =\n    $\u0022let main args = !main args\u0022 : ()\n\ninl app () =\n        │

│ \u0022test\u0022 |\u003E console.write_line\n    0i32\n\ninl main () =\n     │

│ print_static \u0022\u003Ctest\u003E\u0022\n\n    app\n    |\u003E dyn\n      │

│ |\u003E ignore\n\n    print_static                                           │

│ \u0022\u003C/test\u003E\u0022\n","uri":"file:///c:/home/git/polyglot/apps/sp │

│ iral/temp/test/test.spi"}} / result.Length:                                  │

│ 00:00:01 #15 [Debug] sendJson / port: 13805 / json:                          │

│ {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/sp │

│ iral/temp/test/test.spi"}} / result.Length:                                  │

│ 00:00:02 #16 [Verbose] > Building                                            │

│ c:\home\git\polyglot\apps\spiral\temp\test\test.spi                          │

│ 00:00:02 #17 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:03 #18 [Debug] buildFile / takeWhileInclusive / fsxContent:  / errors: │

│ [] / typeErrorCount: 0                                                       │

│ 00:00:04 #19 [Verbose] > <test>                                              │

│ 00:00:04 #20 [Verbose] > </test>                                             │

│ 00:00:04 #21 [Debug] buildFile / takeWhileInclusive / fsxContent: let rec    │

│ closure0 () () : int32 =                                                     │

│     let v0 : string = "test"                                                 │

│     System.Console.WriteLine v0                                              │

│     0                                                                        │

│ let v0 : (unit -> int32) = closure0()                                        │

│ ()                                                                           │

│  / errors: [] / typeErrorCount: 0                                            │

│ 00:00:04 #22 [Debug] watchWithFilter / Disposing watch stream / filter:      │

│ FileName, LastWrite                                                          │

│ 00:00:06 #23 [Debug] runWithTimeoutChildAsync / timeout: 2000                │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── pwsh ────────────────────────────────────────────────────────────────────────

dotnet fable --optimize --lang rs --extension .rs



╭─[ 2.98s - stdout ]───────────────────────────────────────────────────────────╮

│ Fable 4.14.0: F# to Rust compiler (status: alpha)                            │

│                                                                              │

│ Thanks to the contributor! @Booksbaum                                        │

│ Stand with Ukraine! https://standwithukraine.com.ua/                         │

│                                                                              │

│ Parsing test.fsproj...                                                       │

│ Retrieving project options from cache, in case of issues run `dotnet fable   │

│ clean` or try `--noCache` option.                                            │

│ Project and references (1 source files) parsed in 180ms                      │

│                                                                              │

│ Started Fable compilation...                                                 │

│                                                                              │

│ Fable compilation finished in 1348ms                                         │

│                                                                              │

│ .\test.fsx(6,0): (6,2) warning FABLE: For Rust, support for F# static and    │

│ module do bindings is disabled by default. It can be enabled with the        │

│ 'static_do_bindings' feature. Use at your own risk!                          │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── pwsh ────────────────────────────────────────────────────────────────────────

(Get-Content test.rs) `

    -replace [[regex]]::Escape("),);"), "));" `

| Set-Content test.rs



── pwsh ────────────────────────────────────────────────────────────────────────

cargo fmt --



── pwsh ────────────────────────────────────────────────────────────────────────

cargo build --release



╭─[ 9.60s - stdout ]───────────────────────────────────────────────────────────╮

│    Compiling spiral_temp_test v0.0.1                                    │

│ (C:\home\git\polyglot\apps\spiral\temp\test)                               │

│ warning: the item `any` is imported redundantly                       │

│   --> apps\spiral\temp\test\./main.rs:11:27                           │

│    |                                                                  │

│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │

│    |                           ^^^                                    │

│ 12 | use proptest::prelude::*;                                        │

│    |     -------------------- the item `any` is already imported here │

│    |                                                                  │

│    = note: `#[warn(unused_imports)]` on by default                    │

│                                                                       │

│ warning: the item `Arbitrary` is imported redundantly                 │

│   --> apps\spiral\temp\test\./main.rs:11:32                           │

│    |                                                                  │

│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │

│    |                                ^^^^^^^^^                         │

│ 12 | use proptest::prelude::*;                                        │

│    |     -------------------- the item `Arbitrary` is already imported  │

│ here                                                                       │

│                                                                       │

│ warning: unused import: `info`                                        │

│    --> apps\spiral\temp\test\./main.rs:190:15                         │

│     |                                                                 │

│ 190 | use tracing::{info, Level};                                     │

│     |               ^^^^                                              │

│                                                                       │

│ warning: associated items `new`, `add_item`, and `remove_item` are      │

│ never used                                                                 │

│   --> apps\spiral\temp\test\./main.rs:46:8                            │

│    |                                                                  │

│ 45 | impl Cart {                                                      │

│    | --------- associated items in this implementation                │

│ 46 |     fn new() -> Cart {                                           │

│    |        ^^^                                                       │

│ ...                                                                   │

│ 50 |     fn add_item(&mut self, item: Item) {                         │

│    |        ^^^^^^^^                                                  │

│ ...                                                                   │

│ 56 |     fn remove_item(&mut self, item: &Item) {                     │

│    |        ^^^^^^^^^^^                                               │

│    |                                                                  │

│    = note: `#[warn(dead_code)]` on by default                         │

│                                                                       │

│ warning: function `parse_comment` is never used                       │

│    --> apps\spiral\temp\test\./main.rs:124:4                          │

│     |                                                                 │

│ 124 | fn parse_comment(input: &str) -> IResult<&str, SpiralToken> {   │

│     |    ^^^^^^^^^^^^^                                                │

│                                                                       │

│ warning: function `parse_string` is never used                        │

│    --> apps\spiral\temp\test\./main.rs:130:4                          │

│     |                                                                 │

│ 130 | fn parse_string(input: &str) -> IResult<&str, SpiralToken> {    │

│     |    ^^^^^^^^^^^^                                                 │

│                                                                       │

│ warning: function `parse_identifier` is never used                    │

│    --> apps\spiral\temp\test\./main.rs:145:4                          │

│     |                                                                 │

│ 145 | fn parse_identifier(input: &str) -> IResult<&str, SpiralToken> {[  │

│ 0m                                                                           │

│     |    ^^^^^^^^^^^^^^^^                                             │

│                                                                       │

│ warning: function `parse_integer` is never used                       │

│    --> apps\spiral\temp\test\./main.rs:157:4                          │

│     |                                                                 │

│ 157 | fn parse_integer(input: &str) -> IResult<&str, SpiralToken> {   │

│     |    ^^^^^^^^^^^^^                                                │

│                                                                       │

│ warning: function `parse_operator` is never used                      │

│    --> apps\spiral\temp\test\./main.rs:165:4                          │

│     |                                                                 │

│ 165 | fn parse_operator(input: &str) -> IResult<&str, SpiralToken> {  │

│     |    ^^^^^^^^^^^^^^                                               │

│                                                                       │

│ warning: function `parse_token` is never used                         │

│    --> apps\spiral\temp\test\./main.rs:170:4                          │

│     |                                                                 │

│ 170 | fn parse_token(input: &str) -> IResult<&str, SpiralToken> {     │

│     |    ^^^^^^^^^^^                                                  │

│                                                                       │

│ warning: function `format_token` is never used                        │

│    --> apps\spiral\temp\test\./main.rs:180:4                          │

│     |                                                                 │

│ 180 | fn format_token(token: &SpiralToken) -> String {                │

│     |    ^^^^^^^^^^^^                                                 │

│                                                                       │

│ warning: function `parse_expression` is never used                    │

│    --> apps\spiral\temp\test\./main.rs:213:4                          │

│     |                                                                 │

│ 213 | fn parse_expression(input: &str) -> IResult<&str, SpiralToken> {[  │

│ 0m                                                                           │

│     |    ^^^^^^^^^^^^^^^^                                             │

│                                                                       │

│ warning: `spiral_temp_test` (bin "spiral_temp_test") generated 12       │

│ warnings (run `cargo fix --bin "spiral_temp_test"` to apply 1 suggestion)  │

│     Finished `release` profile [optimized] target(s) in 9.40s         │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── pwsh ────────────────────────────────────────────────────────────────────────

$env:RUST_LOG="info"

{ cargo test --release } | Invoke-Block



╭─[ 26.62s - stdout ]──────────────────────────────────────────────────────────╮

│    Compiling spiral_temp_test v0.0.1                                    │

│ (C:\home\git\polyglot\apps\spiral\temp\test)                               │

│ warning: the item `any` is imported redundantly                       │

│   --> apps\spiral\temp\test\./main.rs:11:27                           │

│    |                                                                  │

│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │

│    |                           ^^^                                    │

│ 12 | use proptest::prelude::*;                                        │

│    |     -------------------- the item `any` is already imported here │

│    |                                                                  │

│    = note: `#[warn(unused_imports)]` on by default                    │

│                                                                       │

│ warning: the item `Arbitrary` is imported redundantly                 │

│   --> apps\spiral\temp\test\./main.rs:11:32                           │

│    |                                                                  │

│ 11 | use proptest::arbitrary::{any, Arbitrary};                       │

│    |                                ^^^^^^^^^                         │

│ 12 | use proptest::prelude::*;                                        │

│    |     -------------------- the item `Arbitrary` is already imported  │

│ here                                                                       │

│                                                                       │

│ warning: `spiral_temp_test` (bin "spiral_temp_test" test) generated 2   │

│ warnings                                                                   │

│     Finished `release` profile [optimized] target(s) in 26.04s        │

│      Running unittests main.rs                                          │

│ (C:\home\git\polyglot\target\release\deps\spiral_temp_test-158aaeb333edb33d. │

│ exe)                                                                       │

│                                                                              │

│ running 3 tests                                                              │

│ test test_parse_number ... ok                                                │

│ 2024-04-04T17:19:58.267385Z  INFO spiral_temp_test:         │

│ input=Comment("?;nE")                                                        │

│ 2024-04-04T17:19:58.267534Z  INFO spiral_temp_test:         │

│ input=Comment("ED")                                                          │

│ 2024-04-04T17:19:58.267693Z  INFO spiral_temp_test:         │

│ input=Comment("\"N&%!J4Ti*{fi-S?M!;3$Yl&`.yu2 ]\\")                          │

│ 2024-04-04T17:19:58.267820Z  INFO spiral_temp_test:         │

│ input=Comment("a1*[:z<pw?  mU/")                                             │

│ 2024-04-04T17:19:58.267939Z  INFO spiral_temp_test:         │

│ input=Comment(":.KYV&:6")                                                    │

│ 2024-04-04T17:19:58.268028Z  INFO spiral_temp_test:         │

│ input=Integer(-4713017204576665313)                                          │

│ 2024-04-04T17:19:58.268151Z  INFO spiral_temp_test:         │

│ input=StringLiteral("$.4:{,|j%4")                                            │

│ 2024-04-04T17:19:58.268237Z  INFO spiral_temp_test:         │

│ input=StringLiteral(".>R9")                                                  │

│ 2024-04-04T17:19:58.268292Z  INFO spiral_temp_test:         │

│ input=Identifier("VvV3BCmFv")                                                │

│ 2024-04-04T17:19:58.268373Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.268462Z  INFO spiral_temp_test:         │

│ input=Comment("\\p)7A{7<F}mCd`X|u*Cx (*=y.&")                                │

│ 2024-04-04T17:19:58.268531Z  INFO spiral_temp_test:         │

│ input=Operator("(")                                                          │

│ 2024-04-04T17:19:58.268642Z  INFO spiral_temp_test:         │

│ input=Identifier("y4rqz4Fl0YmF6PAdNU0bCJVa5UFBI42V")                         │

│ 2024-04-04T17:19:58.268744Z  INFO spiral_temp_test:         │

│ input=StringLiteral("3D$W`o_h?f)[$oH")                                       │

│ 2024-04-04T17:19:58.268800Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.268876Z  INFO spiral_temp_test:         │

│ input=Identifier("LnUV46W9e6xNuWp")                                          │

│ 2024-04-04T17:19:58.268933Z  INFO spiral_temp_test:         │

│ input=Operator("/")                                                          │

│ 2024-04-04T17:19:58.268974Z  INFO spiral_temp_test:         │

│ input=Comment("n:*w%y$(s-'$5.<4")                                            │

│ 2024-04-04T17:19:58.269036Z  INFO spiral_temp_test:         │

│ input=Comment("=\\M&xm>J'V):7$\\")                                           │

│ 2024-04-04T17:19:58.269118Z  INFO spiral_temp_test:         │

│ input=Comment("\\:{/g#/U1Tf)2\\iij[;b<S49t=3/Ki/")                           │

│ 2024-04-04T17:19:58.269170Z  INFO spiral_temp_test:         │

│ input=StringLiteral("")                                                      │

│ 2024-04-04T17:19:58.269249Z  INFO spiral_temp_test:         │

│ input=StringLiteral("f?Mv`?KEYZm9'~2z>K&7nr*2?.{*")                          │

│ 2024-04-04T17:19:58.269309Z  INFO spiral_temp_test:         │

│ input=Integer(144353112994366104)                                            │

│ 2024-04-04T17:19:58.269355Z  INFO spiral_temp_test:         │

│ input=Integer(-1836684322403332084)                                          │

│ 2024-04-04T17:19:58.269404Z  INFO spiral_temp_test:         │

│ input=StringLiteral("")                                                      │

│ 2024-04-04T17:19:58.269457Z  INFO spiral_temp_test:         │

│ input=Operator("/")                                                          │

│ 2024-04-04T17:19:58.269510Z  INFO spiral_temp_test:         │

│ input=Operator("+")                                                          │

│ 2024-04-04T17:19:58.269623Z  INFO spiral_temp_test:         │

│ input=Identifier("cL9wwOHlDBe2QipO7")                                        │

│ 2024-04-04T17:19:58.269676Z  INFO spiral_temp_test:         │

│ input=Comment("\\1{")                                                        │

│ 2024-04-04T17:19:58.269736Z  INFO spiral_temp_test:         │

│ input=Integer(-4269134435857107369)                                          │

│ 2024-04-04T17:19:58.269846Z  INFO spiral_temp_test:         │

│ input=StringLiteral("mPCJ.U({|'C7/w#]qD%>$u<|n")                             │

│ 2024-04-04T17:19:58.270011Z  INFO spiral_temp_test:         │

│ input=StringLiteral("{|:,@Y$C0P&Av{$NC:iL/")                                 │

│ 2024-04-04T17:19:58.270073Z  INFO spiral_temp_test:         │

│ input=StringLiteral("D'h:V/xGLH|Qct*5$==*o$*E{6~$")                          │

│ 2024-04-04T17:19:58.270126Z  INFO spiral_temp_test:         │

│ input=Comment("*f]/t\\%'lGi~1))")                                            │

│ 2024-04-04T17:19:58.270157Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.270199Z  INFO spiral_temp_test:         │

│ input=Identifier("m0u3mESxp1DE4jcpj6vSZbQ7joDlJ1IL")                         │

│ 2024-04-04T17:19:58.270234Z  INFO spiral_temp_test:         │

│ input=StringLiteral(":171")                                                  │

│ 2024-04-04T17:19:58.270269Z  INFO spiral_temp_test:         │

│ input=StringLiteral("k^`+)*H4sE{/!{.B{^3`")                                  │

│ 2024-04-04T17:19:58.270301Z  INFO spiral_temp_test:         │

│ input=Identifier("Yl")                                                       │

│ 2024-04-04T17:19:58.270333Z  INFO spiral_temp_test:         │

│ input=StringLiteral("=*kP7W/bcm&'x")                                         │

│ 2024-04-04T17:19:58.270368Z  INFO spiral_temp_test:         │

│ input=StringLiteral("x!K[*KG.``")                                            │

│ 2024-04-04T17:19:58.270405Z  INFO spiral_temp_test:         │

│ input=Identifier("bW56QeygJS2LR8e")                                          │

│ 2024-04-04T17:19:58.270440Z  INFO spiral_temp_test:         │

│ input=Identifier("mGiM0uRzq780583AMYvx")                                     │

│ 2024-04-04T17:19:58.270467Z  INFO spiral_temp_test:         │

│ input=Integer(8317233032256224301)                                           │

│ 2024-04-04T17:19:58.270493Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.270517Z  INFO spiral_temp_test:         │

│ input=Integer(-6990682948903733351)                                          │

│ 2024-04-04T17:19:58.270554Z  INFO spiral_temp_test:         │

│ input=Comment("J:5/~`*oZ")                                                   │

│ 2024-04-04T17:19:58.270599Z  INFO spiral_temp_test:         │

│ input=Operator("(")                                                          │

│ 2024-04-04T17:19:58.270621Z  INFO spiral_temp_test:         │

│ input=Integer(5778035148811269019)                                           │

│ 2024-04-04T17:19:58.270645Z  INFO spiral_temp_test:         │

│ input=Integer(4085351263825482195)                                           │

│ 2024-04-04T17:19:58.270668Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.270704Z  INFO spiral_temp_test:         │

│ input=StringLiteral("E{9mCA(X*//!<%?`b{&")                                   │

│ 2024-04-04T17:19:58.270741Z  INFO spiral_temp_test:         │

│ input=Comment("\"4I]r^@&\\G*}a=3l\\")                                        │

│ 2024-04-04T17:19:58.270770Z  INFO spiral_temp_test:         │

│ input=Integer(-5354834640614876643)                                          │

│ 2024-04-04T17:19:58.270800Z  INFO spiral_temp_test:         │

│ input=Identifier("Hm790H6Ru959r")                                            │

│ 2024-04-04T17:19:58.270848Z  INFO spiral_temp_test:         │

│ input=StringLiteral("'^|`!2#'A/}@Odth2:*{")                                  │

│ 2024-04-04T17:19:58.270879Z  INFO spiral_temp_test:         │

│ input=Comment("")                                                            │

│ 2024-04-04T17:19:58.270923Z  INFO spiral_temp_test:         │

│ input=StringLiteral("/NV%?5iqE.u4%&?fb7R(c#.")                               │

│ 2024-04-04T17:19:58.270953Z  INFO spiral_temp_test:         │

│ input=Integer(-8493106872949198990)                                          │

│ 2024-04-04T17:19:58.270979Z  INFO spiral_temp_test:         │

│ input=Identifier("ISr3hENM")                                                 │

│ 2024-04-04T17:19:58.271010Z  INFO spiral_temp_test:         │

│ input=Identifier("Ryo9DL6PKGk9348H")                                         │

│ 2024-04-04T17:19:58.271041Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.271065Z  INFO spiral_temp_test:         │

│ input=Identifier("e35")                                                      │

│ 2024-04-04T17:19:58.271096Z  INFO spiral_temp_test:         │

│ input=Identifier("BXevIK311tmcI")                                            │

│ 2024-04-04T17:19:58.271132Z  INFO spiral_temp_test:         │

│ input=Integer(4853663868325849369)                                           │

│ 2024-04-04T17:19:58.271153Z  INFO spiral_temp_test:         │

│ input=Integer(4350738043832246831)                                           │

│ 2024-04-04T17:19:58.271177Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.271207Z  INFO spiral_temp_test:         │

│ input=Identifier("KIfF3p0diWd4tvo6")                                         │

│ 2024-04-04T17:19:58.271240Z  INFO spiral_temp_test:         │

│ input=StringLiteral("&`/2y;O=<'q")                                           │

│ 2024-04-04T17:19:58.271284Z  INFO spiral_temp_test:         │

│ input=StringLiteral("c)dd==*3aru?89'%{1 VysG<Ajfr./")                        │

│ 2024-04-04T17:19:58.271325Z  INFO spiral_temp_test:         │

│ input=Identifier("b16z5gEEYc1evt2dEf")                                       │

│ 2024-04-04T17:19:58.271347Z  INFO spiral_temp_test:         │

│ input=Integer(-1202093178682963215)                                          │

│ 2024-04-04T17:19:58.271376Z  INFO spiral_temp_test:         │

│ input=Operator("(")                                                          │

│ 2024-04-04T17:19:58.271404Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.271427Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.271459Z  INFO spiral_temp_test:         │

│ input=Identifier("dku9eDJw26vC6UN")                                          │

│ 2024-04-04T17:19:58.271489Z  INFO spiral_temp_test:         │

│ input=Identifier("lUfUkhOA7S7")                                              │

│ 2024-04-04T17:19:58.271512Z  INFO spiral_temp_test:         │

│ input=Integer(-318790582418021167)                                           │

│ 2024-04-04T17:19:58.271538Z  INFO spiral_temp_test:         │

│ input=Comment("9iu`{U%")                                                     │

│ 2024-04-04T17:19:58.271569Z  INFO spiral_temp_test:         │

│ input=Identifier("M2h1Xyw34Lc")                                              │

│ 2024-04-04T17:19:58.271600Z  INFO spiral_temp_test:         │

│ input=Identifier("A")                                                        │

│ 2024-04-04T17:19:58.271675Z  INFO spiral_temp_test:         │

│ input=Comment("<{Y?z={Y*XZD>?pv_]$`[j}")                                     │

│ 2024-04-04T17:19:58.271761Z  INFO spiral_temp_test:         │

│ input=Comment("uBi\"\\GjCNk{;#<\\/%%'0*k]<PM68,(")                           │

│ 2024-04-04T17:19:58.271847Z  INFO spiral_temp_test:         │

│ input=Comment("RD5m\"V?%?lHw@.?8:3{Xy%3%{/b!a|")                             │

│ 2024-04-04T17:19:58.271986Z  INFO spiral_temp_test:         │

│ input=Integer(-8316999611564427708)                                          │

│ 2024-04-04T17:19:58.272045Z  INFO spiral_temp_test:         │

│ input=Comment(".b'X\\")                                                      │

│ 2024-04-04T17:19:58.272078Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.272111Z  INFO spiral_temp_test:         │

│ input=StringLiteral("G'`kG=q{S=")                                            │

│ 2024-04-04T17:19:58.272136Z  INFO spiral_temp_test:         │

│ input=Integer(7880419271674581356)                                           │

│ 2024-04-04T17:19:58.272172Z  INFO spiral_temp_test:         │

│ input=Identifier("KSU3x89q4U4pj81MzAwCkecH")                                 │

│ 2024-04-04T17:19:58.272222Z  INFO spiral_temp_test:         │

│ input=StringLiteral("=<kG;?gw`P0bvKx':}U.eo/Q?%-dhu{")                       │

│ 2024-04-04T17:19:58.272294Z  INFO spiral_temp_test:         │

│ input=Identifier("CqK0ljEx742V01bIAdNVxMb6C1sJg0ypi")                        │

│ 2024-04-04T17:19:58.272387Z  INFO spiral_temp_test:         │

│ input=Comment("^%^&F/< ?iwuRg6\\]jTl9=&mj1{/lRS")                            │

│ 2024-04-04T17:19:58.272455Z  INFO spiral_temp_test:         │

│ input=Comment("7$=?%l'E$Zv\\|<QvY:\"cI&|C\"t(<")                             │

│ 2024-04-04T17:19:58.272493Z  INFO spiral_temp_test:         │

│ input=Identifier("buTJXdc")                                                  │

│ 2024-04-04T17:19:58.272531Z  INFO spiral_temp_test:         │

│ input=Identifier("G6iXV7xWZC2mybw0klXr1hn")                                  │

│ 2024-04-04T17:19:58.272572Z  INFO spiral_temp_test:         │

│ input=Comment("&'P,$*$VNM{K]\"u;{D?14(")                                     │

│ 2024-04-04T17:19:58.272596Z  INFO spiral_temp_test:         │

│ input=Integer(8213759033869778408)                                           │

│ 2024-04-04T17:19:58.272620Z  INFO spiral_temp_test:         │

│ input=Integer(79051734650364599)                                             │

│ 2024-04-04T17:19:58.272659Z  INFO spiral_temp_test:         │

│ input=Identifier("QE1KNbC1GrEHBXyCSBb7j9uN1")                                │

│ 2024-04-04T17:19:58.272695Z  INFO spiral_temp_test:         │

│ input=Integer(-1308926090789700353)                                          │

│ 2024-04-04T17:19:58.272736Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.272765Z  INFO spiral_temp_test:         │

│ input=Identifier("L3d0Ksy")                                                  │

│ 2024-04-04T17:19:58.272790Z  INFO spiral_temp_test:         │

│ input=Integer(8010486734515566227)                                           │

│ 2024-04-04T17:19:58.272821Z  INFO spiral_temp_test:         │

│ input=StringLiteral("Q{9)'^N{&H4")                                           │

│ 2024-04-04T17:19:58.272856Z  INFO spiral_temp_test:         │

│ input=Identifier("kLd2RhT0Sd47qr6f0")                                        │

│ 2024-04-04T17:19:58.272904Z  INFO spiral_temp_test:         │

│ input=Comment("$G%?#{s|\\-6`ZSIM9(`0$*;bnnC2(?-")                            │

│ 2024-04-04T17:19:58.272938Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.272985Z  INFO spiral_temp_test:         │

│ input=Identifier("G9")                                                       │

│ 2024-04-04T17:19:58.273031Z  INFO spiral_temp_test:         │

│ input=Integer(1337682730836554522)                                           │

│ 2024-04-04T17:19:58.273063Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.273109Z  INFO spiral_temp_test:         │

│ input=Comment("<=\"V?5`t3{@EH:W%{")                                          │

│ 2024-04-04T17:19:58.273144Z  INFO spiral_temp_test:         │

│ input=StringLiteral("8e[")                                                   │

│ 2024-04-04T17:19:58.273173Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.273198Z  INFO spiral_temp_test:         │

│ input=Integer(3689505208336194087)                                           │

│ 2024-04-04T17:19:58.273222Z  INFO spiral_temp_test:         │

│ input=Identifier("F2DiCJ")                                                   │

│ 2024-04-04T17:19:58.273255Z  INFO spiral_temp_test:         │

│ input=StringLiteral("Q`?1&vINX p")                                           │

│ 2024-04-04T17:19:58.273309Z  INFO spiral_temp_test:         │

│ input=Comment("'(y'//8*mD*+XHZ$O${5D`9+:")                                   │

│ 2024-04-04T17:19:58.273338Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.273362Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.273387Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.273516Z  INFO spiral_temp_test:         │

│ input=Identifier("U4Fvu3sk1y8Ltp")                                           │

│ 2024-04-04T17:19:58.273609Z  INFO spiral_temp_test:         │

│ input=Comment("JG*UCmt$/V`nHqT<`k={j,^!!")                                   │

│ 2024-04-04T17:19:58.273680Z  INFO spiral_temp_test:         │

│ input=StringLiteral("WJv/.N4!{ZU.+ -Y^a]*&E")                                │

│ 2024-04-04T17:19:58.273734Z  INFO spiral_temp_test:         │

│ input=Operator("(")                                                          │

│ 2024-04-04T17:19:58.273823Z  INFO spiral_temp_test:         │

│ input=Identifier("C2uvbBlc3ocNySP240Kd56b4g34")                              │

│ 2024-04-04T17:19:58.273872Z  INFO spiral_temp_test:         │

│ input=StringLiteral("rq")                                                    │

│ 2024-04-04T17:19:58.273919Z  INFO spiral_temp_test:         │

│ input=Operator("(")                                                          │

│ 2024-04-04T17:19:58.273984Z  INFO spiral_temp_test:         │

│ input=Comment("b Pnr?|/fHB`'f*-v @]7\"g9D;^.?`")                             │

│ 2024-04-04T17:19:58.274035Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.274072Z  INFO spiral_temp_test:         │

│ input=Integer(3195263678113176776)                                           │

│ 2024-04-04T17:19:58.274151Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.274236Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.274309Z  INFO spiral_temp_test:         │

│ input=StringLiteral("G&$&0&B/Zf`KO&}0L*P^#=k")                               │

│ 2024-04-04T17:19:58.274361Z  INFO spiral_temp_test:         │

│ input=Operator("(")                                                          │

│ 2024-04-04T17:19:58.274394Z  INFO spiral_temp_test:         │

│ input=Integer(-4443410224289918731)                                          │

│ 2024-04-04T17:19:58.274436Z  INFO spiral_temp_test:         │

│ input=Comment("v")                                                           │

│ 2024-04-04T17:19:58.274472Z  INFO spiral_temp_test:         │

│ input=Integer(-2661511372775899016)                                          │

│ 2024-04-04T17:19:58.274504Z  INFO spiral_temp_test:         │

│ input=Integer(-476855027108842306)                                           │

│ 2024-04-04T17:19:58.274577Z  INFO spiral_temp_test:         │

│ input=Identifier("gpO93MCY00a6QII2d4QW")                                     │

│ 2024-04-04T17:19:58.274629Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.274678Z  INFO spiral_temp_test:         │

│ input=Identifier("yUHd7")                                                    │

│ 2024-04-04T17:19:58.274741Z  INFO spiral_temp_test:         │

│ input=StringLiteral(":?Axr?t?7.5Y5=['v.`zA'zj9|%:")                          │

│ 2024-04-04T17:19:58.274810Z  INFO spiral_temp_test:         │

│ input=Comment("G=+'s `<W0rC?\"<Xp\\Q%/j7'<{]")                               │

│ 2024-04-04T17:19:58.274860Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.274907Z  INFO spiral_temp_test:         │

│ input=StringLiteral("*i`[Xt/y")                                              │

│ 2024-04-04T17:19:58.274943Z  INFO spiral_temp_test:         │

│ input=Operator("-")                                                          │

│ 2024-04-04T17:19:58.274991Z  INFO spiral_temp_test:         │

│ input=Identifier("uNRInr8O86LzjNM0T")                                        │

│ 2024-04-04T17:19:58.275056Z  INFO spiral_temp_test:         │

│ input=Integer(-3771932009515951850)                                          │

│ 2024-04-04T17:19:58.275107Z  INFO spiral_temp_test:         │

│ input=StringLiteral("{2pu<u73{9:3")                                          │

│ 2024-04-04T17:19:58.275147Z  INFO spiral_temp_test:         │

│ input=Identifier("wW")                                                       │

│ 2024-04-04T17:19:58.275195Z  INFO spiral_temp_test:         │

│ input=StringLiteral("E0<)N@[}*@pN'0Ep ")                                     │

│ 2024-04-04T17:19:58.275257Z  INFO spiral_temp_test:         │

│ input=StringLiteral("2I%8`S/igX:gMwp+A0*8")                                  │

│ 2024-04-04T17:19:58.275306Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.275350Z  INFO spiral_temp_test:         │

│ input=StringLiteral("+[`2U1=!=W")                                            │

│ 2024-04-04T17:19:58.275414Z  INFO spiral_temp_test:         │

│ input=Integer(-7780597989064602641)                                          │

│ 2024-04-04T17:19:58.275460Z  INFO spiral_temp_test:         │

│ input=Identifier("h0neKd15LvR6")                                             │

│ 2024-04-04T17:19:58.275499Z  INFO spiral_temp_test:         │

│ input=Identifier("qE6pN74")                                                  │

│ 2024-04-04T17:19:58.275551Z  INFO spiral_temp_test:         │

│ input=Comment("=H]6=P``?Q\"dxo%")                                            │

│ 2024-04-04T17:19:58.275596Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.275632Z  INFO spiral_temp_test:         │

│ input=Identifier("tDe9u")                                                    │

│ 2024-04-04T17:19:58.275670Z  INFO spiral_temp_test:         │

│ input=Operator("/")                                                          │

│ 2024-04-04T17:19:58.275699Z  INFO spiral_temp_test:         │

│ input=Integer(4828692806087505782)                                           │

│ 2024-04-04T17:19:58.275752Z  INFO spiral_temp_test:         │

│ input=Identifier("v433qe934uSm8OBBf5Q09WzNOW")                               │

│ 2024-04-04T17:19:58.275790Z  INFO spiral_temp_test:         │

│ input=Integer(-7843140852326524297)                                          │

│ 2024-04-04T17:19:58.275831Z  INFO spiral_temp_test:         │

│ input=Identifier("R9fYZbIh2m")                                               │

│ 2024-04-04T17:19:58.275892Z  INFO spiral_temp_test:         │

│ input=Identifier("F0tRuLgn3vdNJJHl2vctaW6WO")                                │

│ 2024-04-04T17:19:58.275962Z  INFO spiral_temp_test:         │

│ input=Comment("&l;?$1Ta.]J4?w@i%/<U7H\\^}")                                  │

│ 2024-04-04T17:19:58.276041Z  INFO spiral_temp_test:         │

│ input=StringLiteral("(~g7~/rIF={")                                           │

│ 2024-04-04T17:19:58.276106Z  INFO spiral_temp_test:         │

│ input=Identifier("neUwrNG1zhcJ6A8JBR9htN")                                   │

│ 2024-04-04T17:19:58.276148Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.276238Z  INFO spiral_temp_test:         │

│ input=Comment("B?%X='K?\\C>")                                                │

│ 2024-04-04T17:19:58.276372Z  INFO spiral_temp_test:         │

│ input=Comment("Xjz{.=\\Bb?#6(7Qf'mp\\H?)*&*+")                               │

│ 2024-04-04T17:19:58.276457Z  INFO spiral_temp_test:         │

│ input=Operator("+")                                                          │

│ 2024-04-04T17:19:58.276524Z  INFO spiral_temp_test:         │

│ input=Identifier("dq36l0NGCXBHOkrH")                                         │

│ 2024-04-04T17:19:58.276581Z  INFO spiral_temp_test:         │

│ input=Identifier("mx609u")                                                   │

│ 2024-04-04T17:19:58.276638Z  INFO spiral_temp_test:         │

│ input=StringLiteral("")                                                      │

│ 2024-04-04T17:19:58.276745Z  INFO spiral_temp_test:         │

│ input=StringLiteral(":{*?<w'jXG:ma:d$/#{I1:B`{c{'{I:")                       │

│ 2024-04-04T17:19:58.276830Z  INFO spiral_temp_test:         │

│ input=Identifier("Y2jXh5ewCIco0njlj945dXo6TUg55x2D")                         │

│ 2024-04-04T17:19:58.276879Z  INFO spiral_temp_test:         │

│ input=Integer(-3792265104339480017)                                          │

│ 2024-04-04T17:19:58.276939Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.276989Z  INFO spiral_temp_test:         │

│ input=Integer(-9195016882307711505)                                          │

│ 2024-04-04T17:19:58.277037Z  INFO spiral_temp_test:         │

│ input=StringLiteral("iIoj'8:qJ")                                             │

│ 2024-04-04T17:19:58.277083Z  INFO spiral_temp_test:         │

│ input=StringLiteral("p")                                                     │

│ 2024-04-04T17:19:58.277191Z  INFO spiral_temp_test:         │

│ input=Identifier("VIg9c6oksW3x")                                             │

│ 2024-04-04T17:19:58.277256Z  INFO spiral_temp_test:         │

│ input=Identifier("Qk2vfAH23bqm7")                                            │

│ 2024-04-04T17:19:58.277302Z  INFO spiral_temp_test:         │

│ input=Integer(-3545987548372945467)                                          │

│ 2024-04-04T17:19:58.277378Z  INFO spiral_temp_test:         │

│ input=Identifier("asaMxc093c5Nmp946JMjj7TLJ")                                │

│ 2024-04-04T17:19:58.277448Z  INFO spiral_temp_test:         │

│ input=Identifier("P4VK2axgv3Gag5qCzFgIP1")                                   │

│ 2024-04-04T17:19:58.277497Z  INFO spiral_temp_test:         │

│ input=Identifier("V")                                                        │

│ 2024-04-04T17:19:58.277588Z  INFO spiral_temp_test:         │

│ input=Comment("[U!An^KN3E*5#Bo:B*&^l*D%a%'D$")                               │

│ 2024-04-04T17:19:58.277643Z  INFO spiral_temp_test:         │

│ input=Integer(8176117705665431521)                                           │

│ 2024-04-04T17:19:58.277774Z  INFO spiral_temp_test:         │

│ input=Integer(-5542947333977521551)                                          │

│ 2024-04-04T17:19:58.277852Z  INFO spiral_temp_test:         │

│ input=Integer(7355526287246059500)                                           │

│ 2024-04-04T17:19:58.277902Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.277987Z  INFO spiral_temp_test:         │

│ input=Comment("eU/ng5bm>\":r%aGg%$D$Gi")                                     │

│ 2024-04-04T17:19:58.278093Z  INFO spiral_temp_test:         │

│ input=StringLiteral("W;")                                                    │

│ 2024-04-04T17:19:58.278188Z  INFO spiral_temp_test:         │

│ input=Identifier("CRk")                                                      │

│ 2024-04-04T17:19:58.278269Z  INFO spiral_temp_test:         │

│ input=StringLiteral("HT")                                                    │

│ 2024-04-04T17:19:58.278325Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.278405Z  INFO spiral_temp_test:         │

│ input=StringLiteral("<2i}5LuM}b:&9v:JeGBG")                                  │

│ 2024-04-04T17:19:58.278503Z  INFO spiral_temp_test:         │

│ input=StringLiteral(",xfd)e/{*.?M *(*q<'?C.Z`{v,hF")                         │

│ 2024-04-04T17:19:58.278614Z  INFO spiral_temp_test:         │

│ input=Integer(-6450845794335325893)                                          │

│ 2024-04-04T17:19:58.278724Z  INFO spiral_temp_test:         │

│ input=StringLiteral(".c8VfPX/`")                                             │

│ 2024-04-04T17:19:58.278783Z  INFO spiral_temp_test:         │

│ input=Integer(1379967787451054202)                                           │

│ 2024-04-04T17:19:58.278829Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.278882Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.278942Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.279049Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.279145Z  INFO spiral_temp_test:         │

│ input=StringLiteral("5~q`B:U%Sso{Te<P.3:aHhO8")                              │

│ 2024-04-04T17:19:58.279207Z  INFO spiral_temp_test:         │

│ input=Comment("o#[")                                                         │

│ 2024-04-04T17:19:58.279278Z  INFO spiral_temp_test:         │

│ input=Identifier("zSHHJ57Ga82FD4fD9o8rxF9")                                  │

│ 2024-04-04T17:19:58.279342Z  INFO spiral_temp_test:         │

│ input=StringLiteral("^b{o*wA|`~=")                                           │

│ 2024-04-04T17:19:58.279413Z  INFO spiral_temp_test:         │

│ input=StringLiteral("R,cW`")                                                 │

│ 2024-04-04T17:19:58.279456Z  INFO spiral_temp_test:         │

│ input=Integer(8878845034916764755)                                           │

│ 2024-04-04T17:19:58.279514Z  INFO spiral_temp_test:         │

│ input=StringLiteral("$nM")                                                   │

│ 2024-04-04T17:19:58.279565Z  INFO spiral_temp_test:         │

│ input=Integer(-3391257679886898488)                                          │

│ 2024-04-04T17:19:58.279616Z  INFO spiral_temp_test:         │

│ input=StringLiteral("{:%>%W")                                                │

│ 2024-04-04T17:19:58.279702Z  INFO spiral_temp_test:         │

│ input=Identifier("R7aFOkeX1x555zgF2IeUCZ25Oif6HpIHT")                        │

│ 2024-04-04T17:19:58.279755Z  INFO spiral_temp_test:         │

│ input=Integer(-2640456448521637901)                                          │

│ 2024-04-04T17:19:58.279837Z  INFO spiral_temp_test:         │

│ input=Identifier("KtJYqtP0H14UgSpf96vTkQDcdlpfNji5")                         │

│ 2024-04-04T17:19:58.279911Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.280004Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.280113Z  INFO spiral_temp_test:         │

│ input=Comment(":*Za2%(x{Xm*<WOu =1\\")                                       │

│ 2024-04-04T17:19:58.280162Z  INFO spiral_temp_test:         │

│ input=Integer(7157847848824944035)                                           │

│ 2024-04-04T17:19:58.280234Z  INFO spiral_temp_test:         │

│ input=Identifier("TfPSP04HIeF7Hupk7")                                        │

│ 2024-04-04T17:19:58.280289Z  INFO spiral_temp_test:         │

│ input=Operator("/")                                                          │

│ 2024-04-04T17:19:58.280340Z  INFO spiral_temp_test:         │

│ input=Integer(-9092383336196138666)                                          │

│ 2024-04-04T17:19:58.280390Z  INFO spiral_temp_test:         │

│ input=Integer(155638065846966855)                                            │

│ 2024-04-04T17:19:58.280445Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.280492Z  INFO spiral_temp_test:         │

│ input=Integer(2321797238434538428)                                           │

│ 2024-04-04T17:19:58.280567Z  INFO spiral_temp_test:         │

│ input=Comment("Q\\\\t_\"l2DDxCSpP0\"$:$/")                                   │

│ 2024-04-04T17:19:58.280654Z  INFO spiral_temp_test:         │

│ input=Identifier("PM7McH2D")                                                 │

│ 2024-04-04T17:19:58.280702Z  INFO spiral_temp_test:         │

│ input=Identifier("qRW")                                                      │

│ 2024-04-04T17:19:58.280782Z  INFO spiral_temp_test:         │

│ input=Identifier("OelPWX8324hEsuPawYbaZVp")                                  │

│ 2024-04-04T17:19:58.280849Z  INFO spiral_temp_test:         │

│ input=Operator("+")                                                          │

│ 2024-04-04T17:19:58.280945Z  INFO spiral_temp_test:         │

│ input=Integer(-5562085103657707075)                                          │

│ 2024-04-04T17:19:58.281047Z  INFO spiral_temp_test:         │

│ input=Identifier("KkIxF6k5MJgp")                                             │

│ 2024-04-04T17:19:58.281099Z  INFO spiral_temp_test:         │

│ input=Operator(")")                                                          │

│ 2024-04-04T17:19:58.281149Z  INFO spiral_temp_test:         │

│ input=Integer(5951760595459993253)                                           │

│ 2024-04-04T17:19:58.281207Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.281317Z  INFO spiral_temp_test:         │

│ input=Comment("}v1s/G-:*\\'9/`")                                             │

│ 2024-04-04T17:19:58.281400Z  INFO spiral_temp_test:         │

│ input=Comment("0:Jx&7Dk<!")                                                  │

│ 2024-04-04T17:19:58.281482Z  INFO spiral_temp_test:         │

│ input=Operator("*")                                                          │

│ 2024-04-04T17:19:58.281654Z  INFO spiral_temp_test:         │

│ input=Comment("3efU'.i6_")                                                   │

│ 2024-04-04T17:19:58.281730Z  INFO spiral_temp_test:         │

│ input=Identifier("Z5NVuPWxn0v2WQ8q5C2f2U1AnZz6f")                            │

│ 2024-04-04T17:19:58.281784Z  INFO spiral_temp_test:         │

│ input=Integer(5678757571398169227)                                           │

│ 2024-04-04T17:19:58.281863Z  INFO spiral_temp_test:         │

│ input=Comment(".'=}q16/T[uH$/.~&\\0O`0.{# e'")                               │

│ 2024-04-04T17:19:58.281914Z  INFO spiral_temp_test:         │

│ input=Operator("/")                                                          │

│ 2024-04-04T17:19:58.281988Z  INFO spiral_temp_test:         │

│ input=Identifier("H34BZ3TPM3NhtBufGjpM6lQcTN4")                              │

│ 2024-04-04T17:19:58.282056Z  INFO spiral_temp_test:         │

│ input=StringLiteral("{:d=)F8;D`.z9[&SPB*&'%sL")                              │

│ 2024-04-04T17:19:58.282123Z  INFO spiral_temp_test:         │

│ input=Operator("=")                                                          │

│ 2024-04-04T17:19:58.282186Z  INFO spiral_temp_test:         │

│ input=Comment("X::O\"*/ /{hE")                                               │

│ 2024-04-04T17:19:58.282253Z  INFO spiral_temp_test:         │

│ input=Identifier("LkyJrrG00zMmJRTY1")                                        │

│ 2024-04-04T17:19:58.282350Z  INFO spiral_temp_test:         │

│ input=StringLiteral("pl*<^?5c<.Bg2+Lvfbk*[K$$d#h")                           │

│ 2024-04-04T17:19:58.282410Z  INFO spiral_temp_test:         │

│ input=Operator("/")                                                          │

│ test prop_parse_format_idempotent ... ok                                     │

│ test                                                                         │

│ adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... │

│ ok                                                                           │

│                                                                              │

│ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out;  │

│ finished in 0.18s                                                            │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── pwsh ────────────────────────────────────────────────────────────────────────

{ . $ScriptDir/../../../../target/release/spiral_temp_test$(GetExecutableSuffix)

} | Invoke-Block



╭─[ 87.88ms - stdout ]─────────────────────────────────────────────────────────╮

│ app=test                                                                     │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook build.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 364493 bytes to build.dib.html

In [ ]:
{ . "$ScriptDir/../apps/perf/build.ps1" } | Invoke-Block
00:00:00 #1 [Debug] runWithTimeoutChildAsync / timeout: 60

00:00:00 #2 [Debug] executeAsync / options: { Command =

   "dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = Some <fun:main@438-47> }

00:00:00 #3 [Verbose] > pwd: C:\home\git\polyglot\apps\perf

00:00:00 #4 [Verbose] > dll_path: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release

00:00:00 #5 [Verbose] > Starting the Spiral Server. It is bound to: http://localhost:13805

00:00:01 #6 [Debug] runWithTimeoutChildAsync / timeout: 500

00:00:01 #7 [Verbose] waitForPortAccess / port: 13805 / retry: 0

00:00:01 #8 [Debug] sendJson / port: 13805 / json: {"Ping":true} / result.Length:

00:00:01 #9 [Verbose] awaitCompiler / Ping / result: Some(null) / port: 13805 / retry: 0

00:00:01 #10 [Verbose] > Server bound to: http://localhost:13805

00:00:01 #11 [Debug] executeAsync / options: { Command = "pwsh -c "../../scripts/invoke-dib.ps1 Perf.dib""

  WorkingDirectory = None

  CancellationToken = Some System.Threading.CancellationToken

  OnLine = None }

00:00:04 #12 [Verbose] >

00:00:04 #13 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:04 #14 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:04 #15 [Verbose] > │ ## Perf (Polyglot)                                                           │

00:00:04 #16 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:04 #17 [Verbose] >

00:00:04 #18 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:04 #19 [Verbose] > // // test

00:00:04 #20 [Verbose] >

00:00:04 #21 [Verbose] > open testing

00:00:04 #22 [Verbose] > open benchmark

00:00:08 #23 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-0997-9741-9b0b5642ef02\main.spi

00:00:12 #24 [Verbose] >

00:00:12 #25 [Verbose] > ╭─[ 7.54s - stdout ]───────────────────────────────────────────────────────────╮

00:00:12 #26 [Verbose] > │ ()                                                                           │

00:00:12 #27 [Verbose] > │                                                                              │

00:00:12 #28 [Verbose] > │                                                                              │

00:00:12 #29 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:12 #30 [Verbose] >

00:00:12 #31 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:12 #32 [Verbose] > #!import ../../lib/spiral/common.fsx

00:00:12 #33 [Verbose] > #!import ../../lib/spiral/sm.fsx

00:00:12 #34 [Verbose] > #!import ../../lib/spiral/date_time.fsx

00:00:12 #35 [Verbose] > #!import ../../lib/spiral/file_system.fsx

00:00:12 #36 [Verbose] > #!import ../../lib/spiral/lib.fsx

00:00:12 #37 [Verbose] >

00:00:12 #38 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:12 #39 [Verbose] > #r

00:00:12 #40 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

00:00:12 #41 [Verbose] > spNetCore.Html.Abstractions.dll"

00:00:12 #42 [Verbose] > #r

00:00:12 #43 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:12 #44 [Verbose] > otNet.Interactive.dll"

00:00:12 #45 [Verbose] > #r

00:00:12 #46 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:12 #47 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:12 #48 [Verbose] > #r

00:00:12 #49 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:12 #50 [Verbose] > otNet.Interactive.Formatting.dll"

00:00:12 #51 [Verbose] > open System

00:00:12 #52 [Verbose] > open System.IO

00:00:12 #53 [Verbose] > open System.Text

00:00:12 #54 [Verbose] > open Microsoft.DotNet.Interactive.Formatting

00:00:14 #55 [Verbose] >

00:00:14 #56 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:14 #57 [Verbose] > #r

00:00:14 #58 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:14 #59 [Verbose] > otNet.Interactive.FSharp.dll"

00:00:14 #60 [Verbose] > open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

00:00:14 #61 [Verbose] > #r

00:00:14 #62 [Verbose] > "C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

00:00:14 #63 [Verbose] > otNet.Interactive.dll"

00:00:14 #64 [Verbose] > open type Microsoft.DotNet.Interactive.Kernel

00:00:14 #65 [Verbose] >

00:00:14 #66 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:14 #67 [Verbose] > type [[<Struct>]] US0 =

00:00:14 #68 [Verbose] >     | US0_0

00:00:14 #69 [Verbose] >     | US0_1

00:00:14 #70 [Verbose] >     | US0_2

00:00:14 #71 [Verbose] >     | US0_3

00:00:14 #72 [Verbose] > and [[<Struct>]] US1 =

00:00:14 #73 [Verbose] >     | US1_0 of f0_0 : US0

00:00:14 #74 [Verbose] >     | US1_1 of f1_0 : US0

00:00:14 #75 [Verbose] > and [[<Struct>]] US2 =

00:00:14 #76 [Verbose] >     | US2_0

00:00:14 #77 [Verbose] >     | US2_1

00:00:14 #78 [Verbose] > and [[<Struct>]] US3 =

00:00:14 #79 [Verbose] >     | US3_0 of f0_0 : US2

00:00:14 #80 [Verbose] >     | US3_1

00:00:14 #81 [Verbose] > let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

00:00:14 #82 [Verbose] >     let v1 : System.IDisposable option = None

00:00:14 #83 [Verbose] >     let mutable _v1 = v1

00:00:14 #84 [Verbose] >     #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

00:00:14 #85 [Verbose] >     let v2 : US0 = US0_0

00:00:14 #86 [Verbose] >     let v3 : US1 = US1_0(v2)

00:00:14 #87 [Verbose] >     let v4 : string = $"new_disposable / target: {v3}"

00:00:14 #88 [Verbose] >     let v5 : System.IDisposable = failwith<System.IDisposable> v4

00:00:14 #89 [Verbose] >     v5

00:00:14 #90 [Verbose] >     #endif

00:00:14 #91 [Verbose] >     #if FABLE_COMPILER_RUST && WASM

00:00:14 #92 [Verbose] >     let v6 : US0 = US0_2

00:00:14 #93 [Verbose] >     let v7 : US1 = US1_0(v6)

00:00:14 #94 [Verbose] >     let v8 : string = $"new_dispos...

00:00:15 #95 [Verbose] >

00:00:15 #96 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:15 #97 [Verbose] > type Mut0 = {mutable l0 : int32; mutable l1 : string}

00:00:15 #98 [Verbose] > and Mut1 = {mutable l0 : int32}

00:00:15 #99 [Verbose] > let rec closure1 (v0 : string) (v1 : string) : bool =

00:00:15 #100 [Verbose] >     let v2 : bool = v1.Contains v0

00:00:15 #101 [Verbose] >     v2

00:00:15 #102 [Verbose] > and closure0 () (v0 : string) : (string -> bool) =

00:00:15 #103 [Verbose] >     closure1(v0)

00:00:15 #104 [Verbose] > and closure3 (v0 : string) (v1 : string) : bool =

00:00:15 #105 [Verbose] >     let v2 : bool = v1.EndsWith v0

00:00:15 #106 [Verbose] >     v2

00:00:15 #107 [Verbose] > and closure2 () (v0 : string) : (string -> bool) =

00:00:15 #108 [Verbose] >     closure3(v0)

00:00:15 #109 [Verbose] > and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

00:00:15 #110 [Verbose] >     let v3 : string = v2.PadLeft (v0, v1)

00:00:15 #111 [Verbose] >     v3

00:00:15 #112 [Verbose] > and closure5 (v0 : int32) (v1 : char) : (string -> string) =

00:00:15 #113 [Verbose] >     closure6(v0, v1)

00:00:15 #114 [Verbose] > and closure4 () (v0 : int32) : (char -> (string -> string)) =

00:00:15 #115 [Verbose] >     closure5(v0)

00:00:15 #116 [Verbose] > and closure8 (v0 : int32) (v1 : string) : string =

00:00:15 #117 [Verbose] >     let v2 : stri...

00:00:16 #118 [Verbose] >

00:00:16 #119 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:16 #120 [Verbose] > let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

00:00:16 #121 [Verbose] >     let v2 : (System.Guid -> string) = _.ToString()

00:00:16 #122 [Verbose] >     let v3 : string = v2 v0

00:00:16 #123 [Verbose] >     let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

00:00:16 #124 [Verbose] >     let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

00:00:16 #125 [Verbose] >     v5

00:00:16 #126 [Verbose] > and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

00:00:16 #127 [Verbose] >     closure1(v0)

00:00:16 #128 [Verbose] > and closure5 (v0 : string, v1 : string) (v2 : string) : string =

00:00:16 #129 [Verbose] >     let v3 : string = v2.Replace (v0, v1)

00:00:16 #130 [Verbose] >     v3

00:00:16 #131 [Verbose] > and closure4 (v0 : string) (v1 : string) : (string -> string) =

00:00:16 #132 [Verbose] >     closure5(v0, v1)

00:00:16 #133 [Verbose] > and closure3 () (v0 : string) : (string -> (string -> string)) =

00:00:16 #134 [Verbose] >     closure4(v0)

00:00:16 #135 [Verbose] > and method0 () : (string -> (string -> (string -> string))) =

00:00:16 #136 [Verbose] >     closure3()

00:00:16 #137 [Verbose] > and closure2 (...

00:00:16 #138 [Verbose] >

00:00:16 #139 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:16 #140 [Verbose] > #if FABLE_COMPILER // file_system.types

00:00:16 #141 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

00:00:16 #142 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type

00:00:16 #143 [Verbose] > base64_DecodeError = class end

00:00:16 #144 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error

00:00:16 #145 [Verbose] > = class end

00:00:16 #146 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

00:00:16 #147 [Verbose] > = class end

00:00:16 #148 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type

00:00:16 #149 [Verbose] > serde_json_Error = class end

00:00:16 #150 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type

00:00:16 #151 [Verbose] > serde_json_Value = class end

00:00:16 #152 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type

00:00:16 #153 [Verbose] > serde_wasm_bindgen_Error = class end

00:00:16 #154 [Verbose] > [[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...

00:00:17 #155 [Verbose] >

00:00:17 #156 [Verbose] > ── fsharp - import ─────────────────────────────────────────────────────────────

00:00:17 #157 [Verbose] > #if !WASM && !CONTRACT && !FABLE_COMPILER

00:00:17 #158 [Verbose] > module SpiralDateTime =

00:00:17 #159 [Verbose] >     let format x =

00:00:17 #160 [Verbose] > #if !INTERACTIVE

00:00:17 #161 [Verbose] >         Date_time.format x

00:00:17 #162 [Verbose] > #else

00:00:17 #163 [Verbose] >         format x

00:00:17 #164 [Verbose] > #endif

00:00:17 #165 [Verbose] >

00:00:17 #166 [Verbose] >     let format_iso8601 x =

00:00:17 #167 [Verbose] > #if !INTERACTIVE

00:00:17 #168 [Verbose] >         Date_time.format_iso8601 x

00:00:17 #169 [Verbose] > #else

00:00:17 #170 [Verbose] >         format_iso8601 x

00:00:17 #171 [Verbose] > #endif

00:00:17 #172 [Verbose] >

00:00:17 #173 [Verbose] >     let new_guid_from_date_time x =

00:00:17 #174 [Verbose] > #if !INTERACTIVE

00:00:17 #175 [Verbose] >         Date_time.new_guid_from_date_time x

00:00:17 #176 [Verbose] > #else

00:00:17 #177 [Verbose] >         new_guid_from_date_time x

00:00:17 #178 [Verbose] > #endif

00:00:17 #179 [Verbose] >

00:00:17 #180 [Verbose] > #endif

00:00:17 #181 [Verbose] >

00:00:17 #182 [Verbose] > module SpiralSm =

00:00:17 #183 [Verbose] >     let concat x =

00:00:17 #184 [Verbose] > #if !INTERACTIVE

00:00:17 #185 [Verbose] >         Sm.concat x

00:00:17 #186 [Verbose] > #else

00:00:17 #187 [Verbose] >         concat x

00:00:17 #188 [Verbose] > #endif

00:00:17 #189 [Verbose] >

00:00:17 #190 [Verbose] >     let contains x =

00:00:17 #191 [Verbose] > #if !INTERACTIVE

00:00:17 #192 [Verbose] >         Sm.contains x

00:00:17 #193 [Verbose] > #else

00:00:17 #194 [Verbose] >         contains x

00:00:17 #195 [Verbose] > #endif

00:00:17 #196 [Verbose] >

00:00:17 #197 [Verbose] >     let ellipsis x =

00:00:17 #198 [Verbose] > #if !INTERACTIVE

00:00:17 #199 [Verbose] >         Sm.ellipsis x

00:00:17 #200 [Verbose] > #else

00:00:17 #201 [Verbose] >         ellipsis x

00:00:17 #202 [Verbose] > #endif

00:00:17 #203 [Verbose] >

00:00:17 #204 [Verbose] >     let ellipsis_end x =

00:00:17 #205 [Verbose] > #if...

00:00:17 #206 [Verbose] >

00:00:17 #207 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:17 #208 [Verbose] > #if !INTERACTIVE

00:00:17 #209 [Verbose] > open Lib

00:00:17 #210 [Verbose] > #endif

00:00:17 #211 [Verbose] >

00:00:17 #212 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:17 #213 [Verbose] > inl (/@) x = listm'.(/@) x

00:00:17 #214 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-2016-1653-1eecd39f11ec\main.spi

00:00:17 #215 [Verbose] >

00:00:17 #216 [Verbose] > ╭─[ 328.78ms - stdout ]────────────────────────────────────────────────────────╮

00:00:17 #217 [Verbose] > │ ()                                                                           │

00:00:17 #218 [Verbose] > │                                                                              │

00:00:17 #219 [Verbose] > │                                                                              │

00:00:17 #220 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:17 #221 [Verbose] >

00:00:17 #222 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:17 #223 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:17 #224 [Verbose] > │ ## TestCaseResult                                                            │

00:00:17 #225 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:17 #226 [Verbose] >

00:00:17 #227 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:17 #228 [Verbose] > type TestCaseResult =

00:00:17 #229 [Verbose] >     {

00:00:17 #230 [Verbose] >         Input: string

00:00:17 #231 [Verbose] >         Expected: string

00:00:17 #232 [Verbose] >         Result: string

00:00:17 #233 [Verbose] >         TimeList: int64 list

00:00:17 #234 [Verbose] >     }

00:00:17 #235 [Verbose] >

00:00:17 #236 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:17 #237 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:17 #238 [Verbose] > │ ## run                                                                       │

00:00:17 #239 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:17 #240 [Verbose] >

00:00:17 #241 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:17 #242 [Verbose] > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,

00:00:17 #243 [Verbose] > expected) =

00:00:17 #244 [Verbose] >     let inputStr =

00:00:17 #245 [Verbose] >         match box input with

00:00:17 #246 [Verbose] >         | :? System.Collections.ICollection as input ->

00:00:17 #247 [Verbose] >             System.Linq.Enumerable.Cast<obj> input

00:00:17 #248 [Verbose] >             |> Seq.map string

00:00:17 #249 [Verbose] >             |> SpiralSm.concat ","

00:00:17 #250 [Verbose] >         | _ -> input.ToString ()

00:00:17 #251 [Verbose] >

00:00:17 #252 [Verbose] >     printfn ""

00:00:17 #253 [Verbose] >     printfn $"Solution: {inputStr}  "

00:00:17 #254 [Verbose] >

00:00:17 #255 [Verbose] >     let performanceInvoke (fn: unit -> 'T) =

00:00:17 #256 [Verbose] >         GC.Collect ()

00:00:17 #257 [Verbose] >         let stopwatch = System.Diagnostics.Stopwatch ()

00:00:17 #258 [Verbose] >         stopwatch.Start ()

00:00:17 #259 [Verbose] >         let time1 = stopwatch.ElapsedMilliseconds

00:00:17 #260 [Verbose] >

00:00:17 #261 [Verbose] >         let result =

00:00:17 #262 [Verbose] >             [[| 0 .. count |]]

00:00:17 #263 [Verbose] >             |> Array.Parallel.map (fun _ ->

00:00:17 #264 [Verbose] >                 fn ()

00:00:17 #265 [Verbose] >             )

00:00:17 #266 [Verbose] >             |> Array.last

00:00:17 #267 [Verbose] >

00:00:17 #268 [Verbose] >         let time2 = stopwatch.ElapsedMilliseconds - time1

00:00:17 #269 [Verbose] >

00:00:17 #270 [Verbose] >         result, time2

00:00:17 #271 [Verbose] >

00:00:17 #272 [Verbose] >     let resultsWithTime =

00:00:17 #273 [Verbose] >         solutions

00:00:17 #274 [Verbose] >         |> List.mapi (fun i (testName, solution) ->

00:00:17 #275 [Verbose] >             let result, time = performanceInvoke (fun () -> solution input)

00:00:17 #276 [Verbose] >             printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time}  "

00:00:17 #277 [Verbose] >             result, time

00:00:17 #278 [Verbose] >         )

00:00:17 #279 [Verbose] >

00:00:17 #280 [Verbose] >

00:00:17 #281 [Verbose] >     match resultsWithTime |> List.map fst with

00:00:17 #282 [Verbose] >     | ([[]] | [[ _ ]]) -> ()

00:00:17 #283 [Verbose] >     | (head :: tail) when tail |> List.forall ((=) head) -> ()

00:00:17 #284 [Verbose] >     | results -> failwithf $"Challenge error: %A{results}"

00:00:17 #285 [Verbose] >

00:00:17 #286 [Verbose] >     {

00:00:17 #287 [Verbose] >         Input = inputStr

00:00:17 #288 [Verbose] >         Expected = expected.ToString ()

00:00:17 #289 [Verbose] >         Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()

00:00:17 #290 [Verbose] >         TimeList = resultsWithTime |> List.map snd

00:00:17 #291 [Verbose] >     }

00:00:17 #292 [Verbose] >

00:00:17 #293 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:17 #294 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:17 #295 [Verbose] > │ ## runAll                                                                    │

00:00:17 #296 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:17 #297 [Verbose] >

00:00:17 #298 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:17 #299 [Verbose] > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)

00:00:17 #300 [Verbose] > testCases =

00:00:17 #301 [Verbose] >     printfn ""

00:00:17 #302 [Verbose] >     printfn ""

00:00:17 #303 [Verbose] >     printfn $"Test: {testName}"

00:00:17 #304 [Verbose] >     testCases

00:00:17 #305 [Verbose] >     |> Seq.map (run count solutions)

00:00:17 #306 [Verbose] >     |> Seq.toList

00:00:17 #307 [Verbose] >

00:00:17 #308 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:17 #309 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:17 #310 [Verbose] > │ ## sortResultList                                                            │

00:00:17 #311 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:17 #312 [Verbose] >

00:00:17 #313 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:17 #314 [Verbose] > let sortResultList resultList =

00:00:17 #315 [Verbose] >     let table =

00:00:17 #316 [Verbose] >         let rows =

00:00:17 #317 [Verbose] >             resultList

00:00:17 #318 [Verbose] >             |> List.map (fun result ->

00:00:17 #319 [Verbose] >                 let best =

00:00:17 #320 [Verbose] >                     result.TimeList

00:00:17 #321 [Verbose] >                     |> List.mapi (fun i time ->

00:00:17 #322 [Verbose] >                         i + 1, time

00:00:17 #323 [Verbose] >                     )

00:00:17 #324 [Verbose] >                     |> List.sortBy snd

00:00:17 #325 [Verbose] >                     |> List.head

00:00:17 #326 [Verbose] >                     |> _.ToString()

00:00:17 #327 [Verbose] >                 let row =

00:00:17 #328 [Verbose] >                     [[

00:00:17 #329 [Verbose] >                         result.Input

00:00:17 #330 [Verbose] >                         result.Expected

00:00:17 #331 [Verbose] >                         result.Result

00:00:17 #332 [Verbose] >                         best

00:00:17 #333 [Verbose] >                     ]]

00:00:17 #334 [Verbose] >                 let color =

00:00:17 #335 [Verbose] >                     match result.Expected = result.Result with

00:00:17 #336 [Verbose] >                     | true -> Some ConsoleColor.DarkGreen

00:00:17 #337 [Verbose] >                     | false -> Some ConsoleColor.DarkRed

00:00:17 #338 [Verbose] >                 row, color

00:00:17 #339 [Verbose] >             )

00:00:17 #340 [Verbose] >         let header =

00:00:17 #341 [Verbose] >             [[

00:00:17 #342 [Verbose] >                 [[

00:00:17 #343 [Verbose] >                     "Input"

00:00:17 #344 [Verbose] >                     "Expected"

00:00:17 #345 [Verbose] >                     "Result"

00:00:17 #346 [Verbose] >                     "Best"

00:00:17 #347 [Verbose] >                 ]]

00:00:17 #348 [Verbose] >                 [[

00:00:17 #349 [Verbose] >                     "---"

00:00:17 #350 [Verbose] >                     "---"

00:00:17 #351 [Verbose] >                     "---"

00:00:17 #352 [Verbose] >                     "---"

00:00:17 #353 [Verbose] >                 ]]

00:00:17 #354 [Verbose] >             ]]

00:00:17 #355 [Verbose] >             |> List.map (fun row -> row, None)

00:00:17 #356 [Verbose] >         header @ rows

00:00:17 #357 [Verbose] >

00:00:17 #358 [Verbose] >     let formattedTable =

00:00:17 #359 [Verbose] >         let lengthMap =

00:00:17 #360 [Verbose] >             table

00:00:17 #361 [Verbose] >             |> List.map fst

00:00:17 #362 [Verbose] >             |> List.transpose

00:00:17 #363 [Verbose] >             |> List.map (fun column ->

00:00:17 #364 [Verbose] >                 column

00:00:17 #365 [Verbose] >                 |> List.map String.length

00:00:17 #366 [Verbose] >                 |> List.sortDescending

00:00:17 #367 [Verbose] >                 |> List.tryHead

00:00:17 #368 [Verbose] >                 |> Option.defaultValue 0

00:00:17 #369 [Verbose] >             )

00:00:17 #370 [Verbose] >             |> List.indexed

00:00:17 #371 [Verbose] >             |> Map.ofList

00:00:17 #372 [Verbose] >         table

00:00:17 #373 [Verbose] >         |> List.map (fun (row, color) ->

00:00:17 #374 [Verbose] >             let newRow =

00:00:17 #375 [Verbose] >                 row

00:00:17 #376 [Verbose] >                 |> List.mapi (fun i cell ->

00:00:17 #377 [Verbose] >                     cell.PadRight lengthMap.[[i]]

00:00:17 #378 [Verbose] >                 )

00:00:17 #379 [Verbose] >             newRow, color

00:00:17 #380 [Verbose] >         )

00:00:17 #381 [Verbose] >

00:00:17 #382 [Verbose] >     printfn ""

00:00:17 #383 [Verbose] >     formattedTable

00:00:17 #384 [Verbose] >     |> List.iter (fun (row, color) ->

00:00:17 #385 [Verbose] >         match color with

00:00:17 #386 [Verbose] >         | Some color -> Console.ForegroundColor <- color

00:00:17 #387 [Verbose] >         | None -> Console.ResetColor ()

00:00:17 #388 [Verbose] >

00:00:17 #389 [Verbose] >         printfn "%s" (String.Join ("\t| ", row))

00:00:17 #390 [Verbose] >

00:00:17 #391 [Verbose] >         Console.ResetColor ()

00:00:17 #392 [Verbose] >     )

00:00:17 #393 [Verbose] >

00:00:17 #394 [Verbose] >     let averages =

00:00:17 #395 [Verbose] >         resultList

00:00:17 #396 [Verbose] >         |> List.map (fun result -> result.TimeList |> List.map float)

00:00:17 #397 [Verbose] >         |> List.transpose

00:00:17 #398 [Verbose] >         |> List.map List.average

00:00:17 #399 [Verbose] >         |> List.map int64

00:00:17 #400 [Verbose] >         |> List.indexed

00:00:17 #401 [Verbose] >

00:00:17 #402 [Verbose] >     printfn ""

00:00:17 #403 [Verbose] >     printfn "Average Ranking  "

00:00:17 #404 [Verbose] >     averages

00:00:17 #405 [Verbose] >     |> List.sortBy snd

00:00:17 #406 [Verbose] >     |> List.iter (fun (i, avg) ->

00:00:17 #407 [Verbose] >         printfn $"Test case %d{i + 1}. Average Time: %A{avg}  "

00:00:17 #408 [Verbose] >     )

00:00:18 #409 [Verbose] >

00:00:18 #410 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:18 #411 [Verbose] > let mutable _count =

00:00:18 #412 [Verbose] >     if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}")

00:00:18 #413 [Verbose] > <> "<null>"

00:00:18 #414 [Verbose] >     then 2000000

00:00:18 #415 [Verbose] >     else 2000

00:00:18 #416 [Verbose] >

00:00:18 #417 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:18 #418 [Verbose] > inl is_fast () =

00:00:18 #419 [Verbose] >     false

00:00:18 #420 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-2093-9317-92fb7cdc5a52\main.spi

00:00:18 #421 [Verbose] >

00:00:18 #422 [Verbose] > ╭─[ 323.17ms - stdout ]────────────────────────────────────────────────────────╮

00:00:18 #423 [Verbose] > │ ()                                                                           │

00:00:18 #424 [Verbose] > │                                                                              │

00:00:18 #425 [Verbose] > │                                                                              │

00:00:18 #426 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #427 [Verbose] >

00:00:18 #428 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:18 #429 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:18 #430 [Verbose] > │ ## empty3Tests                                                               │

00:00:18 #431 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #432 [Verbose] >

00:00:18 #433 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:18 #434 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:18 #435 [Verbose] > │ Test: Empty3                                                                 │

00:00:18 #436 [Verbose] > │                                                                              │

00:00:18 #437 [Verbose] > │ Solution: (a, a)                                                             │

00:00:18 #438 [Verbose] > │ Test case 1. A. Time: 91L                                                    │

00:00:18 #439 [Verbose] > │                                                                              │

00:00:18 #440 [Verbose] > │ Solution: (a, a)                                                             │

00:00:18 #441 [Verbose] > │ Test case 1. A. Time: 56L                                                    │

00:00:18 #442 [Verbose] > │                                                                              │

00:00:18 #443 [Verbose] > │ Input  | Expected      | Result | Best                                       │

00:00:18 #444 [Verbose] > │ ---    | ---           | ---    | ---                                        │

00:00:18 #445 [Verbose] > │ (a, a) | a             | a      | (1, 91)                                    │

00:00:18 #446 [Verbose] > │ (a, a) | a             | a      | (1, 56)                                    │

00:00:18 #447 [Verbose] > │                                                                              │

00:00:18 #448 [Verbose] > │ Averages                                                                     │

00:00:18 #449 [Verbose] > │ Test case 1. Average Time: 73L                                               │

00:00:18 #450 [Verbose] > │                                                                              │

00:00:18 #451 [Verbose] > │ Ranking                                                                      │

00:00:18 #452 [Verbose] > │ Test case 1. Average Time: 73L                                               │

00:00:18 #453 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #454 [Verbose] >

00:00:18 #455 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:18 #456 [Verbose] > //// test

00:00:18 #457 [Verbose] >

00:00:18 #458 [Verbose] > let solutions = [[

00:00:18 #459 [Verbose] >     "A",

00:00:18 #460 [Verbose] >     fun (a, _b) ->

00:00:18 #461 [Verbose] >         a

00:00:18 #462 [Verbose] > ]]

00:00:18 #463 [Verbose] > let testCases = seq {

00:00:18 #464 [Verbose] >     ("a", "a"), "a"

00:00:18 #465 [Verbose] >     ("a", "a"), "a"

00:00:18 #466 [Verbose] > }

00:00:18 #467 [Verbose] > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases

00:00:18 #468 [Verbose] > empty3Tests

00:00:18 #469 [Verbose] > |> sortResultList

00:00:18 #470 [Verbose] >

00:00:18 #471 [Verbose] > ╭─[ 410.24ms - stdout ]────────────────────────────────────────────────────────╮

00:00:18 #472 [Verbose] > │                                                                              │

00:00:18 #473 [Verbose] > │                                                                              │

00:00:18 #474 [Verbose] > │ Test: empty3Tests                                                            │

00:00:18 #475 [Verbose] > │                                                                              │

00:00:18 #476 [Verbose] > │ Solution: (a, a)                                                             │

00:00:18 #477 [Verbose] > │ Test case 1. A. Time: 1L                                                     │

00:00:18 #478 [Verbose] > │                                                                              │

00:00:18 #479 [Verbose] > │ Solution: (a, a)                                                             │

00:00:18 #480 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:18 #481 [Verbose] > │                                                                              │

00:00:18 #482 [Verbose] > │ Input 	| Expected	| Result	| Best                                                  │

00:00:18 #483 [Verbose] > │ ---   	| ---     	| ---   	| ---                                                   │

00:00:18 #484 [Verbose] > │ (a, a)	| a       	| a     	| (1, 1)                                                │

00:00:18 #485 [Verbose] > │ (a, a)	| a       	| a     	| (1, 0)                                                │

00:00:18 #486 [Verbose] > │                                                                              │

00:00:18 #487 [Verbose] > │ Average Ranking                                                              │

00:00:18 #488 [Verbose] > │ Test case 1. Average Time: 0L                                                │

00:00:18 #489 [Verbose] > │                                                                              │

00:00:18 #490 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #491 [Verbose] >

00:00:18 #492 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:18 #493 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:18 #494 [Verbose] > │ ## empty2Tests                                                               │

00:00:18 #495 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #496 [Verbose] >

00:00:18 #497 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:18 #498 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:18 #499 [Verbose] > │ Test: Empty2                                                                 │

00:00:18 #500 [Verbose] > │                                                                              │

00:00:18 #501 [Verbose] > │ Solution: (a, a)                                                             │

00:00:18 #502 [Verbose] > │ Test case 1. A. Time: 59L                                                    │

00:00:18 #503 [Verbose] > │                                                                              │

00:00:18 #504 [Verbose] > │ Solution: (a, a)                                                             │

00:00:18 #505 [Verbose] > │ Test case 1. A. Time: 53L                                                    │

00:00:18 #506 [Verbose] > │                                                                              │

00:00:18 #507 [Verbose] > │ Input   | Expected        | Result  | Best                                   │

00:00:18 #508 [Verbose] > │ ---     | ---             | ---     | ---                                    │

00:00:18 #509 [Verbose] > │ (a, a)  | a               | a       | (1, 59)                                │

00:00:18 #510 [Verbose] > │ (a, a)  | a               | a       | (1, 53)                                │

00:00:18 #511 [Verbose] > │                                                                              │

00:00:18 #512 [Verbose] > │ Averages                                                                     │

00:00:18 #513 [Verbose] > │ Test case 1. Average Time: 56L                                               │

00:00:18 #514 [Verbose] > │                                                                              │

00:00:18 #515 [Verbose] > │ Ranking                                                                      │

00:00:18 #516 [Verbose] > │ Test case 1. Average Time: 56L                                               │

00:00:18 #517 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:18 #518 [Verbose] >

00:00:18 #519 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:18 #520 [Verbose] > //// test

00:00:18 #521 [Verbose] >

00:00:18 #522 [Verbose] > let solutions = [[

00:00:18 #523 [Verbose] >     "A",

00:00:18 #524 [Verbose] >     fun (a, _b) ->

00:00:18 #525 [Verbose] >         a

00:00:18 #526 [Verbose] > ]]

00:00:18 #527 [Verbose] > let testCases = seq {

00:00:18 #528 [Verbose] >     ("a", "a"), "a"

00:00:18 #529 [Verbose] >     ("a", "a"), "a"

00:00:18 #530 [Verbose] > }

00:00:18 #531 [Verbose] > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases

00:00:18 #532 [Verbose] > empty2Tests

00:00:18 #533 [Verbose] > |> sortResultList

00:00:19 #534 [Verbose] >

00:00:19 #535 [Verbose] > ╭─[ 393.35ms - stdout ]────────────────────────────────────────────────────────╮

00:00:19 #536 [Verbose] > │                                                                              │

00:00:19 #537 [Verbose] > │                                                                              │

00:00:19 #538 [Verbose] > │ Test: empty2Tests                                                            │

00:00:19 #539 [Verbose] > │                                                                              │

00:00:19 #540 [Verbose] > │ Solution: (a, a)                                                             │

00:00:19 #541 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:19 #542 [Verbose] > │                                                                              │

00:00:19 #543 [Verbose] > │ Solution: (a, a)                                                             │

00:00:19 #544 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:19 #545 [Verbose] > │                                                                              │

00:00:19 #546 [Verbose] > │ Input 	| Expected	| Result	| Best                                                  │

00:00:19 #547 [Verbose] > │ ---   	| ---     	| ---   	| ---                                                   │

00:00:19 #548 [Verbose] > │ (a, a)	| a       	| a     	| (1, 0)                                                │

00:00:19 #549 [Verbose] > │ (a, a)	| a       	| a     	| (1, 0)                                                │

00:00:19 #550 [Verbose] > │                                                                              │

00:00:19 #551 [Verbose] > │ Average Ranking                                                              │

00:00:19 #552 [Verbose] > │ Test case 1. Average Time: 0L                                                │

00:00:19 #553 [Verbose] > │                                                                              │

00:00:19 #554 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:19 #555 [Verbose] >

00:00:19 #556 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:19 #557 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:19 #558 [Verbose] > │ ## emptyTests                                                                │

00:00:19 #559 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:19 #560 [Verbose] >

00:00:19 #561 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:19 #562 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:19 #563 [Verbose] > │ Test: Empty                                                                  │

00:00:19 #564 [Verbose] > │                                                                              │

00:00:19 #565 [Verbose] > │ Solution: 0                                                                  │

00:00:19 #566 [Verbose] > │ Test case 1. A. Time: 61L                                                    │

00:00:19 #567 [Verbose] > │                                                                              │

00:00:19 #568 [Verbose] > │ Solution: 2                                                                  │

00:00:19 #569 [Verbose] > │ Test case 1. A. Time: 62L                                                    │

00:00:19 #570 [Verbose] > │                                                                              │

00:00:19 #571 [Verbose] > │ Solution: 5                                                                  │

00:00:19 #572 [Verbose] > │ Test case 1. A. Time: 70L                                                    │

00:00:19 #573 [Verbose] > │                                                                              │

00:00:19 #574 [Verbose] > │ Input   | Expected        | Result  | Best                                   │

00:00:19 #575 [Verbose] > │ ---     | ---             | ---     | ---                                    │

00:00:19 #576 [Verbose] > │ 0       | 0               | 0       | (1, 61)                                │

00:00:19 #577 [Verbose] > │ 2       | 2               | 2       | (1, 62)                                │

00:00:19 #578 [Verbose] > │ 5       | 5               | 5       | (1, 70)                                │

00:00:19 #579 [Verbose] > │                                                                              │

00:00:19 #580 [Verbose] > │ Averages                                                                     │

00:00:19 #581 [Verbose] > │ Test case 1. Average Time: 64L                                               │

00:00:19 #582 [Verbose] > │                                                                              │

00:00:19 #583 [Verbose] > │ Ranking                                                                      │

00:00:19 #584 [Verbose] > │ Test case 1. Average Time: 64L                                               │

00:00:19 #585 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:19 #586 [Verbose] >

00:00:19 #587 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:19 #588 [Verbose] > //// test

00:00:19 #589 [Verbose] >

00:00:19 #590 [Verbose] > let solutions = [[

00:00:19 #591 [Verbose] >     "A",

00:00:19 #592 [Verbose] >     fun n ->

00:00:19 #593 [Verbose] >         n + 0

00:00:19 #594 [Verbose] > ]]

00:00:19 #595 [Verbose] > let testCases = seq {

00:00:19 #596 [Verbose] >     0, 0

00:00:19 #597 [Verbose] >     2, 2

00:00:19 #598 [Verbose] >     5, 5

00:00:19 #599 [Verbose] > }

00:00:19 #600 [Verbose] > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases

00:00:19 #601 [Verbose] > emptyTests

00:00:19 #602 [Verbose] > |> sortResultList

00:00:19 #603 [Verbose] >

00:00:19 #604 [Verbose] > ╭─[ 483.58ms - stdout ]────────────────────────────────────────────────────────╮

00:00:19 #605 [Verbose] > │                                                                              │

00:00:19 #606 [Verbose] > │                                                                              │

00:00:19 #607 [Verbose] > │ Test: emptyTests                                                             │

00:00:19 #608 [Verbose] > │                                                                              │

00:00:19 #609 [Verbose] > │ Solution: 0                                                                  │

00:00:19 #610 [Verbose] > │ Test case 1. A. Time: 3L                                                     │

00:00:19 #611 [Verbose] > │                                                                              │

00:00:19 #612 [Verbose] > │ Solution: 2                                                                  │

00:00:19 #613 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:19 #614 [Verbose] > │                                                                              │

00:00:19 #615 [Verbose] > │ Solution: 5                                                                  │

00:00:19 #616 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:19 #617 [Verbose] > │                                                                              │

00:00:19 #618 [Verbose] > │ Input	| Expected	| Result	| Best                                                   │

00:00:19 #619 [Verbose] > │ ---  	| ---     	| ---   	| ---                                                    │

00:00:19 #620 [Verbose] > │ 0    	| 0       	| 0     	| (1, 3)                                                 │

00:00:19 #621 [Verbose] > │ 2    	| 2       	| 2     	| (1, 0)                                                 │

00:00:19 #622 [Verbose] > │ 5    	| 5       	| 5     	| (1, 0)                                                 │

00:00:19 #623 [Verbose] > │                                                                              │

00:00:19 #624 [Verbose] > │ Average Ranking                                                              │

00:00:19 #625 [Verbose] > │ Test case 1. Average Time: 1L                                                │

00:00:19 #626 [Verbose] > │                                                                              │

00:00:19 #627 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:19 #628 [Verbose] >

00:00:19 #629 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:19 #630 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:19 #631 [Verbose] > │ ## uniqueLettersTests                                                        │

00:00:19 #632 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:19 #633 [Verbose] >

00:00:19 #634 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:19 #635 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:19 #636 [Verbose] > │ Test: UniqueLetters                                                          │

00:00:19 #637 [Verbose] > │                                                                              │

00:00:19 #638 [Verbose] > │ Solution: abc                                                                │

00:00:19 #639 [Verbose] > │ Test case 1. A. Time: 1512L                                                  │

00:00:19 #640 [Verbose] > │ Test case 2. B. Time: 1947L                                                  │

00:00:19 #641 [Verbose] > │ Test case 3. C. Time: 2023L                                                  │

00:00:19 #642 [Verbose] > │ Test case 4. D. Time: 1358L                                                  │

00:00:19 #643 [Verbose] > │ Test case 5. E. Time: 1321L                                                  │

00:00:19 #644 [Verbose] > │ Test case 6. F. Time: 1346L                                                  │

00:00:19 #645 [Verbose] > │ Test case 7. G. Time: 1304L                                                  │

00:00:19 #646 [Verbose] > │ Test case 8. H. Time: 1383L                                                  │

00:00:19 #647 [Verbose] > │ Test case 9. I. Time: 1495L                                                  │

00:00:19 #648 [Verbose] > │ Test case 10. J. Time: 1245L                                                 │

00:00:19 #649 [Verbose] > │ Test case 11. K. Time: 1219L                                                 │

00:00:19 #650 [Verbose] > │                                                                              │

00:00:19 #651 [Verbose] > │ Solution: accabb                                                             │

00:00:19 #652 [Verbose] > │ Test case 1. A. Time: 1648L                                                  │

00:00:19 #653 [Verbose] > │ Test case 2. B. Time: 2061L                                                  │

00:00:19 #654 [Verbose] > │ Test case 3. C. Time: 2413L                                                  │

00:00:19 #655 [Verbose] > │ Test case 4. D. Time: 1561L                                                  │

00:00:19 #656 [Verbose] > │ Test case 5. E. Time: 1593L                                                  │

00:00:19 #657 [Verbose] > │ Test case 6. F. Time: 1518L                                                  │

00:00:19 #658 [Verbose] > │ Test case 7. G. Time: 1415L                                                  │

00:00:19 #659 [Verbose] > │ Test case 8. H. Time: 1510L                                                  │

00:00:19 #660 [Verbose] > │ Test case 9. I. Time: 1445L                                                  │

00:00:19 #661 [Verbose] > │ Test case 10. J. Time: 1636L                                                 │

00:00:19 #662 [Verbose] > │ Test case 11. K. Time: 1317L                                                 │

00:00:19 #663 [Verbose] > │                                                                              │

00:00:19 #664 [Verbose] > │ Solution: pprrqqpp                                                           │

00:00:19 #665 [Verbose] > │ Test case 1. A. Time: 2255L                                                  │

00:00:19 #666 [Verbose] > │ Test case 2. B. Time: 2408L                                                  │

00:00:19 #667 [Verbose] > │ Test case 3. C. Time: 2393L                                                  │

00:00:19 #668 [Verbose] > │ Test case 4. D. Time: 1675L                                                  │

00:00:19 #669 [Verbose] > │ Test case 5. E. Time: 1911L                                                  │

00:00:19 #670 [Verbose] > │ Test case 6. F. Time: 2126L                                                  │

00:00:19 #671 [Verbose] > │ Test case 7. G. Time: 1504L                                                  │

00:00:19 #672 [Verbose] > │ Test case 8. H. Time: 1715L                                                  │

00:00:19 #673 [Verbose] > │ Test case 9. I. Time: 1537L                                                  │

00:00:19 #674 [Verbose] > │ Test case 10. J. Time: 1522L                                                 │

00:00:19 #675 [Verbose] > │ Test case 11. K. Time: 1322L                                                 │

00:00:19 #676 [Verbose] > │                                                                              │

00:00:19 #677 [Verbose] > │ Solution:                                                                    │

00:00:19 #678 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │

00:00:19 #679 [Verbose] > │ bbb                                                                          │

00:00:19 #680 [Verbose] > │ Test case 1. A. Time: 13073L                                                 │

00:00:19 #681 [Verbose] > │ Test case 2. B. Time: 11519L                                                 │

00:00:19 #682 [Verbose] > │ Test case 3. C. Time: 8373L                                                  │

00:00:19 #683 [Verbose] > │ Test case 4. D. Time: 5860L                                                  │

00:00:19 #684 [Verbose] > │ Test case 5. E. Time: 6490L                                                  │

00:00:19 #685 [Verbose] > │ Test case 6. F. Time: 6325L                                                  │

00:00:19 #686 [Verbose] > │ Test case 7. G. Time: 5799L                                                  │

00:00:19 #687 [Verbose] > │ Test case 8. H. Time: 7099L                                                  │

00:00:19 #688 [Verbose] > │ Test case 9. I. Time: 6133L                                                  │

00:00:19 #689 [Verbose] > │ Test case 10. J. Time: 5993L                                                 │

00:00:19 #690 [Verbose] > │ Test case 11. K. Time: 2040L                                                 │

00:00:19 #691 [Verbose] > │                                                                              │

00:00:19 #692 [Verbose] > │ Input                                                                        │

00:00:19 #693 [Verbose] > │ | Expected        | Result  | Best                                           │

00:00:19 #694 [Verbose] > │ ---                                                                          │

00:00:19 #695 [Verbose] > │                                                                              │

00:00:19 #696 [Verbose] > │ | ---             | ---     | ---                                            │

00:00:19 #697 [Verbose] > │ abc                                                                          │

00:00:19 #698 [Verbose] > │                                                                              │

00:00:19 #699 [Verbose] > │ | abc             | abc     | (11, 1219)                                     │

00:00:19 #700 [Verbose] > │ accabb                                                                       │

00:00:19 #701 [Verbose] > │ | acb             | acb     | (11, 1317)                                     │

00:00:19 #702 [Verbose] > │ pprrqqpp                                                                     │

00:00:19 #703 [Verbose] > │ | prq             | prq     | (11, 1322)                                     │

00:00:19 #704 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │

00:00:19 #705 [Verbose] > │ bbb | acb             | acb     | (11, 2040)                                 │

00:00:19 #706 [Verbose] > │                                                                              │

00:00:19 #707 [Verbose] > │ Averages                                                                     │

00:00:19 #708 [Verbose] > │ Test case 1. Average Time: 4622L                                             │

00:00:19 #709 [Verbose] > │ Test case 2. Average Time: 4483L                                             │

00:00:19 #710 [Verbose] > │ Test case 3. Average Time: 3800L                                             │

00:00:19 #711 [Verbose] > │ Test case 4. Average Time: 2613L                                             │

00:00:19 #712 [Verbose] > │ Test case 5. Average Time: 2828L                                             │

00:00:19 #713 [Verbose] > │ Test case 6. Average Time: 2828L                                             │

00:00:19 #714 [Verbose] > │ Test case 7. Average Time: 2505L                                             │

00:00:19 #715 [Verbose] > │ Test case 8. Average Time: 2926L                                             │

00:00:19 #716 [Verbose] > │ Test case 9. Average Time: 2652L                                             │

00:00:19 #717 [Verbose] > │ Test case 10. Average Time: 2599L                                            │

00:00:19 #718 [Verbose] > │ Test case 11. Average Time: 1474L                                            │

00:00:19 #719 [Verbose] > │                                                                              │

00:00:19 #720 [Verbose] > │ Ranking                                                                      │

00:00:19 #721 [Verbose] > │ Test case 1. Average Time: 4622L                                             │

00:00:19 #722 [Verbose] > │ Test case 2. Average Time: 4483L                                             │

00:00:19 #723 [Verbose] > │ Test case 3. Average Time: 3800L                                             │

00:00:19 #724 [Verbose] > │ Test case 8. Average Time: 2926L                                             │

00:00:19 #725 [Verbose] > │ Test case 5. Average Time: 2828L                                             │

00:00:19 #726 [Verbose] > │ Test case 6. Average Time: 2828L                                             │

00:00:19 #727 [Verbose] > │ Test case 9. Average Time: 2652L                                             │

00:00:19 #728 [Verbose] > │ Test case 4. Average Time: 2613L                                             │

00:00:19 #729 [Verbose] > │ Test case 10. Average Time: 2599L                                            │

00:00:19 #730 [Verbose] > │ Test case 7. Average Time: 2505L                                             │

00:00:19 #731 [Verbose] > │ Test case 11. Average Time: 1474L                                            │

00:00:19 #732 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:19 #733 [Verbose] >

00:00:19 #734 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:19 #735 [Verbose] > //// test

00:00:19 #736 [Verbose] >

00:00:19 #737 [Verbose] > let solutions = [[

00:00:19 #738 [Verbose] >     "A",

00:00:19 #739 [Verbose] >     fun input ->

00:00:19 #740 [Verbose] >         input

00:00:19 #741 [Verbose] >         |> Seq.toList

00:00:19 #742 [Verbose] >         |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[

00:00:19 #743 [Verbose] > x ]]) [[]]

00:00:19 #744 [Verbose] >         |> Seq.toArray

00:00:19 #745 [Verbose] >         |> String

00:00:19 #746 [Verbose] >

00:00:19 #747 [Verbose] >     "B",

00:00:19 #748 [Verbose] >     fun input ->

00:00:19 #749 [Verbose] >         input

00:00:19 #750 [Verbose] >         |> Seq.rev

00:00:19 #751 [Verbose] >         |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then

00:00:19 #752 [Verbose] > acc else x :: acc) list [[]]

00:00:19 #753 [Verbose] >         |> Seq.rev

00:00:19 #754 [Verbose] >         |> Seq.toArray

00:00:19 #755 [Verbose] >         |> String

00:00:19 #756 [Verbose] >

00:00:19 #757 [Verbose] >     "C",

00:00:19 #758 [Verbose] >     fun input ->

00:00:19 #759 [Verbose] >         input

00:00:19 #760 [Verbose] >         |> Seq.rev

00:00:19 #761 [Verbose] >         |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set

00:00:19 #762 [Verbose] > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])

00:00:19 #763 [Verbose] >         |> snd

00:00:19 #764 [Verbose] >         |> Seq.rev

00:00:19 #765 [Verbose] >         |> Seq.toArray

00:00:19 #766 [Verbose] >         |> String

00:00:19 #767 [Verbose] >

00:00:19 #768 [Verbose] >     "D",

00:00:19 #769 [Verbose] >     fun input ->

00:00:19 #770 [Verbose] >         input

00:00:19 #771 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc

00:00:19 #772 [Verbose] > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])

00:00:19 #773 [Verbose] >         |> snd

00:00:19 #774 [Verbose] >         |> String

00:00:19 #775 [Verbose] >

00:00:19 #776 [Verbose] >     "E",

00:00:19 #777 [Verbose] >     fun input ->

00:00:19 #778 [Verbose] >         input

00:00:19 #779 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc

00:00:19 #780 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])

00:00:19 #781 [Verbose] >         |> snd

00:00:19 #782 [Verbose] >         |> List.rev

00:00:19 #783 [Verbose] >         |> List.toArray

00:00:19 #784 [Verbose] >         |> String

00:00:19 #785 [Verbose] >

00:00:19 #786 [Verbose] >     "F",

00:00:19 #787 [Verbose] >     fun input ->

00:00:19 #788 [Verbose] >         input

00:00:19 #789 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc

00:00:19 #790 [Verbose] > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])

00:00:19 #791 [Verbose] >         |> snd

00:00:19 #792 [Verbose] >         |> List.toArray

00:00:19 #793 [Verbose] >         |> String

00:00:19 #794 [Verbose] >

00:00:19 #795 [Verbose] >     "G",

00:00:19 #796 [Verbose] >     fun input ->

00:00:19 #797 [Verbose] >         input

00:00:19 #798 [Verbose] >         |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc

00:00:19 #799 [Verbose] > else set.Add x, x :: acc) (Set.empty, [[]])

00:00:19 #800 [Verbose] >         |> snd

00:00:19 #801 [Verbose] >         |> List.toArray

00:00:19 #802 [Verbose] >         |> Array.rev

00:00:19 #803 [Verbose] >         |> String

00:00:19 #804 [Verbose] >

00:00:19 #805 [Verbose] >     "H",

00:00:19 #806 [Verbose] >     fun input ->

00:00:19 #807 [Verbose] >         input

00:00:19 #808 [Verbose] >         |> Seq.toList

00:00:19 #809 [Verbose] >         |> fun list ->

00:00:19 #810 [Verbose] >             let rec loop set = function

00:00:19 #811 [Verbose] >                 | head :: tail when Set.contains head set -> loop set tail

00:00:19 #812 [Verbose] >                 | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]

00:00:19 #813 [Verbose] >                 | [[]] -> [[]]

00:00:19 #814 [Verbose] >             loop Set.empty list

00:00:19 #815 [Verbose] >             |> List.rev

00:00:19 #816 [Verbose] >         |> List.toArray

00:00:19 #817 [Verbose] >         |> String

00:00:19 #818 [Verbose] >

00:00:19 #819 [Verbose] >     "I",

00:00:19 #820 [Verbose] >     fun input ->

00:00:19 #821 [Verbose] >         input

00:00:19 #822 [Verbose] >         |> Seq.toList

00:00:19 #823 [Verbose] >         |> fun list ->

00:00:19 #824 [Verbose] >             let rec loop set = function

00:00:19 #825 [Verbose] >                 | head :: tail when Set.contains head set -> loop set tail

00:00:19 #826 [Verbose] >                 | head :: tail -> loop (set.Add head) tail |> Array.append [[|

00:00:19 #827 [Verbose] > head |]]

00:00:19 #828 [Verbose] >                 | [[]] -> [[||]]

00:00:19 #829 [Verbose] >             loop Set.empty list

00:00:19 #830 [Verbose] >         |> String

00:00:19 #831 [Verbose] >

00:00:19 #832 [Verbose] >     "J",

00:00:19 #833 [Verbose] >     fun input ->

00:00:19 #834 [Verbose] >         input

00:00:19 #835 [Verbose] >         |> Seq.toList

00:00:19 #836 [Verbose] >         |> fun list ->

00:00:19 #837 [Verbose] >             let rec loop set = function

00:00:19 #838 [Verbose] >                 | head :: tail when Set.contains head set -> loop set tail

00:00:19 #839 [Verbose] >                 | head :: tail -> head :: loop (set.Add head) tail

00:00:19 #840 [Verbose] >                 | [[]] -> [[]]

00:00:19 #841 [Verbose] >             loop Set.empty list

00:00:19 #842 [Verbose] >         |> List.toArray

00:00:19 #843 [Verbose] >         |> String

00:00:19 #844 [Verbose] >

00:00:19 #845 [Verbose] >     "K",

00:00:19 #846 [Verbose] >     fun input ->

00:00:19 #847 [Verbose] >         input

00:00:19 #848 [Verbose] >         |> Seq.distinct

00:00:19 #849 [Verbose] >         |> Seq.toArray

00:00:19 #850 [Verbose] >         |> String

00:00:19 #851 [Verbose] > ]]

00:00:19 #852 [Verbose] > let testCases = seq {

00:00:19 #853 [Verbose] >     "abc", "abc"

00:00:19 #854 [Verbose] >     "accabb", "acb"

00:00:19 #855 [Verbose] >     "pprrqqpp", "prq"

00:00:19 #856 [Verbose] >

00:00:19 #857 [Verbose] > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb

00:00:19 #858 [Verbose] > ", "acb"

00:00:19 #859 [Verbose] > }

00:00:19 #860 [Verbose] > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions

00:00:19 #861 [Verbose] > testCases

00:00:19 #862 [Verbose] > uniqueLettersTests

00:00:19 #863 [Verbose] > |> sortResultList

00:00:26 #864 [Verbose] >

00:00:26 #865 [Verbose] > ╭─[ 6.96s - stdout ]───────────────────────────────────────────────────────────╮

00:00:26 #866 [Verbose] > │                                                                              │

00:00:26 #867 [Verbose] > │                                                                              │

00:00:26 #868 [Verbose] > │ Test: uniqueLettersTests                                                     │

00:00:26 #869 [Verbose] > │                                                                              │

00:00:26 #870 [Verbose] > │ Solution: abc                                                                │

00:00:26 #871 [Verbose] > │ Test case 1. A. Time: 6L                                                     │

00:00:26 #872 [Verbose] > │ Test case 2. B. Time: 6L                                                     │

00:00:26 #873 [Verbose] > │ Test case 3. C. Time: 5L                                                     │

00:00:26 #874 [Verbose] > │ Test case 4. D. Time: 2L                                                     │

00:00:26 #875 [Verbose] > │ Test case 5. E. Time: 2L                                                     │

00:00:26 #876 [Verbose] > │ Test case 6. F. Time: 2L                                                     │

00:00:26 #877 [Verbose] > │ Test case 7. G. Time: 1L                                                     │

00:00:26 #878 [Verbose] > │ Test case 8. H. Time: 2L                                                     │

00:00:26 #879 [Verbose] > │ Test case 9. I. Time: 3L                                                     │

00:00:26 #880 [Verbose] > │ Test case 10. J. Time: 2L                                                    │

00:00:26 #881 [Verbose] > │ Test case 11. K. Time: 5L                                                    │

00:00:26 #882 [Verbose] > │                                                                              │

00:00:26 #883 [Verbose] > │ Solution: accabb                                                             │

00:00:26 #884 [Verbose] > │ Test case 1. A. Time: 1L                                                     │

00:00:26 #885 [Verbose] > │ Test case 2. B. Time: 1L                                                     │

00:00:26 #886 [Verbose] > │ Test case 3. C. Time: 1L                                                     │

00:00:26 #887 [Verbose] > │ Test case 4. D. Time: 1L                                                     │

00:00:26 #888 [Verbose] > │ Test case 5. E. Time: 1L                                                     │

00:00:26 #889 [Verbose] > │ Test case 6. F. Time: 1L                                                     │

00:00:26 #890 [Verbose] > │ Test case 7. G. Time: 0L                                                     │

00:00:26 #891 [Verbose] > │ Test case 8. H. Time: 0L                                                     │

00:00:26 #892 [Verbose] > │ Test case 9. I. Time: 0L                                                     │

00:00:26 #893 [Verbose] > │ Test case 10. J. Time: 0L                                                    │

00:00:26 #894 [Verbose] > │ Test case 11. K. Time: 1L                                                    │

00:00:26 #895 [Verbose] > │                                                                              │

00:00:26 #896 [Verbose] > │ Solution: pprrqqpp                                                           │

00:00:26 #897 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:26 #898 [Verbose] > │ Test case 2. B. Time: 1L                                                     │

00:00:26 #899 [Verbose] > │ Test case 3. C. Time: 1L                                                     │

00:00:26 #900 [Verbose] > │ Test case 4. D. Time: 0L                                                     │

00:00:26 #901 [Verbose] > │ Test case 5. E. Time: 1L                                                     │

00:00:26 #902 [Verbose] > │ Test case 6. F. Time: 1L                                                     │

00:00:26 #903 [Verbose] > │ Test case 7. G. Time: 1L                                                     │

00:00:26 #904 [Verbose] > │ Test case 8. H. Time: 1L                                                     │

00:00:26 #905 [Verbose] > │ Test case 9. I. Time: 1L                                                     │

00:00:26 #906 [Verbose] > │ Test case 10. J. Time: 1L                                                    │

00:00:26 #907 [Verbose] > │ Test case 11. K. Time: 1L                                                    │

00:00:26 #908 [Verbose] > │                                                                              │

00:00:26 #909 [Verbose] > │ Solution:                                                                    │

00:00:26 #910 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │

00:00:26 #911 [Verbose] > │ bbb                                                                          │

00:00:26 #912 [Verbose] > │ Test case 1. A. Time: 12L                                                    │

00:00:26 #913 [Verbose] > │ Test case 2. B. Time: 10L                                                    │

00:00:26 #914 [Verbose] > │ Test case 3. C. Time: 13L                                                    │

00:00:26 #915 [Verbose] > │ Test case 4. D. Time: 9L                                                     │

00:00:26 #916 [Verbose] > │ Test case 5. E. Time: 8L                                                     │

00:00:26 #917 [Verbose] > │ Test case 6. F. Time: 8L                                                     │

00:00:26 #918 [Verbose] > │ Test case 7. G. Time: 8L                                                     │

00:00:26 #919 [Verbose] > │ Test case 8. H. Time: 8L                                                     │

00:00:26 #920 [Verbose] > │ Test case 9. I. Time: 7L                                                     │

00:00:26 #921 [Verbose] > │ Test case 10. J. Time: 7L                                                    │

00:00:26 #922 [Verbose] > │ Test case 11. K. Time: 3L                                                    │

00:00:26 #923 [Verbose] > │                                                                              │

00:00:26 #924 [Verbose] > │ Input                                                                        │

00:00:26 #925 [Verbose] > │ | Expected	| Result	| Best                                                       │

00:00:26 #926 [Verbose] > │ ---                                                                          │

00:00:26 #927 [Verbose] > │ | ---     	| ---   	| ---                                                        │

00:00:26 #928 [Verbose] > │ abc                                                                          │

00:00:26 #929 [Verbose] > │ | abc     	| abc   	| (7, 1)                                                     │

00:00:26 #930 [Verbose] > │ accabb                                                                       │

00:00:26 #931 [Verbose] > │ | acb     	| acb   	| (7, 0)                                                     │

00:00:26 #932 [Verbose] > │ pprrqqpp                                                                     │

00:00:26 #933 [Verbose] > │ | prq     	| prq   	| (1, 0)                                                     │

00:00:26 #934 [Verbose] > │ aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbb │

00:00:26 #935 [Verbose] > │ bbb	| acb     	| acb   	| (11, 3)                                                  │

00:00:26 #936 [Verbose] > │                                                                              │

00:00:26 #937 [Verbose] > │ Average Ranking                                                              │

00:00:26 #938 [Verbose] > │ Test case 7. Average Time: 2L                                                │

00:00:26 #939 [Verbose] > │ Test case 8. Average Time: 2L                                                │

00:00:26 #940 [Verbose] > │ Test case 9. Average Time: 2L                                                │

00:00:26 #941 [Verbose] > │ Test case 10. Average Time: 2L                                               │

00:00:26 #942 [Verbose] > │ Test case 11. Average Time: 2L                                               │

00:00:26 #943 [Verbose] > │ Test case 4. Average Time: 3L                                                │

00:00:26 #944 [Verbose] > │ Test case 5. Average Time: 3L                                                │

00:00:26 #945 [Verbose] > │ Test case 6. Average Time: 3L                                                │

00:00:26 #946 [Verbose] > │ Test case 1. Average Time: 4L                                                │

00:00:26 #947 [Verbose] > │ Test case 2. Average Time: 4L                                                │

00:00:26 #948 [Verbose] > │ Test case 3. Average Time: 5L                                                │

00:00:26 #949 [Verbose] > │                                                                              │

00:00:26 #950 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #951 [Verbose] >

00:00:26 #952 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:26 #953 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:26 #954 [Verbose] > │ ## rotateStringsTests                                                        │

00:00:26 #955 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #956 [Verbose] >

00:00:26 #957 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:26 #958 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:26 #959 [Verbose] > │ https://www.hackerrank.com/challenges/rotate-string/forum                    │

00:00:26 #960 [Verbose] > │                                                                              │

00:00:26 #961 [Verbose] > │ Test: RotateStrings                                                          │

00:00:26 #962 [Verbose] > │                                                                              │

00:00:26 #963 [Verbose] > │ Solution: abc                                                                │

00:00:26 #964 [Verbose] > │ Test case 1. A. Time: 1842L                                                  │

00:00:26 #965 [Verbose] > │ Test case 2. B. Time: 1846L                                                  │

00:00:26 #966 [Verbose] > │ Test case 3. C. Time: 1936L                                                  │

00:00:26 #967 [Verbose] > │ Test case 4. CA. Time: 2224L                                                 │

00:00:26 #968 [Verbose] > │ Test case 5. CB. Time: 2329L                                                 │

00:00:26 #969 [Verbose] > │ Test case 6. D. Time: 2474L                                                  │

00:00:26 #970 [Verbose] > │ Test case 7. E. Time: 1664L                                                  │

00:00:26 #971 [Verbose] > │ Test case 8. F. Time: 1517L                                                  │

00:00:26 #972 [Verbose] > │ Test case 9. FA. Time: 1651L                                                 │

00:00:26 #973 [Verbose] > │ Test case 10. FB. Time: 3764L                                                │

00:00:26 #974 [Verbose] > │ Test case 11. FC. Time: 5415L                                                │

00:00:26 #975 [Verbose] > │                                                                              │

00:00:26 #976 [Verbose] > │ Solution: abcde                                                              │

00:00:26 #977 [Verbose] > │ Test case 1. A. Time: 3356L                                                  │

00:00:26 #978 [Verbose] > │ Test case 2. B. Time: 2592L                                                  │

00:00:26 #979 [Verbose] > │ Test case 3. C. Time: 2346L                                                  │

00:00:26 #980 [Verbose] > │ Test case 4. CA. Time: 2997L                                                 │

00:00:26 #981 [Verbose] > │ Test case 5. CB. Time: 3061L                                                 │

00:00:26 #982 [Verbose] > │ Test case 6. D. Time: 4051L                                                  │

00:00:26 #983 [Verbose] > │ Test case 7. E. Time: 1905L                                                  │

00:00:26 #984 [Verbose] > │ Test case 8. F. Time: 1771L                                                  │

00:00:26 #985 [Verbose] > │ Test case 9. FA. Time: 2175L                                                 │

00:00:26 #986 [Verbose] > │ Test case 10. FB. Time: 3275L                                                │

00:00:26 #987 [Verbose] > │ Test case 11. FC. Time: 5266L                                                │

00:00:26 #988 [Verbose] > │                                                                              │

00:00:26 #989 [Verbose] > │ Solution: abcdefghi                                                          │

00:00:26 #990 [Verbose] > │ Test case 1. A. Time: 4492L                                                  │

00:00:26 #991 [Verbose] > │ Test case 2. B. Time: 3526L                                                  │

00:00:26 #992 [Verbose] > │ Test case 3. C. Time: 3583L                                                  │

00:00:26 #993 [Verbose] > │ Test case 4. CA. Time: 3711L                                                 │

00:00:26 #994 [Verbose] > │ Test case 5. CB. Time: 4783L                                                 │

00:00:26 #995 [Verbose] > │ Test case 6. D. Time: 7557L                                                  │

00:00:26 #996 [Verbose] > │ Test case 7. E. Time: 3452L                                                  │

00:00:26 #997 [Verbose] > │ Test case 8. F. Time: 3050L                                                  │

00:00:26 #998 [Verbose] > │ Test case 9. FA. Time: 3275L                                                 │

00:00:26 #999 [Verbose] > │ Test case 10. FB. Time: 4635L                                                │

00:00:26 #1000 [Verbose] > │ Test case 11. FC. Time: 5616L                                                │

00:00:26 #1001 [Verbose] > │                                                                              │

00:00:26 #1002 [Verbose] > │ Solution: abab                                                               │

00:00:26 #1003 [Verbose] > │ Test case 1. A. Time: 2093L                                                  │

00:00:26 #1004 [Verbose] > │ Test case 2. B. Time: 1843L                                                  │

00:00:26 #1005 [Verbose] > │ Test case 3. C. Time: 1746L                                                  │

00:00:26 #1006 [Verbose] > │ Test case 4. CA. Time: 2085L                                                 │

00:00:26 #1007 [Verbose] > │ Test case 5. CB. Time: 2139L                                                 │

00:00:26 #1008 [Verbose] > │ Test case 6. D. Time: 2095L                                                  │

00:00:26 #1009 [Verbose] > │ Test case 7. E. Time: 1723L                                                  │

00:00:26 #1010 [Verbose] > │ Test case 8. F. Time: 1558L                                                  │

00:00:26 #1011 [Verbose] > │ Test case 9. FA. Time: 1620L                                                 │

00:00:26 #1012 [Verbose] > │ Test case 10. FB. Time: 2319L                                                │

00:00:26 #1013 [Verbose] > │ Test case 11. FC. Time: 3918L                                                │

00:00:26 #1014 [Verbose] > │                                                                              │

00:00:26 #1015 [Verbose] > │ Solution: aa                                                                 │

00:00:26 #1016 [Verbose] > │ Test case 1. A. Time: 1107L                                                  │

00:00:26 #1017 [Verbose] > │ Test case 2. B. Time: 1241L                                                  │

00:00:26 #1018 [Verbose] > │ Test case 3. C. Time: 1183L                                                  │

00:00:26 #1019 [Verbose] > │ Test case 4. CA. Time: 1563L                                                 │

00:00:26 #1020 [Verbose] > │ Test case 5. CB. Time: 1525L                                                 │

00:00:26 #1021 [Verbose] > │ Test case 6. D. Time: 1591L                                                  │

00:00:26 #1022 [Verbose] > │ Test case 7. E. Time: 1327L                                                  │

00:00:26 #1023 [Verbose] > │ Test case 8. F. Time: 1151L                                                  │

00:00:26 #1024 [Verbose] > │ Test case 9. FA. Time: 1180L                                                 │

00:00:26 #1025 [Verbose] > │ Test case 10. FB. Time: 1733L                                                │

00:00:26 #1026 [Verbose] > │ Test case 11. FC. Time: 2817L                                                │

00:00:26 #1027 [Verbose] > │                                                                              │

00:00:26 #1028 [Verbose] > │ Solution: z                                                                  │

00:00:26 #1029 [Verbose] > │ Test case 1. A. Time: 816L                                                   │

00:00:26 #1030 [Verbose] > │ Test case 2. B. Time: 745L                                                   │

00:00:26 #1031 [Verbose] > │ Test case 3. C. Time: 928L                                                   │

00:00:26 #1032 [Verbose] > │ Test case 4. CA. Time: 1375L                                                 │

00:00:26 #1033 [Verbose] > │ Test case 5. CB. Time: 1029L                                                 │

00:00:26 #1034 [Verbose] > │ Test case 6. D. Time: 852L                                                   │

00:00:26 #1035 [Verbose] > │ Test case 7. E. Time: 712L                                                   │

00:00:26 #1036 [Verbose] > │ Test case 8. F. Time: 263L                                                   │

00:00:26 #1037 [Verbose] > │ Test case 9. FA. Time: 232L                                                  │

00:00:26 #1038 [Verbose] > │ Test case 10. FB. Time: 773L                                                 │

00:00:26 #1039 [Verbose] > │ Test case 11. FC. Time: 1789L                                                │

00:00:26 #1040 [Verbose] > │                                                                              │

00:00:26 #1041 [Verbose] > │ Input           | Expected                                                   │

00:00:26 #1042 [Verbose] > │                                                                              │

00:00:26 #1043 [Verbose] > │ | Result                                                                     │

00:00:26 #1044 [Verbose] > │                                                                              │

00:00:26 #1045 [Verbose] > │ | Best                                                                       │

00:00:26 #1046 [Verbose] > │ ---             | ---                                                        │

00:00:26 #1047 [Verbose] > │                                                                              │

00:00:26 #1048 [Verbose] > │ | ---                                                                        │

00:00:26 #1049 [Verbose] > │                                                                              │

00:00:26 #1050 [Verbose] > │ | ---                                                                        │

00:00:26 #1051 [Verbose] > │ abc             | bca cab abc                                                │

00:00:26 #1052 [Verbose] > │                                                                              │

00:00:26 #1053 [Verbose] > │ | bca cab abc                                                                │

00:00:26 #1054 [Verbose] > │                                                                              │

00:00:26 #1055 [Verbose] > │ | (8, 1517)                                                                  │

00:00:26 #1056 [Verbose] > │ abcde           | bcdea cdeab deabc eabcd abcde                              │

00:00:26 #1057 [Verbose] > │ | bcdea cdeab deabc eabcd abcde                                              │

00:00:26 #1058 [Verbose] > │ | (8, 1771)                                                                  │

00:00:26 #1059 [Verbose] > │ abcdefghi       | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde          │

00:00:26 #1060 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi       | bcdefghia cdefghiab          │

00:00:26 #1061 [Verbose] > │ defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi        │

00:00:26 #1062 [Verbose] > │ | (8, 3050)                                                                  │

00:00:26 #1063 [Verbose] > │ abab            | baba abab baba abab                                        │

00:00:26 #1064 [Verbose] > │                                                                              │

00:00:26 #1065 [Verbose] > │ | baba abab baba abab                                                        │

00:00:26 #1066 [Verbose] > │                                                                              │

00:00:26 #1067 [Verbose] > │ | (8, 1558)                                                                  │

00:00:26 #1068 [Verbose] > │ aa              | aa aa                                                      │

00:00:26 #1069 [Verbose] > │                                                                              │

00:00:26 #1070 [Verbose] > │ | aa aa                                                                      │

00:00:26 #1071 [Verbose] > │                                                                              │

00:00:26 #1072 [Verbose] > │ | (1, 1107)                                                                  │

00:00:26 #1073 [Verbose] > │ z               | z                                                          │

00:00:26 #1074 [Verbose] > │                                                                              │

00:00:26 #1075 [Verbose] > │ | z                                                                          │

00:00:26 #1076 [Verbose] > │                                                                              │

00:00:26 #1077 [Verbose] > │ | (9, 232)                                                                   │

00:00:26 #1078 [Verbose] > │                                                                              │

00:00:26 #1079 [Verbose] > │ Averages                                                                     │

00:00:26 #1080 [Verbose] > │ Test case 1. Average Time: 2284L                                             │

00:00:26 #1081 [Verbose] > │ Test case 2. Average Time: 1965L                                             │

00:00:26 #1082 [Verbose] > │ Test case 3. Average Time: 1953L                                             │

00:00:26 #1083 [Verbose] > │ Test case 4. Average Time: 2325L                                             │

00:00:26 #1084 [Verbose] > │ Test case 5. Average Time: 2477L                                             │

00:00:26 #1085 [Verbose] > │ Test case 6. Average Time: 3103L                                             │

00:00:26 #1086 [Verbose] > │ Test case 7. Average Time: 1797L                                             │

00:00:26 #1087 [Verbose] > │ Test case 8. Average Time: 1551L                                             │

00:00:26 #1088 [Verbose] > │ Test case 9. Average Time: 1688L                                             │

00:00:26 #1089 [Verbose] > │ Test case 10. Average Time: 2749L                                            │

00:00:26 #1090 [Verbose] > │ Test case 11. Average Time: 4136L                                            │

00:00:26 #1091 [Verbose] > │                                                                              │

00:00:26 #1092 [Verbose] > │ Ranking                                                                      │

00:00:26 #1093 [Verbose] > │ Test case 11. Average Time: 4136L                                            │

00:00:26 #1094 [Verbose] > │ Test case 6. Average Time: 3103L                                             │

00:00:26 #1095 [Verbose] > │ Test case 10. Average Time: 2749L                                            │

00:00:26 #1096 [Verbose] > │ Test case 5. Average Time: 2477L                                             │

00:00:26 #1097 [Verbose] > │ Test case 4. Average Time: 2325L                                             │

00:00:26 #1098 [Verbose] > │ Test case 1. Average Time: 2284L                                             │

00:00:26 #1099 [Verbose] > │ Test case 2. Average Time: 1965L                                             │

00:00:26 #1100 [Verbose] > │ Test case 3. Average Time: 1953L                                             │

00:00:26 #1101 [Verbose] > │ Test case 7. Average Time: 1797L                                             │

00:00:26 #1102 [Verbose] > │ Test case 9. Average Time: 1688L                                             │

00:00:26 #1103 [Verbose] > │ Test case 8. Average Time: 1551L                                             │

00:00:26 #1104 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:26 #1105 [Verbose] >

00:00:26 #1106 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:00:26 #1107 [Verbose] > //// test

00:00:26 #1108 [Verbose] >

00:00:26 #1109 [Verbose] > let solutions = [[

00:00:26 #1110 [Verbose] >     "A",

00:00:26 #1111 [Verbose] >     fun (input: string) ->

00:00:26 #1112 [Verbose] >         let resultList =

00:00:26 #1113 [Verbose] >             List.fold (fun acc x ->

00:00:26 #1114 [Verbose] >                 let rotate (text: string) (letter: string) = (text |>

00:00:26 #1115 [Verbose] > SpiralSm.slice 1 (input.Length - 1)) + letter

00:00:26 #1116 [Verbose] >                 [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)

00:00:26 #1117 [Verbose] > ]] @ acc

00:00:26 #1118 [Verbose] >             ) [[]] (Seq.toList input)

00:00:26 #1119 [Verbose] >

00:00:26 #1120 [Verbose] >         (resultList, "")

00:00:26 #1121 [Verbose] >         ||> List.foldBack (fun acc x -> x + acc + " ")

00:00:26 #1122 [Verbose] >         |> _.TrimEnd()

00:00:26 #1123 [Verbose] >

00:00:26 #1124 [Verbose] >     "B",

00:00:26 #1125 [Verbose] >     fun input ->

00:00:26 #1126 [Verbose] >         input

00:00:26 #1127 [Verbose] >         |> Seq.toList

00:00:26 #1128 [Verbose] >         |> List.fold (fun (acc: string list) letter ->

00:00:26 #1129 [Verbose] >             let last =

00:00:26 #1130 [Verbose] >                 if acc.IsEmpty

00:00:26 #1131 [Verbose] >                 then input

00:00:26 #1132 [Verbose] >                 else acc.Head

00:00:26 #1133 [Verbose] >

00:00:26 #1134 [Verbose] >             let item = last.[[1 .. input.Length - 1]] + string letter

00:00:26 #1135 [Verbose] >

00:00:26 #1136 [Verbose] >             item :: acc

00:00:26 #1137 [Verbose] >         ) [[]]

00:00:26 #1138 [Verbose] >         |> List.rev

00:00:26 #1139 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1140 [Verbose] >

00:00:26 #1141 [Verbose] >     "C",

00:00:26 #1142 [Verbose] >     fun input ->

00:00:26 #1143 [Verbose] >         input

00:00:26 #1144 [Verbose] >         |> Seq.toList

00:00:26 #1145 [Verbose] >         |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..

00:00:26 #1146 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]

00:00:26 #1147 [Verbose] >         |> List.rev

00:00:26 #1148 [Verbose] >         |> List.skip 1

00:00:26 #1149 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1150 [Verbose] >

00:00:26 #1151 [Verbose] >     "CA",

00:00:26 #1152 [Verbose] >     fun input ->

00:00:26 #1153 [Verbose] >         input

00:00:26 #1154 [Verbose] >         |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..

00:00:26 #1155 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]

00:00:26 #1156 [Verbose] >         |> Seq.rev

00:00:26 #1157 [Verbose] >         |> Seq.skip 1

00:00:26 #1158 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1159 [Verbose] >

00:00:26 #1160 [Verbose] >     "CB",

00:00:26 #1161 [Verbose] >     fun input ->

00:00:26 #1162 [Verbose] >         input

00:00:26 #1163 [Verbose] >         |> Seq.toArray

00:00:26 #1164 [Verbose] >         |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|

00:00:26 #1165 [Verbose] > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]

00:00:26 #1166 [Verbose] >         |> Array.rev

00:00:26 #1167 [Verbose] >         |> Array.skip 1

00:00:26 #1168 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1169 [Verbose] >

00:00:26 #1170 [Verbose] >     "D",

00:00:26 #1171 [Verbose] >     fun input ->

00:00:26 #1172 [Verbose] >         input

00:00:26 #1173 [Verbose] >         |> Seq.toList

00:00:26 #1174 [Verbose] >         |> fun list ->

00:00:26 #1175 [Verbose] >             let rec loop (acc: char list list) = function

00:00:26 #1176 [Verbose] >                 | _ when acc.Length = list.Length -> acc

00:00:26 #1177 [Verbose] >                 | head :: tail ->

00:00:26 #1178 [Verbose] >                     let item = tail @ [[ head ]]

00:00:26 #1179 [Verbose] >                     loop (item :: acc) item

00:00:26 #1180 [Verbose] >                 | [[]] -> [[]]

00:00:26 #1181 [Verbose] >             loop [[]] list

00:00:26 #1182 [Verbose] >         |> List.rev

00:00:26 #1183 [Verbose] >         |> List.map (List.toArray >> String)

00:00:26 #1184 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1185 [Verbose] >

00:00:26 #1186 [Verbose] >     "E",

00:00:26 #1187 [Verbose] >     fun input ->

00:00:26 #1188 [Verbose] >         input

00:00:26 #1189 [Verbose] >         |> Seq.toList

00:00:26 #1190 [Verbose] >         |> fun list ->

00:00:26 #1191 [Verbose] >             let rec loop (last: string) = function

00:00:26 #1192 [Verbose] >                 | head :: tail ->

00:00:26 #1193 [Verbose] >                     let item = last.[[1 .. input.Length - 1]] + string head

00:00:26 #1194 [Verbose] >                     item :: loop item tail

00:00:26 #1195 [Verbose] >                 | [[]] -> [[]]

00:00:26 #1196 [Verbose] >             loop input list

00:00:26 #1197 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1198 [Verbose] >

00:00:26 #1199 [Verbose] >     "F",

00:00:26 #1200 [Verbose] >     fun input ->

00:00:26 #1201 [Verbose] >         Array.singleton 0

00:00:26 #1202 [Verbose] >         |> Array.append [[| 1 .. input.Length - 1 |]]

00:00:26 #1203 [Verbose] >         |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:26 #1204 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1205 [Verbose] >

00:00:26 #1206 [Verbose] >     "FA",

00:00:26 #1207 [Verbose] >     fun input ->

00:00:26 #1208 [Verbose] >         List.singleton 0

00:00:26 #1209 [Verbose] >         |> List.append [[ 1 .. input.Length - 1 ]]

00:00:26 #1210 [Verbose] >         |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:26 #1211 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1212 [Verbose] >

00:00:26 #1213 [Verbose] >     "FB",

00:00:26 #1214 [Verbose] >     fun input ->

00:00:26 #1215 [Verbose] >         Seq.singleton 0

00:00:26 #1216 [Verbose] >         |> Seq.append (seq { 1 .. input.Length - 1 })

00:00:26 #1217 [Verbose] >         |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:26 #1218 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1219 [Verbose] >

00:00:26 #1220 [Verbose] >     "FC",

00:00:26 #1221 [Verbose] >     fun input ->

00:00:26 #1222 [Verbose] >         Array.singleton 0

00:00:26 #1223 [Verbose] >         |> Array.append [[| 1 .. input.Length - 1 |]]

00:00:26 #1224 [Verbose] >         |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:26 #1225 [Verbose] >         |> SpiralSm.concat " "

00:00:26 #1226 [Verbose] > ]]

00:00:26 #1227 [Verbose] > let testCases = seq {

00:00:26 #1228 [Verbose] >     "abc", "bca cab abc"

00:00:26 #1229 [Verbose] >     "abcde", "bcdea cdeab deabc eabcd abcde"

00:00:26 #1230 [Verbose] >     "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef

00:00:26 #1231 [Verbose] > hiabcdefg iabcdefgh abcdefghi"

00:00:26 #1232 [Verbose] >     "abab", "baba abab baba abab"

00:00:26 #1233 [Verbose] >     "aa", "aa aa"

00:00:26 #1234 [Verbose] >     "z", "z"

00:00:26 #1235 [Verbose] > }

00:00:26 #1236 [Verbose] > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions

00:00:26 #1237 [Verbose] > testCases

00:00:26 #1238 [Verbose] > rotateStringsTests

00:00:26 #1239 [Verbose] > |> sortResultList

00:00:36 #1240 [Verbose] >

00:00:36 #1241 [Verbose] > ╭─[ 9.50s - stdout ]───────────────────────────────────────────────────────────╮

00:00:36 #1242 [Verbose] > │                                                                              │

00:00:36 #1243 [Verbose] > │                                                                              │

00:00:36 #1244 [Verbose] > │ Test: rotateStringsTests                                                     │

00:00:36 #1245 [Verbose] > │                                                                              │

00:00:36 #1246 [Verbose] > │ Solution: abc                                                                │

00:00:36 #1247 [Verbose] > │ Test case 1. A. Time: 2L                                                     │

00:00:36 #1248 [Verbose] > │ Test case 2. B. Time: 2L                                                     │

00:00:36 #1249 [Verbose] > │ Test case 3. C. Time: 1L                                                     │

00:00:36 #1250 [Verbose] > │ Test case 4. CA. Time: 3L                                                    │

00:00:36 #1251 [Verbose] > │ Test case 5. CB. Time: 2L                                                    │

00:00:36 #1252 [Verbose] > │ Test case 6. D. Time: 3L                                                     │

00:00:36 #1253 [Verbose] > │ Test case 7. E. Time: 1L                                                     │

00:00:36 #1254 [Verbose] > │ Test case 8. F. Time: 2L                                                     │

00:00:36 #1255 [Verbose] > │ Test case 9. FA. Time: 2L                                                    │

00:00:36 #1256 [Verbose] > │ Test case 10. FB. Time: 7L                                                   │

00:00:36 #1257 [Verbose] > │ Test case 11. FC. Time: 6L                                                   │

00:00:36 #1258 [Verbose] > │                                                                              │

00:00:36 #1259 [Verbose] > │ Solution: abcde                                                              │

00:00:36 #1260 [Verbose] > │ Test case 1. A. Time: 3L                                                     │

00:00:36 #1261 [Verbose] > │ Test case 2. B. Time: 0L                                                     │

00:00:36 #1262 [Verbose] > │ Test case 3. C. Time: 1L                                                     │

00:00:36 #1263 [Verbose] > │ Test case 4. CA. Time: 1L                                                    │

00:00:36 #1264 [Verbose] > │ Test case 5. CB. Time: 1L                                                    │

00:00:36 #1265 [Verbose] > │ Test case 6. D. Time: 4L                                                     │

00:00:36 #1266 [Verbose] > │ Test case 7. E. Time: 1L                                                     │

00:00:36 #1267 [Verbose] > │ Test case 8. F. Time: 0L                                                     │

00:00:36 #1268 [Verbose] > │ Test case 9. FA. Time: 1L                                                    │

00:00:36 #1269 [Verbose] > │ Test case 10. FB. Time: 4L                                                   │

00:00:36 #1270 [Verbose] > │ Test case 11. FC. Time: 5L                                                   │

00:00:36 #1271 [Verbose] > │                                                                              │

00:00:36 #1272 [Verbose] > │ Solution: abcdefghi                                                          │

00:00:36 #1273 [Verbose] > │ Test case 1. A. Time: 5L                                                     │

00:00:36 #1274 [Verbose] > │ Test case 2. B. Time: 1L                                                     │

00:00:36 #1275 [Verbose] > │ Test case 3. C. Time: 3L                                                     │

00:00:36 #1276 [Verbose] > │ Test case 4. CA. Time: 3L                                                    │

00:00:36 #1277 [Verbose] > │ Test case 5. CB. Time: 5L                                                    │

00:00:36 #1278 [Verbose] > │ Test case 6. D. Time: 7L                                                     │

00:00:36 #1279 [Verbose] > │ Test case 7. E. Time: 3L                                                     │

00:00:36 #1280 [Verbose] > │ Test case 8. F. Time: 0L                                                     │

00:00:36 #1281 [Verbose] > │ Test case 9. FA. Time: 4L                                                    │

00:00:36 #1282 [Verbose] > │ Test case 10. FB. Time: 2L                                                   │

00:00:36 #1283 [Verbose] > │ Test case 11. FC. Time: 7L                                                   │

00:00:36 #1284 [Verbose] > │                                                                              │

00:00:36 #1285 [Verbose] > │ Solution: abab                                                               │

00:00:36 #1286 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:36 #1287 [Verbose] > │ Test case 2. B. Time: 1L                                                     │

00:00:36 #1288 [Verbose] > │ Test case 3. C. Time: 1L                                                     │

00:00:36 #1289 [Verbose] > │ Test case 4. CA. Time: 1L                                                    │

00:00:36 #1290 [Verbose] > │ Test case 5. CB. Time: 1L                                                    │

00:00:36 #1291 [Verbose] > │ Test case 6. D. Time: 1L                                                     │

00:00:36 #1292 [Verbose] > │ Test case 7. E. Time: 0L                                                     │

00:00:36 #1293 [Verbose] > │ Test case 8. F. Time: 0L                                                     │

00:00:36 #1294 [Verbose] > │ Test case 9. FA. Time: 1L                                                    │

00:00:36 #1295 [Verbose] > │ Test case 10. FB. Time: 1L                                                   │

00:00:36 #1296 [Verbose] > │ Test case 11. FC. Time: 4L                                                   │

00:00:36 #1297 [Verbose] > │                                                                              │

00:00:36 #1298 [Verbose] > │ Solution: aa                                                                 │

00:00:36 #1299 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:36 #1300 [Verbose] > │ Test case 2. B. Time: 1L                                                     │

00:00:36 #1301 [Verbose] > │ Test case 3. C. Time: 0L                                                     │

00:00:36 #1302 [Verbose] > │ Test case 4. CA. Time: 0L                                                    │

00:00:36 #1303 [Verbose] > │ Test case 5. CB. Time: 0L                                                    │

00:00:36 #1304 [Verbose] > │ Test case 6. D. Time: 0L                                                     │

00:00:36 #1305 [Verbose] > │ Test case 7. E. Time: 0L                                                     │

00:00:36 #1306 [Verbose] > │ Test case 8. F. Time: 0L                                                     │

00:00:36 #1307 [Verbose] > │ Test case 9. FA. Time: 0L                                                    │

00:00:36 #1308 [Verbose] > │ Test case 10. FB. Time: 0L                                                   │

00:00:36 #1309 [Verbose] > │ Test case 11. FC. Time: 4L                                                   │

00:00:36 #1310 [Verbose] > │                                                                              │

00:00:36 #1311 [Verbose] > │ Solution: z                                                                  │

00:00:36 #1312 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:00:36 #1313 [Verbose] > │ Test case 2. B. Time: 0L                                                     │

00:00:36 #1314 [Verbose] > │ Test case 3. C. Time: 0L                                                     │

00:00:36 #1315 [Verbose] > │ Test case 4. CA. Time: 0L                                                    │

00:00:36 #1316 [Verbose] > │ Test case 5. CB. Time: 0L                                                    │

00:00:36 #1317 [Verbose] > │ Test case 6. D. Time: 0L                                                     │

00:00:36 #1318 [Verbose] > │ Test case 7. E. Time: 0L                                                     │

00:00:36 #1319 [Verbose] > │ Test case 8. F. Time: 0L                                                     │

00:00:36 #1320 [Verbose] > │ Test case 9. FA. Time: 0L                                                    │

00:00:36 #1321 [Verbose] > │ Test case 10. FB. Time: 1L                                                   │

00:00:36 #1322 [Verbose] > │ Test case 11. FC. Time: 5L                                                   │

00:00:36 #1323 [Verbose] > │                                                                              │

00:00:36 #1324 [Verbose] > │ Input    	| Expected                                                           │

00:00:36 #1325 [Verbose] > │                                                                              │

00:00:36 #1326 [Verbose] > │ | Result                                                                     │

00:00:36 #1327 [Verbose] > │                                                                              │

00:00:36 #1328 [Verbose] > │ | Best                                                                       │

00:00:36 #1329 [Verbose] > │ ---      	| ---                                                                │

00:00:36 #1330 [Verbose] > │                                                                              │

00:00:36 #1331 [Verbose] > │ | ---                                                                        │

00:00:36 #1332 [Verbose] > │                                                                              │

00:00:36 #1333 [Verbose] > │ | ---                                                                        │

00:00:36 #1334 [Verbose] > │ abc      	| bca cab abc                                                        │

00:00:36 #1335 [Verbose] > │                                                                              │

00:00:36 #1336 [Verbose] > │ | bca cab abc                                                                │

00:00:36 #1337 [Verbose] > │                                                                              │

00:00:36 #1338 [Verbose] > │ | (3, 1)                                                                     │

00:00:36 #1339 [Verbose] > │ abcde    	| bcdea cdeab deabc eabcd abcde                                      │

00:00:36 #1340 [Verbose] > │ | bcdea cdeab deabc eabcd abcde                                              │

00:00:36 #1341 [Verbose] > │ | (2, 0)                                                                     │

00:00:36 #1342 [Verbose] > │ abcdefghi	| bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef        │

00:00:36 #1343 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi	| bcdefghia cdefghiab defghiabc efghiabcd        │

00:00:36 #1344 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi	| (8, 0)                     │

00:00:36 #1345 [Verbose] > │ abab     	| baba abab baba abab                                                │

00:00:36 #1346 [Verbose] > │ | baba abab baba abab                                                        │

00:00:36 #1347 [Verbose] > │ | (1, 0)                                                                     │

00:00:36 #1348 [Verbose] > │ aa       	| aa aa                                                              │

00:00:36 #1349 [Verbose] > │                                                                              │

00:00:36 #1350 [Verbose] > │ | aa aa                                                                      │

00:00:36 #1351 [Verbose] > │                                                                              │

00:00:36 #1352 [Verbose] > │ | (1, 0)                                                                     │

00:00:36 #1353 [Verbose] > │ z        	| z                                                                  │

00:00:36 #1354 [Verbose] > │                                                                              │

00:00:36 #1355 [Verbose] > │ | z                                                                          │

00:00:36 #1356 [Verbose] > │                                                                              │

00:00:36 #1357 [Verbose] > │ | (1, 0)                                                                     │

00:00:36 #1358 [Verbose] > │                                                                              │

00:00:36 #1359 [Verbose] > │ Average Ranking                                                              │

00:00:36 #1360 [Verbose] > │ Test case 2. Average Time: 0L                                                │

00:00:36 #1361 [Verbose] > │ Test case 7. Average Time: 0L                                                │

00:00:36 #1362 [Verbose] > │ Test case 8. Average Time: 0L                                                │

00:00:36 #1363 [Verbose] > │ Test case 1. Average Time: 1L                                                │

00:00:36 #1364 [Verbose] > │ Test case 3. Average Time: 1L                                                │

00:00:36 #1365 [Verbose] > │ Test case 4. Average Time: 1L                                                │

00:00:36 #1366 [Verbose] > │ Test case 5. Average Time: 1L                                                │

00:00:36 #1367 [Verbose] > │ Test case 9. Average Time: 1L                                                │

00:00:36 #1368 [Verbose] > │ Test case 6. Average Time: 2L                                                │

00:00:36 #1369 [Verbose] > │ Test case 10. Average Time: 2L                                               │

00:00:36 #1370 [Verbose] > │ Test case 11. Average Time: 5L                                               │

00:00:36 #1371 [Verbose] > │                                                                              │

00:00:36 #1372 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:36 #1373 [Verbose] >

00:00:36 #1374 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:00:36 #1375 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:00:36 #1376 [Verbose] > │ ## rotate_strings_tests                                                      │

00:00:36 #1377 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:00:36 #1378 [Verbose] >

00:00:36 #1379 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:00:36 #1380 [Verbose] > // // test

00:00:36 #1381 [Verbose] > // // timeout=60000

00:00:36 #1382 [Verbose] > // // print_code=true

00:00:36 #1383 [Verbose] >

00:00:36 #1384 [Verbose] > inl get_solutions () =

00:00:36 #1385 [Verbose] >     [[

00:00:36 #1386 [Verbose] >         // "A",

00:00:36 #1387 [Verbose] >         // fun (input : string) =>

00:00:36 #1388 [Verbose] >         //     let resultList =

00:00:36 #1389 [Verbose] >         //         List.fold (fun acc x =>

00:00:36 #1390 [Verbose] >         //             let rotate (text : string) (letter : string) =

00:00:36 #1391 [Verbose] > text.Substring (1, input.Length - 1) + letter

00:00:36 #1392 [Verbose] >         //             [[ rotate (if acc.IsEmpty then input else acc.Head)

00:00:36 #1393 [Verbose] > (string x) ]] /@ acc

00:00:36 #1394 [Verbose] >         //         ) [[]] (Seq.toList input)

00:00:36 #1395 [Verbose] >

00:00:36 #1396 [Verbose] >         //     List.foldBack (fun acc x => x + acc + " ") resultList ""

00:00:36 #1397 [Verbose] >         //     |> fun x => x.TrimEnd ()

00:00:36 #1398 [Verbose] >

00:00:36 #1399 [Verbose] >         // "B",

00:00:36 #1400 [Verbose] >         // fun input =>

00:00:36 #1401 [Verbose] >         //     input

00:00:36 #1402 [Verbose] >         //     |> Seq.toList

00:00:36 #1403 [Verbose] >         //     |> List.fold (fun (acc : string list) letter =>

00:00:36 #1404 [Verbose] >         //         let last =

00:00:36 #1405 [Verbose] >         //             if acc.IsEmpty

00:00:36 #1406 [Verbose] >         //             then input

00:00:36 #1407 [Verbose] >         //             else acc.Head

00:00:36 #1408 [Verbose] >

00:00:36 #1409 [Verbose] >         //         let item = last.[[1 .. input.Length - 1]] + string letter

00:00:36 #1410 [Verbose] >

00:00:36 #1411 [Verbose] >         //         item :: acc

00:00:36 #1412 [Verbose] >         //     ) [[]]

00:00:36 #1413 [Verbose] >         //     |> List.rev

00:00:36 #1414 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1415 [Verbose] >

00:00:36 #1416 [Verbose] >         // "C",

00:00:36 #1417 [Verbose] >         // fun input =>

00:00:36 #1418 [Verbose] >         //     input

00:00:36 #1419 [Verbose] >         //     |> Seq.toList

00:00:36 #1420 [Verbose] >         //     |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..

00:00:36 #1421 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]

00:00:36 #1422 [Verbose] >         //     |> List.rev

00:00:36 #1423 [Verbose] >         //     |> List.skip 1

00:00:36 #1424 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1425 [Verbose] >

00:00:36 #1426 [Verbose] >         // "CA",

00:00:36 #1427 [Verbose] >         // fun input =>

00:00:36 #1428 [Verbose] >         //     input

00:00:36 #1429 [Verbose] >         //     |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..

00:00:36 #1430 [Verbose] > input.Length - 1 ]] + string letter :: acc) [[ input ]]

00:00:36 #1431 [Verbose] >         //     |> Seq.rev

00:00:36 #1432 [Verbose] >         //     |> Seq.skip 1

00:00:36 #1433 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1434 [Verbose] >

00:00:36 #1435 [Verbose] >         // "CB",

00:00:36 #1436 [Verbose] >         // fun input =>

00:00:36 #1437 [Verbose] >         //     input

00:00:36 #1438 [Verbose] >         //     |> Seq.toArray

00:00:36 #1439 [Verbose] >         //     |> Array.fold (fun (acc : a _ string) letter => acc |>

00:00:36 #1440 [Verbose] > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))

00:00:36 #1441 [Verbose] > (a ;[[ input ]])

00:00:36 #1442 [Verbose] >         //     |> Array.rev

00:00:36 #1443 [Verbose] >         //     |> Array.skip 1

00:00:36 #1444 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1445 [Verbose] >

00:00:36 #1446 [Verbose] >         // "D",

00:00:36 #1447 [Verbose] >         // fun input =>

00:00:36 #1448 [Verbose] >         //     input

00:00:36 #1449 [Verbose] >         //     |> Seq.toList

00:00:36 #1450 [Verbose] >         //     |> fun list =>

00:00:36 #1451 [Verbose] >         //         let rec loop (acc : list (list char)) = function

00:00:36 #1452 [Verbose] >         //             | _ when acc.Length = list.Length => acc

00:00:36 #1453 [Verbose] >         //             | head :: tail =>

00:00:36 #1454 [Verbose] >         //                 let item = tail /@ [[ head ]]

00:00:36 #1455 [Verbose] >         //                 loop (item :: acc) item

00:00:36 #1456 [Verbose] >         //             | [[]] => [[]]

00:00:36 #1457 [Verbose] >         //         loop [[]] list

00:00:36 #1458 [Verbose] >         //     |> List.rev

00:00:36 #1459 [Verbose] >         //     |> List.map (List.toArray >> String)

00:00:36 #1460 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1461 [Verbose] >

00:00:36 #1462 [Verbose] >         // "E",

00:00:36 #1463 [Verbose] >         // fun input =>

00:00:36 #1464 [Verbose] >         //     input

00:00:36 #1465 [Verbose] >         //     |> Seq.toList

00:00:36 #1466 [Verbose] >         //     |> fun list =>

00:00:36 #1467 [Verbose] >         //         let rec loop (last : string) = function

00:00:36 #1468 [Verbose] >         //             | head :: tail =>

00:00:36 #1469 [Verbose] >         //                 let item = last.[[1 .. input.Length - 1]] + string

00:00:36 #1470 [Verbose] > head

00:00:36 #1471 [Verbose] >         //                 item :: loop item tail

00:00:36 #1472 [Verbose] >         //             | [[]] => [[]]

00:00:36 #1473 [Verbose] >         //         loop input list

00:00:36 #1474 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1475 [Verbose] >

00:00:36 #1476 [Verbose] >         "F",

00:00:36 #1477 [Verbose] >         fun input =>

00:00:36 #1478 [Verbose] >         // Array.singleton 0

00:00:36 #1479 [Verbose] >         // |> Array.append [[| 1 .. input.Length - 1 |]]

00:00:36 #1480 [Verbose] >         // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:36 #1481 [Verbose] >         // |> SpiralSm.concat " "

00:00:36 #1482 [Verbose] >             inl input_length = input |> sm.length

00:00:36 #1483 [Verbose] >             am.singleton 0i32

00:00:36 #1484 [Verbose] >             |> am.append (am'.init_series 1 (input_length - 1) 1)

00:00:36 #1485 [Verbose] >             |> am.map (fun i =>

00:00:36 #1486 [Verbose] >                 inl a = input |> sm'.slice i (input_length - 1)

00:00:36 #1487 [Verbose] >                 inl b = input |> sm'.slice 0 (i - 1)

00:00:36 #1488 [Verbose] >                 $"!a + !b" : string

00:00:36 #1489 [Verbose] >             )

00:00:36 #1490 [Verbose] >             |> seq.of_array

00:00:36 #1491 [Verbose] >             |> sm'.concat " "

00:00:36 #1492 [Verbose] >

00:00:36 #1493 [Verbose] >         "FA",

00:00:36 #1494 [Verbose] >         fun input =>

00:00:36 #1495 [Verbose] >         //     List.singleton 0

00:00:36 #1496 [Verbose] >         //     |> List.append [[ 1 .. input.Length - 1 ]]

00:00:36 #1497 [Verbose] >         //   //  |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:36 #1498 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1499 [Verbose] >             inl input_length = input |> sm.length

00:00:36 #1500 [Verbose] >             listm.singleton 0i32

00:00:36 #1501 [Verbose] >             |> listm.append (listm'.init_series 1 (input_length - 1) 1)

00:00:36 #1502 [Verbose] >             |> listm.map (fun i =>

00:00:36 #1503 [Verbose] >                 inl a = input |> sm'.slice i (input_length - 1)

00:00:36 #1504 [Verbose] >                 inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1)

00:00:36 #1505 [Verbose] >                 $"!a + !b" : string

00:00:36 #1506 [Verbose] >             )

00:00:36 #1507 [Verbose] >             |> listm.toArray

00:00:36 #1508 [Verbose] >             |> fun x => x : a i32 _

00:00:36 #1509 [Verbose] >             |> seq.of_array

00:00:36 #1510 [Verbose] >             |> sm'.concat " "

00:00:36 #1511 [Verbose] >

00:00:36 #1512 [Verbose] >         // "FB",

00:00:36 #1513 [Verbose] >         // fun input =>

00:00:36 #1514 [Verbose] >         //     Seq.singleton 0

00:00:36 #1515 [Verbose] >         //   //  |> Seq.append (seq { 1 .. input.Length - 1 })

00:00:36 #1516 [Verbose] >         //   //  |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])

00:00:36 #1517 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1518 [Verbose] >

00:00:36 #1519 [Verbose] >         // "FC",

00:00:36 #1520 [Verbose] >         // fun input =>

00:00:36 #1521 [Verbose] >         //     Array.singleton 0

00:00:36 #1522 [Verbose] >         //     |> Array.append (a ;[[ 1 .. input.Length - 1 ]])

00:00:36 #1523 [Verbose] >         // //    |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ ..

00:00:36 #1524 [Verbose] > i - 1 ]])

00:00:36 #1525 [Verbose] >         //     |> SpiralSm.concat " "

00:00:36 #1526 [Verbose] >     ]]

00:00:36 #1527 [Verbose] >

00:00:36 #1528 [Verbose] > inl rec rotate_strings_tests () =

00:00:36 #1529 [Verbose] >     inl test_cases = [[

00:00:36 #1530 [Verbose] >         "abc", "bca cab abc"

00:00:36 #1531 [Verbose] >         "abcde", "bcdea cdeab deabc eabcd abcde"

00:00:36 #1532 [Verbose] >         "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde

00:00:36 #1533 [Verbose] > ghiabcdef hiabcdefg iabcdefgh abcdefghi"

00:00:36 #1534 [Verbose] >         "abab", "baba abab baba abab"

00:00:36 #1535 [Verbose] >         "aa", "aa aa"

00:00:36 #1536 [Verbose] >         "z", "z"

00:00:36 #1537 [Verbose] >     ]]

00:00:36 #1538 [Verbose] >

00:00:36 #1539 [Verbose] >     inl solutions = get_solutions ()

00:00:36 #1540 [Verbose] >

00:00:36 #1541 [Verbose] >     // inl is_fast () = true

00:00:36 #1542 [Verbose] >

00:00:36 #1543 [Verbose] >     inl count =

00:00:36 #1544 [Verbose] >         if is_fast ()

00:00:36 #1545 [Verbose] >         then 1000i32

00:00:36 #1546 [Verbose] >         else 2000000i32

00:00:36 #1547 [Verbose] >

00:00:36 #1548 [Verbose] >     run_all (nameof rotate_strings_tests) count solutions test_cases

00:00:36 #1549 [Verbose] >     |> sort_result_list

00:00:36 #1550 [Verbose] >

00:00:36 #1551 [Verbose] > rotate_strings_tests ()

00:00:36 #1552 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1320-3943-4368-40caa688cdd2\main.spi

00:01:02 #1553 [Verbose] >

00:01:02 #1554 [Verbose] > ╭─[ 26.15s - stdout ]──────────────────────────────────────────────────────────╮

00:01:02 #1555 [Verbose] > │ type UH0 =                                                                   │

00:01:02 #1556 [Verbose] > │     | UH0_0                                                                  │

00:01:02 #1557 [Verbose] > │     | UH0_1 of string * string * UH0                                         │

00:01:02 #1558 [Verbose] > │ and Mut0 = {mutable l0 : uint64}                                             │

00:01:02 #1559 [Verbose] > │ and Mut1 = {mutable l0 : int32}                                              │

00:01:02 #1560 [Verbose] > │ and UH1 =                                                                    │

00:01:02 #1561 [Verbose] > │     | UH1_0                                                                  │

00:01:02 #1562 [Verbose] > │     | UH1_1 of int32 * UH1                                                   │

00:01:02 #1563 [Verbose] > │ and UH2 =                                                                    │

00:01:02 #1564 [Verbose] > │     | UH2_0                                                                  │

00:01:02 #1565 [Verbose] > │     | UH2_1 of string * UH2                                                  │

00:01:02 #1566 [Verbose] > │ and UH3 =                                                                    │

00:01:02 #1567 [Verbose] > │     | UH3_0                                                                  │

00:01:02 #1568 [Verbose] > │     | UH3_1 of int32 * string * (string -> string) * UH3                     │

00:01:02 #1569 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:02 #1570 [Verbose] > │     | US0_0 of f0_0 : System.ConsoleColor                                    │

00:01:02 #1571 [Verbose] > │     | US0_1                                                                  │

00:01:02 #1572 [Verbose] > │ and UH4 =                                                                    │

00:01:02 #1573 [Verbose] > │     | UH4_0                                                                  │

00:01:02 #1574 [Verbose] > │     | UH4_1 of int64 * int64 * UH4                                           │

00:01:02 #1575 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH4; mutable l2 : int64}       │

00:01:02 #1576 [Verbose] > │ and UH5 =                                                                    │

00:01:02 #1577 [Verbose] > │     | UH5_0                                                                  │

00:01:02 #1578 [Verbose] > │     | UH5_1 of UH2 * US0 * UH5                                               │

00:01:02 #1579 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:02 #1580 [Verbose] > │     | US1_0 of f0_0 : int64                                                  │

00:01:02 #1581 [Verbose] > │     | US1_1                                                                  │

00:01:02 #1582 [Verbose] > │ and UH6 =                                                                    │

00:01:02 #1583 [Verbose] > │     | UH6_0                                                                  │

00:01:02 #1584 [Verbose] > │     | UH6_1 of int32 * int64 * UH6                                           │

00:01:02 #1585 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH6; mutable l2 : int32}       │

00:01:02 #1586 [Verbose] > │ and UH7 =                                                                    │

00:01:02 #1587 [Verbose] > │     | UH7_0                                                                  │

00:01:02 #1588 [Verbose] > │     | UH7_1 of int32 * string * UH7                                          │

00:01:02 #1589 [Verbose] > │ let rec method2 (v0 : UH0, v1 : uint64) : uint64 =                           │

00:01:02 #1590 [Verbose] > │     match v0 with                                                            │

00:01:02 #1591 [Verbose] > │     | UH0_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1592 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:01:02 #1593 [Verbose] > │         method2(v4, v5)                                                      │

00:01:02 #1594 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:01:02 #1595 [Verbose] > │         v1                                                                   │

00:01:02 #1596 [Verbose] > │ and method3 (v0 : (struct (string * string) []), v1 : UH0, v2 : uint64) :    │

00:01:02 #1597 [Verbose] > │ uint64 =                                                                     │

00:01:02 #1598 [Verbose] > │     match v1 with                                                            │

00:01:02 #1599 [Verbose] > │     | UH0_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:02 #1600 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:02 #1601 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:01:02 #1602 [Verbose] > │         method3(v0, v5, v6)                                                  │

00:01:02 #1603 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:01:02 #1604 [Verbose] > │         v2                                                                   │

00:01:02 #1605 [Verbose] > │ and method1 (v0 : UH0) : (struct (string * string) []) =                     │

00:01:02 #1606 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:02 #1607 [Verbose] > │     let v2 : uint64 = method2(v0, v1)                                        │

00:01:02 #1608 [Verbose] > │     let v3 : (struct (string * string) []) = Array.zeroCreate<struct (string │

00:01:02 #1609 [Verbose] > │ * string)> (System.Convert.ToInt32(v2))                                      │

00:01:02 #1610 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:02 #1611 [Verbose] > │     let v5 : uint64 = method3(v3, v0, v4)                                    │

00:01:02 #1612 [Verbose] > │     v3                                                                       │

00:01:02 #1613 [Verbose] > │ and method4 (v0 : uint64, v1 : Mut0) : bool =                                │

00:01:02 #1614 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:01:02 #1615 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:02 #1616 [Verbose] > │     v3                                                                       │

00:01:02 #1617 [Verbose] > │ and method5 (v0 : int32, v1 : Mut1) : bool =                                 │

00:01:02 #1618 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:01:02 #1619 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:02 #1620 [Verbose] > │     v3                                                                       │

00:01:02 #1621 [Verbose] > │ and closure1 () (v0 : string) : string =                                     │

00:01:02 #1622 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:01:02 #1623 [Verbose] > │     let v2 : (int32 []) = Array.zeroCreate<int32> (1)                        │

00:01:02 #1624 [Verbose] > │     v2.[int 0] <- 0                                                          │

00:01:02 #1625 [Verbose] > │     let v3 : int32 = v1 - 1                                                  │

00:01:02 #1626 [Verbose] > │     let v4 : int32 = v3 - 1                                                  │

00:01:02 #1627 [Verbose] > │     let v5 : int32 = v4 + 1                                                  │

00:01:02 #1628 [Verbose] > │     let v6 : (int32 []) = Array.zeroCreate<int32> (v5)                       │

00:01:02 #1629 [Verbose] > │     let v7 : Mut1 = {l0 = 0} : Mut1                                          │

00:01:02 #1630 [Verbose] > │     while method5(v5, v7) do                                                 │

00:01:02 #1631 [Verbose] > │         let v9 : int32 = v7.l0                                               │

00:01:02 #1632 [Verbose] > │         let v10 : int32 = 1 + v9                                             │

00:01:02 #1633 [Verbose] > │         v6.[int v9] <- v10                                                   │

00:01:02 #1634 [Verbose] > │         let v11 : int32 = v9 + 1                                             │

00:01:02 #1635 [Verbose] > │         v7.l0 <- v11                                                         │

00:01:02 #1636 [Verbose] > │         ()                                                                   │

00:01:02 #1637 [Verbose] > │     let v12 : int32 = v6.Length                                              │

00:01:02 #1638 [Verbose] > │     let v13 : int32 = v2.Length                                              │

00:01:02 #1639 [Verbose] > │     let v14 : int32 = v12 + v13                                              │

00:01:02 #1640 [Verbose] > │     let v15 : (int32 []) = Array.zeroCreate<int32> (v14)                     │

00:01:02 #1641 [Verbose] > │     let v16 : Mut1 = {l0 = 0} : Mut1                                         │

00:01:02 #1642 [Verbose] > │     while method5(v14, v16) do                                               │

00:01:02 #1643 [Verbose] > │         let v18 : int32 = v16.l0                                             │

00:01:02 #1644 [Verbose] > │         let v19 : bool = v18 < v12                                           │

00:01:02 #1645 [Verbose] > │         let v23 : int32 =                                                    │

00:01:02 #1646 [Verbose] > │             if v19 then                                                      │

00:01:02 #1647 [Verbose] > │                 let v20 : int32 = v6.[int v18]                               │

00:01:02 #1648 [Verbose] > │                 v20                                                          │

00:01:02 #1649 [Verbose] > │             else                                                             │

00:01:02 #1650 [Verbose] > │                 let v21 : int32 = v18 - v12                                  │

00:01:02 #1651 [Verbose] > │                 let v22 : int32 = v2.[int v21]                               │

00:01:02 #1652 [Verbose] > │                 v22                                                          │

00:01:02 #1653 [Verbose] > │         v15.[int v18] <- v23                                                 │

00:01:02 #1654 [Verbose] > │         let v24 : int32 = v18 + 1                                            │

00:01:02 #1655 [Verbose] > │         v16.l0 <- v24                                                        │

00:01:02 #1656 [Verbose] > │         ()                                                                   │

00:01:02 #1657 [Verbose] > │     let v25 : int32 = v15.Length                                             │

00:01:02 #1658 [Verbose] > │     let v26 : (string []) = Array.zeroCreate<string> (v25)                   │

00:01:02 #1659 [Verbose] > │     let v27 : Mut1 = {l0 = 0} : Mut1                                         │

00:01:02 #1660 [Verbose] > │     while method5(v25, v27) do                                               │

00:01:02 #1661 [Verbose] > │         let v29 : int32 = v27.l0                                             │

00:01:02 #1662 [Verbose] > │         let v30 : int32 = v15.[int v29]                                      │

00:01:02 #1663 [Verbose] > │         let v31 : string = v0.[int v30..int v3]                              │

00:01:02 #1664 [Verbose] > │         let v32 : int32 = v30 - 1                                            │

00:01:02 #1665 [Verbose] > │         let v33 : string = v0.[int 0..int v32]                               │

00:01:02 #1666 [Verbose] > │         let v34 : string = v31 + v33                                         │

00:01:02 #1667 [Verbose] > │         v26.[int v29] <- v34                                                 │

00:01:02 #1668 [Verbose] > │         let v35 : int32 = v29 + 1                                            │

00:01:02 #1669 [Verbose] > │         v27.l0 <- v35                                                        │

00:01:02 #1670 [Verbose] > │         ()                                                                   │

00:01:02 #1671 [Verbose] > │     let v36 : ((string []) -> string seq) = Seq.ofArray                      │

00:01:02 #1672 [Verbose] > │     let v37 : string seq = v36 v26                                           │

00:01:02 #1673 [Verbose] > │     let v38 : string = " "                                                   │

00:01:02 #1674 [Verbose] > │     let v39 : string = v37 |> String.concat v38                              │

00:01:02 #1675 [Verbose] > │     v39                                                                      │

00:01:02 #1676 [Verbose] > │ and method6 (v0 : float, v1 : float) : UH1 =                                 │

00:01:02 #1677 [Verbose] > │     let v2 : bool = v1 < v0                                                  │

00:01:02 #1678 [Verbose] > │     if v2 then                                                               │

00:01:02 #1679 [Verbose] > │         let v3 : int32 = int32 v1                                            │

00:01:02 #1680 [Verbose] > │         let v4 : int32 = 1 + v3                                              │

00:01:02 #1681 [Verbose] > │         let v5 : float = v1 + 1.0                                            │

00:01:02 #1682 [Verbose] > │         let v6 : UH1 = method6(v0, v5)                                       │

00:01:02 #1683 [Verbose] > │         UH1_1(v4, v6)                                                        │

00:01:02 #1684 [Verbose] > │     else                                                                     │

00:01:02 #1685 [Verbose] > │         UH1_0                                                                │

00:01:02 #1686 [Verbose] > │ and method7 (v0 : UH1, v1 : UH1) : UH1 =                                     │

00:01:02 #1687 [Verbose] > │     match v0 with                                                            │

00:01:02 #1688 [Verbose] > │     | UH1_1(v2, v3) -> (* Cons *)                                            │

00:01:02 #1689 [Verbose] > │         let v4 : UH1 = method7(v3, v1)                                       │

00:01:02 #1690 [Verbose] > │         UH1_1(v2, v4)                                                        │

00:01:02 #1691 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:01:02 #1692 [Verbose] > │         v1                                                                   │

00:01:02 #1693 [Verbose] > │ and method8 (v0 : string, v1 : int32, v2 : UH1, v3 : UH2) : UH2 =            │

00:01:02 #1694 [Verbose] > │     match v2 with                                                            │

00:01:02 #1695 [Verbose] > │     | UH1_1(v4, v5) -> (* Cons *)                                            │

00:01:02 #1696 [Verbose] > │         let v6 : UH2 = method8(v0, v1, v5, v3)                               │

00:01:02 #1697 [Verbose] > │         let v7 : int32 = v1 - 1                                              │

00:01:02 #1698 [Verbose] > │         let v8 : string = v0.[int v4..int v7]                                │

00:01:02 #1699 [Verbose] > │         let v9 : bool = v4 = 0                                               │

00:01:02 #1700 [Verbose] > │         let v13 : string =                                                   │

00:01:02 #1701 [Verbose] > │             if v9 then                                                       │

00:01:02 #1702 [Verbose] > │                 let v10 : string = ""                                        │

00:01:02 #1703 [Verbose] > │                 v10                                                          │

00:01:02 #1704 [Verbose] > │             else                                                             │

00:01:02 #1705 [Verbose] > │                 let v11 : int32 = v4 - 1                                     │

00:01:02 #1706 [Verbose] > │                 let v12 : string = v0.[int 0..int v11]                       │

00:01:02 #1707 [Verbose] > │                 v12                                                          │

00:01:02 #1708 [Verbose] > │         let v14 : string = v8 + v13                                          │

00:01:02 #1709 [Verbose] > │         UH2_1(v14, v6)                                                       │

00:01:02 #1710 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:01:02 #1711 [Verbose] > │         v3                                                                   │

00:01:02 #1712 [Verbose] > │ and method10 (v0 : UH2, v1 : int32) : int32 =                                │

00:01:02 #1713 [Verbose] > │     match v0 with                                                            │

00:01:02 #1714 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:01:02 #1715 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:01:02 #1716 [Verbose] > │         method10(v3, v4)                                                     │

00:01:02 #1717 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:02 #1718 [Verbose] > │         v1                                                                   │

00:01:02 #1719 [Verbose] > │ and method11 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │

00:01:02 #1720 [Verbose] > │     match v1 with                                                            │

00:01:02 #1721 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:01:02 #1722 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:01:02 #1723 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:01:02 #1724 [Verbose] > │         method11(v0, v4, v5)                                                 │

00:01:02 #1725 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:02 #1726 [Verbose] > │         v2                                                                   │

00:01:02 #1727 [Verbose] > │ and method9 (v0 : UH2) : (string []) =                                       │

00:01:02 #1728 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:02 #1729 [Verbose] > │     let v2 : int32 = method10(v0, v1)                                        │

00:01:02 #1730 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │

00:01:02 #1731 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:02 #1732 [Verbose] > │     let v5 : int32 = method11(v3, v0, v4)                                    │

00:01:02 #1733 [Verbose] > │     v3                                                                       │

00:01:02 #1734 [Verbose] > │ and closure2 () (v0 : string) : string =                                     │

00:01:02 #1735 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:01:02 #1736 [Verbose] > │     let v2 : int32 = v1 - 1                                                  │

00:01:02 #1737 [Verbose] > │     let v3 : int32 = v2 - 1                                                  │

00:01:02 #1738 [Verbose] > │     let v4 : float = float v3                                                │

00:01:02 #1739 [Verbose] > │     let v5 : float = v4 + 1.0                                                │

00:01:02 #1740 [Verbose] > │     let v6 : float = 0.0                                                     │

00:01:02 #1741 [Verbose] > │     let v7 : UH1 = method6(v5, v6)                                           │

00:01:02 #1742 [Verbose] > │     let v8 : int32 = 0                                                       │

00:01:02 #1743 [Verbose] > │     let v9 : UH1 = UH1_0                                                     │

00:01:02 #1744 [Verbose] > │     let v10 : UH1 = UH1_1(v8, v9)                                            │

00:01:02 #1745 [Verbose] > │     let v11 : UH1 = method7(v7, v10)                                         │

00:01:02 #1746 [Verbose] > │     let v12 : UH2 = UH2_0                                                    │

00:01:02 #1747 [Verbose] > │     let v13 : UH2 = method8(v0, v1, v11, v12)                                │

00:01:02 #1748 [Verbose] > │     let v14 : (string []) = method9(v13)                                     │

00:01:02 #1749 [Verbose] > │     let v15 : ((string []) -> string seq) = Seq.ofArray                      │

00:01:02 #1750 [Verbose] > │     let v16 : string seq = v15 v14                                           │

00:01:02 #1751 [Verbose] > │     let v17 : string = " "                                                   │

00:01:02 #1752 [Verbose] > │     let v18 : string = v16 |> String.concat v17                              │

00:01:02 #1753 [Verbose] > │     v18                                                                      │

00:01:02 #1754 [Verbose] > │ and method13 (v0 : UH3, v1 : uint64) : uint64 =                              │

00:01:02 #1755 [Verbose] > │     match v0 with                                                            │

00:01:02 #1756 [Verbose] > │     | UH3_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:01:02 #1757 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │

00:01:02 #1758 [Verbose] > │         method13(v5, v6)                                                     │

00:01:02 #1759 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:01:02 #1760 [Verbose] > │         v1                                                                   │

00:01:02 #1761 [Verbose] > │ and method14 (v0 : (struct (int32 * string * (string -> string)) []), v1 :   │

00:01:02 #1762 [Verbose] > │ UH3, v2 : uint64) : uint64 =                                                 │

00:01:02 #1763 [Verbose] > │     match v1 with                                                            │

00:01:02 #1764 [Verbose] > │     | UH3_1(v3, v4, v5, v6) -> (* Cons *)                                    │

00:01:02 #1765 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │

00:01:02 #1766 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │

00:01:02 #1767 [Verbose] > │         method14(v0, v6, v7)                                                 │

00:01:02 #1768 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:01:02 #1769 [Verbose] > │         v2                                                                   │

00:01:02 #1770 [Verbose] > │ and method12 (v0 : UH3) : (struct (int32 * string * (string -> string)) [])  │

00:01:02 #1771 [Verbose] > │ =                                                                            │

00:01:02 #1772 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:02 #1773 [Verbose] > │     let v2 : uint64 = method13(v0, v1)                                       │

00:01:02 #1774 [Verbose] > │     let v3 : (struct (int32 * string * (string -> string)) []) =             │

00:01:02 #1775 [Verbose] > │ Array.zeroCreate<struct (int32 * string * (string -> string))>               │

00:01:02 #1776 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:01:02 #1777 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:02 #1778 [Verbose] > │     let v5 : uint64 = method14(v3, v0, v4)                                   │

00:01:02 #1779 [Verbose] > │     v3                                                                       │

00:01:02 #1780 [Verbose] > │ and method15 (v0 : Mut1) : bool =                                            │

00:01:02 #1781 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:02 #1782 [Verbose] > │     let v2 : bool = v1 < 2000001                                             │

00:01:02 #1783 [Verbose] > │     v2                                                                       │

00:01:02 #1784 [Verbose] > │ and closure3 (v0 : string, v1 : (string -> string)) (v2 : int32) : string =  │

00:01:02 #1785 [Verbose] > │     v1 v0                                                                    │

00:01:02 #1786 [Verbose] > │ and method16 (v0 : string, v1 : (string []), v2 : uint64) : bool =           │

00:01:02 #1787 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │

00:01:02 #1788 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:01:02 #1789 [Verbose] > │     if v4 then                                                               │

00:01:02 #1790 [Verbose] > │         let v5 : string = v1.[int v2]                                        │

00:01:02 #1791 [Verbose] > │         let v6 : bool = v0 = v5                                              │

00:01:02 #1792 [Verbose] > │         if v6 then                                                           │

00:01:02 #1793 [Verbose] > │             let v7 : uint64 = v2 + 1UL                                       │

00:01:02 #1794 [Verbose] > │             method16(v0, v1, v7)                                             │

00:01:02 #1795 [Verbose] > │         else                                                                 │

00:01:02 #1796 [Verbose] > │             false                                                            │

00:01:02 #1797 [Verbose] > │     else                                                                     │

00:01:02 #1798 [Verbose] > │         true                                                                 │

00:01:02 #1799 [Verbose] > │ and method17 (v0 : uint64, v1 : Mut2) : bool =                               │

00:01:02 #1800 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:01:02 #1801 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:02 #1802 [Verbose] > │     v3                                                                       │

00:01:02 #1803 [Verbose] > │ and method18 (v0 : UH4, v1 : UH4) : UH4 =                                    │

00:01:02 #1804 [Verbose] > │     match v0 with                                                            │

00:01:02 #1805 [Verbose] > │     | UH4_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1806 [Verbose] > │         let v5 : UH4 = UH4_1(v2, v3, v1)                                     │

00:01:02 #1807 [Verbose] > │         method18(v4, v5)                                                     │

00:01:02 #1808 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:01:02 #1809 [Verbose] > │         v1                                                                   │

00:01:02 #1810 [Verbose] > │ and method20 (v0 : UH4, v1 : int32) : int32 =                                │

00:01:02 #1811 [Verbose] > │     match v0 with                                                            │

00:01:02 #1812 [Verbose] > │     | UH4_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1813 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:01:02 #1814 [Verbose] > │         method20(v4, v5)                                                     │

00:01:02 #1815 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:01:02 #1816 [Verbose] > │         v1                                                                   │

00:01:02 #1817 [Verbose] > │ and method21 (v0 : (struct (int64 * int64) []), v1 : UH4, v2 : int32) :      │

00:01:02 #1818 [Verbose] > │ int32 =                                                                      │

00:01:02 #1819 [Verbose] > │     match v1 with                                                            │

00:01:02 #1820 [Verbose] > │     | UH4_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:02 #1821 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:02 #1822 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:01:02 #1823 [Verbose] > │         method21(v0, v5, v6)                                                 │

00:01:02 #1824 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:01:02 #1825 [Verbose] > │         v2                                                                   │

00:01:02 #1826 [Verbose] > │ and method19 (v0 : UH4) : (struct (int64 * int64) []) =                      │

00:01:02 #1827 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:02 #1828 [Verbose] > │     let v2 : int32 = method20(v0, v1)                                        │

00:01:02 #1829 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │

00:01:02 #1830 [Verbose] > │ int64)> (v2)                                                                 │

00:01:02 #1831 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:02 #1832 [Verbose] > │     let v5 : int32 = method21(v3, v0, v4)                                    │

00:01:02 #1833 [Verbose] > │     v3                                                                       │

00:01:02 #1834 [Verbose] > │ and closure4 () struct (v0 : int64, v1 : int64) : int64 =                    │

00:01:02 #1835 [Verbose] > │     v1                                                                       │

00:01:02 #1836 [Verbose] > │ and method23 (v0 : UH5, v1 : uint64) : uint64 =                              │

00:01:02 #1837 [Verbose] > │     match v0 with                                                            │

00:01:02 #1838 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1839 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:01:02 #1840 [Verbose] > │         method23(v4, v5)                                                     │

00:01:02 #1841 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:02 #1842 [Verbose] > │         v1                                                                   │

00:01:02 #1843 [Verbose] > │ and method24 (v0 : (struct (UH2 * US0) []), v1 : UH5, v2 : uint64) : uint64  │

00:01:02 #1844 [Verbose] > │ =                                                                            │

00:01:02 #1845 [Verbose] > │     match v1 with                                                            │

00:01:02 #1846 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:02 #1847 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:02 #1848 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:01:02 #1849 [Verbose] > │         method24(v0, v5, v6)                                                 │

00:01:02 #1850 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:02 #1851 [Verbose] > │         v2                                                                   │

00:01:02 #1852 [Verbose] > │ and method22 (v0 : UH5) : (struct (UH2 * US0) []) =                          │

00:01:02 #1853 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:02 #1854 [Verbose] > │     let v2 : uint64 = method23(v0, v1)                                       │

00:01:02 #1855 [Verbose] > │     let v3 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 * US0)>  │

00:01:02 #1856 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:01:02 #1857 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:02 #1858 [Verbose] > │     let v5 : uint64 = method24(v3, v0, v4)                                   │

00:01:02 #1859 [Verbose] > │     v3                                                                       │

00:01:02 #1860 [Verbose] > │ and method26 (v0 : UH2, v1 : uint64) : uint64 =                              │

00:01:02 #1861 [Verbose] > │     match v0 with                                                            │

00:01:02 #1862 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:01:02 #1863 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │

00:01:02 #1864 [Verbose] > │         method26(v3, v4)                                                     │

00:01:02 #1865 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:02 #1866 [Verbose] > │         v1                                                                   │

00:01:02 #1867 [Verbose] > │ and method27 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │

00:01:02 #1868 [Verbose] > │     match v1 with                                                            │

00:01:02 #1869 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:01:02 #1870 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:01:02 #1871 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │

00:01:02 #1872 [Verbose] > │         method27(v0, v4, v5)                                                 │

00:01:02 #1873 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:02 #1874 [Verbose] > │         v2                                                                   │

00:01:02 #1875 [Verbose] > │ and method25 (v0 : UH2) : (string []) =                                      │

00:01:02 #1876 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:02 #1877 [Verbose] > │     let v2 : uint64 = method26(v0, v1)                                       │

00:01:02 #1878 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │

00:01:02 #1879 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:01:02 #1880 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:02 #1881 [Verbose] > │     let v5 : uint64 = method27(v3, v0, v4)                                   │

00:01:02 #1882 [Verbose] > │     v3                                                                       │

00:01:02 #1883 [Verbose] > │ and closure5 () (v0 : int64) : US1 =                                         │

00:01:02 #1884 [Verbose] > │     US1_0(v0)                                                                │

00:01:02 #1885 [Verbose] > │ and method28 () : (int64 -> US1) =                                           │

00:01:02 #1886 [Verbose] > │     closure5()                                                               │

00:01:02 #1887 [Verbose] > │ and method29 (v0 : uint64, v1 : Mut3) : bool =                               │

00:01:02 #1888 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:01:02 #1889 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:02 #1890 [Verbose] > │     v3                                                                       │

00:01:02 #1891 [Verbose] > │ and method30 (v0 : UH6, v1 : UH6) : UH6 =                                    │

00:01:02 #1892 [Verbose] > │     match v0 with                                                            │

00:01:02 #1893 [Verbose] > │     | UH6_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1894 [Verbose] > │         let v5 : UH6 = UH6_1(v2, v3, v1)                                     │

00:01:02 #1895 [Verbose] > │         method30(v4, v5)                                                     │

00:01:02 #1896 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:02 #1897 [Verbose] > │         v1                                                                   │

00:01:02 #1898 [Verbose] > │ and method32 (v0 : UH6, v1 : int32) : int32 =                                │

00:01:02 #1899 [Verbose] > │     match v0 with                                                            │

00:01:02 #1900 [Verbose] > │     | UH6_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1901 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:01:02 #1902 [Verbose] > │         method32(v4, v5)                                                     │

00:01:02 #1903 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:02 #1904 [Verbose] > │         v1                                                                   │

00:01:02 #1905 [Verbose] > │ and method33 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : int32) :      │

00:01:02 #1906 [Verbose] > │ int32 =                                                                      │

00:01:02 #1907 [Verbose] > │     match v1 with                                                            │

00:01:02 #1908 [Verbose] > │     | UH6_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:02 #1909 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:02 #1910 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:01:02 #1911 [Verbose] > │         method33(v0, v5, v6)                                                 │

00:01:02 #1912 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:02 #1913 [Verbose] > │         v2                                                                   │

00:01:02 #1914 [Verbose] > │ and method31 (v0 : UH6) : (struct (int32 * int64) []) =                      │

00:01:02 #1915 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:02 #1916 [Verbose] > │     let v2 : int32 = method32(v0, v1)                                        │

00:01:02 #1917 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:01:02 #1918 [Verbose] > │ int64)> (v2)                                                                 │

00:01:02 #1919 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:02 #1920 [Verbose] > │     let v5 : int32 = method33(v3, v0, v4)                                    │

00:01:02 #1921 [Verbose] > │     v3                                                                       │

00:01:02 #1922 [Verbose] > │ and method34 (v0 : UH2, v1 : UH7, v2 : int32) : struct (UH7 * int32) =       │

00:01:02 #1923 [Verbose] > │     match v0 with                                                            │

00:01:02 #1924 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:01:02 #1925 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:01:02 #1926 [Verbose] > │         let v6 : UH7 = UH7_1(v2, v3, v1)                                     │

00:01:02 #1927 [Verbose] > │         method34(v4, v6, v5)                                                 │

00:01:02 #1928 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:02 #1929 [Verbose] > │         struct (v1, v2)                                                      │

00:01:02 #1930 [Verbose] > │ and method35 (v0 : UH7, v1 : UH7) : UH7 =                                    │

00:01:02 #1931 [Verbose] > │     match v0 with                                                            │

00:01:02 #1932 [Verbose] > │     | UH7_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1933 [Verbose] > │         let v5 : UH7 = UH7_1(v2, v3, v1)                                     │

00:01:02 #1934 [Verbose] > │         method35(v4, v5)                                                     │

00:01:02 #1935 [Verbose] > │     | UH7_0 -> (* Nil *)                                                     │

00:01:02 #1936 [Verbose] > │         v1                                                                   │

00:01:02 #1937 [Verbose] > │ and method36 (v0 : Map<int32, int64>, v1 : UH7, v2 : UH2) : UH2 =            │

00:01:02 #1938 [Verbose] > │     match v1 with                                                            │

00:01:02 #1939 [Verbose] > │     | UH7_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:02 #1940 [Verbose] > │         let v6 : UH2 = method36(v0, v5, v2)                                  │

00:01:02 #1941 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │

00:01:02 #1942 [Verbose] > │         let v8 : int32 = int32 v7                                            │

00:01:02 #1943 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │

00:01:02 #1944 [Verbose] > │         UH2_1(v9, v6)                                                        │

00:01:02 #1945 [Verbose] > │     | UH7_0 -> (* Nil *)                                                     │

00:01:02 #1946 [Verbose] > │         v2                                                                   │

00:01:02 #1947 [Verbose] > │ and method38 (v0 : UH6, v1 : uint64) : uint64 =                              │

00:01:02 #1948 [Verbose] > │     match v0 with                                                            │

00:01:02 #1949 [Verbose] > │     | UH6_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:02 #1950 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:01:02 #1951 [Verbose] > │         method38(v4, v5)                                                     │

00:01:02 #1952 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:02 #1953 [Verbose] > │         v1                                                                   │

00:01:02 #1954 [Verbose] > │ and method39 (v0 : (struct (int32 * int64) []), v1 : UH6, v2 : uint64) :     │

00:01:02 #1955 [Verbose] > │ uint64 =                                                                     │

00:01:02 #1956 [Verbose] > │     match v1 with                                                            │

00:01:02 #1957 [Verbose] > │     | UH6_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:02 #1958 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:02 #1959 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:01:02 #1960 [Verbose] > │         method39(v0, v5, v6)                                                 │

00:01:02 #1961 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:02 #1962 [Verbose] > │         v2                                                                   │

00:01:02 #1963 [Verbose] > │ and method37 (v0 : UH6) : (struct (int32 * int64) []) =                      │

00:01:02 #1964 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:02 #1965 [Verbose] > │     let v2 : uint64 = method38(v0, v1)                                       │

00:01:02 #1966 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:01:02 #1967 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │

00:01:02 #1968 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:02 #1969 [Verbose] > │     let v5 : uint64 = method39(v3, v0, v4)                                   │

00:01:02 #1970 [Verbose] > │     v3                                                                       │

00:01:02 #1971 [Verbose] > │ and closure6 () struct (v0 : int32, v1 : int64) : int64 =                    │

00:01:02 #1972 [Verbose] > │     v1                                                                       │

00:01:02 #1973 [Verbose] > │ and closure0 () () : unit =                                                  │

00:01:02 #1974 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:01:02 #1975 [Verbose] > │     let v1 : string = nameof v0                                              │

00:01:02 #1976 [Verbose] > │     let v2 : string = ""                                                     │

00:01:02 #1977 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:02 #1978 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:02 #1979 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │

00:01:02 #1980 [Verbose] > │     System.Console.WriteLine v3                                              │

00:01:02 #1981 [Verbose] > │     let v4 : string = "abc"                                                  │

00:01:02 #1982 [Verbose] > │     let v5 : string = "bca cab abc"                                          │

00:01:02 #1983 [Verbose] > │     let v6 : string = "abcde"                                                │

00:01:02 #1984 [Verbose] > │     let v7 : string = "bcdea cdeab deabc eabcd abcde"                        │

00:01:02 #1985 [Verbose] > │     let v8 : string = "abcdefghi"                                            │

00:01:02 #1986 [Verbose] > │     let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde     │

00:01:02 #1987 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi"                                     │

00:01:02 #1988 [Verbose] > │     let v10 : string = "abab"                                                │

00:01:02 #1989 [Verbose] > │     let v11 : string = "baba abab baba abab"                                 │

00:01:02 #1990 [Verbose] > │     let v12 : string = "aa"                                                  │

00:01:02 #1991 [Verbose] > │     let v13 : string = "aa aa"                                               │

00:01:02 #1992 [Verbose] > │     let v14 : string = "z"                                                   │

00:01:02 #1993 [Verbose] > │     let v15 : UH0 = UH0_0                                                    │

00:01:02 #1994 [Verbose] > │     let v16 : UH0 = UH0_1(v14, v14, v15)                                     │

00:01:02 #1995 [Verbose] > │     let v17 : UH0 = UH0_1(v12, v13, v16)                                     │

00:01:02 #1996 [Verbose] > │     let v18 : UH0 = UH0_1(v10, v11, v17)                                     │

00:01:02 #1997 [Verbose] > │     let v19 : UH0 = UH0_1(v8, v9, v18)                                       │

00:01:02 #1998 [Verbose] > │     let v20 : UH0 = UH0_1(v6, v7, v19)                                       │

00:01:02 #1999 [Verbose] > │     let v21 : UH0 = UH0_1(v4, v5, v20)                                       │

00:01:02 #2000 [Verbose] > │     let v22 : (struct (string * string) []) = method1(v21)                   │

00:01:02 #2001 [Verbose] > │     let v23 : uint64 = System.Convert.ToUInt64 v22.Length                    │

00:01:02 #2002 [Verbose] > │     let v24 : (struct (string * string * string * (int64 [])) []) =          │

00:01:02 #2003 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:01:02 #2004 [Verbose] > │ (System.Convert.ToInt32(v23))                                                │

00:01:02 #2005 [Verbose] > │     let v25 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:01:02 #2006 [Verbose] > │     while method4(v23, v25) do                                               │

00:01:02 #2007 [Verbose] > │         let v27 : uint64 = v25.l0                                            │

00:01:02 #2008 [Verbose] > │         let struct (v28 : string, v29 : string) = v22.[int v27]              │

00:01:02 #2009 [Verbose] > │         let v30 : string = $"%A{v28}"                                        │

00:01:02 #2010 [Verbose] > │         System.Console.WriteLine v2                                          │

00:01:02 #2011 [Verbose] > │         let v31 : string = $"Solution: {v30}  "                              │

00:01:02 #2012 [Verbose] > │         System.Console.WriteLine v31                                         │

00:01:02 #2013 [Verbose] > │         let v32 : int32 = 0                                                  │

00:01:02 #2014 [Verbose] > │         let v33 : string = "F"                                               │

00:01:02 #2015 [Verbose] > │         let v34 : (string -> string) = closure1()                            │

00:01:02 #2016 [Verbose] > │         let v35 : int32 = 1                                                  │

00:01:02 #2017 [Verbose] > │         let v36 : string = "FA"                                              │

00:01:02 #2018 [Verbose] > │         let v37 : (string -> string) = closure2()                            │

00:01:02 #2019 [Verbose] > │         let v38 : UH3 = UH3_0                                                │

00:01:02 #2020 [Verbose] > │         let v39 : UH3 = UH3_1(v35, v36, v37, v38)                            │

00:01:02 #2021 [Verbose] > │         let v40 : UH3 = UH3_1(v32, v33, v34, v39)                            │

00:01:02 #2022 [Verbose] > │         let v41 : (struct (int32 * string * (string -> string)) []) =        │

00:01:02 #2023 [Verbose] > │ method12(v40)                                                                │

00:01:02 #2024 [Verbose] > │         let v42 : uint64 = System.Convert.ToUInt64 v41.Length                │

00:01:02 #2025 [Verbose] > │         let v43 : (struct (string * int64) []) = Array.zeroCreate<struct     │

00:01:02 #2026 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42))                              │

00:01:02 #2027 [Verbose] > │         let v44 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:02 #2028 [Verbose] > │         while method4(v42, v44) do                                           │

00:01:02 #2029 [Verbose] > │             let v46 : uint64 = v44.l0                                        │

00:01:02 #2030 [Verbose] > │             let struct (v47 : int32, v48 : string, v49 : (string -> string)) │

00:01:02 #2031 [Verbose] > │ = v41.[int v46]                                                              │

00:01:02 #2032 [Verbose] > │             let v50 : unit option = None                                     │

00:01:02 #2033 [Verbose] > │             let mutable _v50 = v50                                           │

00:01:02 #2034 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:02 #2035 [Verbose] > │             ()                                                               │

00:01:02 #2036 [Verbose] > │             #endif                                                           │

00:01:02 #2037 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:02 #2038 [Verbose] > │             ()                                                               │

00:01:02 #2039 [Verbose] > │             #endif                                                           │

00:01:02 #2040 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:02 #2041 [Verbose] > │             ()                                                               │

00:01:02 #2042 [Verbose] > │             #endif                                                           │

00:01:02 #2043 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:02 #2044 [Verbose] > │             System.GC.Collect ()                                             │

00:01:02 #2045 [Verbose] > │             ()                                                               │

00:01:02 #2046 [Verbose] > │             #endif                                                           │

00:01:02 #2047 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:02 #2048 [Verbose] > │             System.GC.Collect ()                                             │

00:01:02 #2049 [Verbose] > │             ()                                                               │

00:01:02 #2050 [Verbose] > │             #endif                                                           │

00:01:02 #2051 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:02 #2052 [Verbose] > │             System.GC.Collect ()                                             │

00:01:02 #2053 [Verbose] > │             ()                                                               │

00:01:02 #2054 [Verbose] > │             #endif                                                           │

00:01:02 #2055 [Verbose] > │             |> fun x -> _v50 <- Some x                                       │

00:01:02 #2056 [Verbose] > │             _v50 |> Option.get                                               │

00:01:02 #2057 [Verbose] > │             let v51 : (unit -> System.Diagnostics.Stopwatch) =               │

00:01:02 #2058 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:01:02 #2059 [Verbose] > │             let v52 : System.Diagnostics.Stopwatch = v51 ()                  │

00:01:02 #2060 [Verbose] > │             v52.Start ()                                                     │

00:01:02 #2061 [Verbose] > │             let v53 : int64 = v52.ElapsedMilliseconds                        │

00:01:02 #2062 [Verbose] > │             let v54 : (int32 []) = Array.zeroCreate<int32> (2000001)         │

00:01:02 #2063 [Verbose] > │             let v55 : Mut1 = {l0 = 0} : Mut1                                 │

00:01:02 #2064 [Verbose] > │             while method15(v55) do                                           │

00:01:02 #2065 [Verbose] > │                 let v57 : int32 = v55.l0                                     │

00:01:02 #2066 [Verbose] > │                 v54.[int v57] <- v57                                         │

00:01:02 #2067 [Verbose] > │                 let v58 : int32 = v57 + 1                                    │

00:01:02 #2068 [Verbose] > │                 v55.l0 <- v58                                                │

00:01:02 #2069 [Verbose] > │                 ()                                                           │

00:01:02 #2070 [Verbose] > │             let v59 : ((int32 -> string) -> ((int32 []) -> (string []))) =   │

00:01:02 #2071 [Verbose] > │ Array.Parallel.map                                                           │

00:01:02 #2072 [Verbose] > │             let v60 : (int32 -> string) = closure3(v28, v49)                 │

00:01:02 #2073 [Verbose] > │             let v61 : ((int32 []) -> (string [])) = v59 v60                  │

00:01:02 #2074 [Verbose] > │             let v62 : (string []) = v61 v54                                  │

00:01:02 #2075 [Verbose] > │             let v63 : int32 = v62.Length                                     │

00:01:02 #2076 [Verbose] > │             let v64 : int32 = v63 - 1                                        │

00:01:02 #2077 [Verbose] > │             let v65 : string = v62.[int v64]                                 │

00:01:02 #2078 [Verbose] > │             let v66 : int64 = v52.ElapsedMilliseconds                        │

00:01:02 #2079 [Verbose] > │             let v67 : int64 = v66 - v53                                      │

00:01:02 #2080 [Verbose] > │             let v68 : string = $"Test case {v47 + 1}. {v48}. Time: {v67}  "  │

00:01:02 #2081 [Verbose] > │             System.Console.WriteLine v68                                     │

00:01:02 #2082 [Verbose] > │             v43.[int v46] <- struct (v65, v67)                               │

00:01:02 #2083 [Verbose] > │             let v69 : uint64 = v46 + 1UL                                     │

00:01:02 #2084 [Verbose] > │             v44.l0 <- v69                                                    │

00:01:02 #2085 [Verbose] > │             ()                                                               │

00:01:02 #2086 [Verbose] > │         let v70 : uint64 = System.Convert.ToUInt64 v43.Length                │

00:01:02 #2087 [Verbose] > │         let v71 : (string []) = Array.zeroCreate<string>                     │

00:01:02 #2088 [Verbose] > │ (System.Convert.ToInt32(v70))                                                │

00:01:02 #2089 [Verbose] > │         let v72 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:02 #2090 [Verbose] > │         while method4(v70, v72) do                                           │

00:01:02 #2091 [Verbose] > │             let v74 : uint64 = v72.l0                                        │

00:01:02 #2092 [Verbose] > │             let struct (v75 : string, v76 : int64) = v43.[int v74]           │

00:01:02 #2093 [Verbose] > │             v71.[int v74] <- v75                                             │

00:01:02 #2094 [Verbose] > │             let v77 : uint64 = v74 + 1UL                                     │

00:01:02 #2095 [Verbose] > │             v72.l0 <- v77                                                    │

00:01:02 #2096 [Verbose] > │             ()                                                               │

00:01:02 #2097 [Verbose] > │         let v78 : uint64 = System.Convert.ToUInt64 v71.Length                │

00:01:02 #2098 [Verbose] > │         let v79 : bool = v78 <= 1UL                                          │

00:01:02 #2099 [Verbose] > │         if v79 then                                                          │

00:01:02 #2100 [Verbose] > │             ()                                                               │

00:01:02 #2101 [Verbose] > │         else                                                                 │

00:01:02 #2102 [Verbose] > │             let v80 : string = v71.[int 0UL]                                 │

00:01:02 #2103 [Verbose] > │             let v81 : uint64 = 0UL                                           │

00:01:02 #2104 [Verbose] > │             let v82 : bool = method16(v80, v71, v81)                         │

00:01:02 #2105 [Verbose] > │             if v82 then                                                      │

00:01:02 #2106 [Verbose] > │                 ()                                                           │

00:01:02 #2107 [Verbose] > │             else                                                             │

00:01:02 #2108 [Verbose] > │                 let v83 : string = $"Challenge error: {v71}"                 │

00:01:02 #2109 [Verbose] > │                 failwith<unit> v83                                           │

00:01:02 #2110 [Verbose] > │         let v84 : string = $"%A{v29}"                                        │

00:01:02 #2111 [Verbose] > │         let v85 : (string []) = Array.zeroCreate<string>                     │

00:01:02 #2112 [Verbose] > │ (System.Convert.ToInt32(v70))                                                │

00:01:02 #2113 [Verbose] > │         let v86 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:02 #2114 [Verbose] > │         while method4(v70, v86) do                                           │

00:01:02 #2115 [Verbose] > │             let v88 : uint64 = v86.l0                                        │

00:01:02 #2116 [Verbose] > │             let struct (v89 : string, v90 : int64) = v43.[int v88]           │

00:01:02 #2117 [Verbose] > │             v85.[int v88] <- v89                                             │

00:01:02 #2118 [Verbose] > │             let v91 : uint64 = v88 + 1UL                                     │

00:01:02 #2119 [Verbose] > │             v86.l0 <- v91                                                    │

00:01:02 #2120 [Verbose] > │             ()                                                               │

00:01:02 #2121 [Verbose] > │         let v92 : string = v85.[int 0UL]                                     │

00:01:02 #2122 [Verbose] > │         let v93 : string = $"%A{v92}"                                        │

00:01:02 #2123 [Verbose] > │         let v94 : (int64 []) = Array.zeroCreate<int64>                       │

00:01:02 #2124 [Verbose] > │ (System.Convert.ToInt32(v70))                                                │

00:01:02 #2125 [Verbose] > │         let v95 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:02 #2126 [Verbose] > │         while method4(v70, v95) do                                           │

00:01:02 #2127 [Verbose] > │             let v97 : uint64 = v95.l0                                        │

00:01:02 #2128 [Verbose] > │             let struct (v98 : string, v99 : int64) = v43.[int v97]           │

00:01:02 #2129 [Verbose] > │             v94.[int v97] <- v99                                             │

00:01:02 #2130 [Verbose] > │             let v100 : uint64 = v97 + 1UL                                    │

00:01:02 #2131 [Verbose] > │             v95.l0 <- v100                                                   │

00:01:02 #2132 [Verbose] > │             ()                                                               │

00:01:02 #2133 [Verbose] > │         v24.[int v27] <- struct (v84, v30, v93, v94)                         │

00:01:02 #2134 [Verbose] > │         let v101 : uint64 = v27 + 1UL                                        │

00:01:03 #2135 [Verbose] > │         v25.l0 <- v101                                                       │

00:01:03 #2136 [Verbose] > │         ()                                                                   │

00:01:03 #2137 [Verbose] > │     let v102 : uint64 = System.Convert.ToUInt64 v24.Length                   │

00:01:03 #2138 [Verbose] > │     let v103 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:01:03 #2139 [Verbose] > │ US0)> (System.Convert.ToInt32(v102))                                         │

00:01:03 #2140 [Verbose] > │     let v104 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2141 [Verbose] > │     while method4(v102, v104) do                                             │

00:01:03 #2142 [Verbose] > │         let v106 : uint64 = v104.l0                                          │

00:01:03 #2143 [Verbose] > │         let struct (v107 : string, v108 : string, v109 : string, v110 :      │

00:01:03 #2144 [Verbose] > │ (int64 [])) = v24.[int v106]                                                 │

00:01:03 #2145 [Verbose] > │         let v111 : uint64 = System.Convert.ToUInt64 v110.Length              │

00:01:03 #2146 [Verbose] > │         let v112 : UH4 = UH4_0                                               │

00:01:03 #2147 [Verbose] > │         let v113 : Mut2 = {l0 = 0UL; l1 = v112; l2 = 0L} : Mut2              │

00:01:03 #2148 [Verbose] > │         while method17(v111, v113) do                                        │

00:01:03 #2149 [Verbose] > │             let v115 : uint64 = v113.l0                                      │

00:01:03 #2150 [Verbose] > │             let struct (v116 : UH4, v117 : int64) = v113.l1, v113.l2         │

00:01:03 #2151 [Verbose] > │             let v118 : int64 = v110.[int v115]                               │

00:01:03 #2152 [Verbose] > │             let v119 : int64 = v117 + 1L                                     │

00:01:03 #2153 [Verbose] > │             let v120 : uint64 = v115 + 1UL                                   │

00:01:03 #2154 [Verbose] > │             let v121 : UH4 = UH4_1(v117, v118, v116)                         │

00:01:03 #2155 [Verbose] > │             v113.l0 <- v120                                                  │

00:01:03 #2156 [Verbose] > │             v113.l1 <- v121                                                  │

00:01:03 #2157 [Verbose] > │             v113.l2 <- v119                                                  │

00:01:03 #2158 [Verbose] > │             ()                                                               │

00:01:03 #2159 [Verbose] > │         let struct (v122 : UH4, v123 : int64) = v113.l1, v113.l2             │

00:01:03 #2160 [Verbose] > │         let v124 : UH4 = UH4_0                                               │

00:01:03 #2161 [Verbose] > │         let v125 : UH4 = method18(v122, v124)                                │

00:01:03 #2162 [Verbose] > │         let v126 : (struct (int64 * int64) []) = method19(v125)              │

00:01:03 #2163 [Verbose] > │         let v127 : int32 = v126.Length                                       │

00:01:03 #2164 [Verbose] > │         let v128 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:01:03 #2165 [Verbose] > │ (int64 * int64)> (v127)                                                      │

00:01:03 #2166 [Verbose] > │         let v129 : Mut1 = {l0 = 0} : Mut1                                    │

00:01:03 #2167 [Verbose] > │         while method5(v127, v129) do                                         │

00:01:03 #2168 [Verbose] > │             let v131 : int32 = v129.l0                                       │

00:01:03 #2169 [Verbose] > │             let struct (v132 : int64, v133 : int64) = v126.[int v131]        │

00:01:03 #2170 [Verbose] > │             let v134 : int64 = v132 + 1L                                     │

00:01:03 #2171 [Verbose] > │             v128.[int v131] <- struct (v134, v133)                           │

00:01:03 #2172 [Verbose] > │             let v135 : int32 = v131 + 1                                      │

00:01:03 #2173 [Verbose] > │             v129.l0 <- v135                                                  │

00:01:03 #2174 [Verbose] > │             ()                                                               │

00:01:03 #2175 [Verbose] > │         let v136 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:01:03 #2176 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:01:03 #2177 [Verbose] > │         let v137 : (struct (int64 * int64) -> int64) = closure4()            │

00:01:03 #2178 [Verbose] > │         let v138 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:01:03 #2179 [Verbose] > │ ])) = v136 v137                                                              │

00:01:03 #2180 [Verbose] > │         let v139 : (struct (int64 * int64) []) = v138 v128                   │

00:01:03 #2181 [Verbose] > │         let struct (v140 : int64, v141 : int64) = v139.[int 0]               │

00:01:03 #2182 [Verbose] > │         let v142 : string = $"%A{struct (v140, v141)}"                       │

00:01:03 #2183 [Verbose] > │         let v143 : bool = v107 = v109                                        │

00:01:03 #2184 [Verbose] > │         let v148 : US0 =                                                     │

00:01:03 #2185 [Verbose] > │             if v143 then                                                     │

00:01:03 #2186 [Verbose] > │                 let v144 : System.ConsoleColor =                             │

00:01:03 #2187 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:01:03 #2188 [Verbose] > │                 US0_0(v144)                                                  │

00:01:03 #2189 [Verbose] > │             else                                                             │

00:01:03 #2190 [Verbose] > │                 let v146 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:01:03 #2191 [Verbose] > │                 US0_0(v146)                                                  │

00:01:03 #2192 [Verbose] > │         let v149 : UH2 = UH2_0                                               │

00:01:03 #2193 [Verbose] > │         let v150 : UH2 = UH2_1(v142, v149)                                   │

00:01:03 #2194 [Verbose] > │         let v151 : UH2 = UH2_1(v109, v150)                                   │

00:01:03 #2195 [Verbose] > │         let v152 : UH2 = UH2_1(v107, v151)                                   │

00:01:03 #2196 [Verbose] > │         let v153 : UH2 = UH2_1(v108, v152)                                   │

00:01:03 #2197 [Verbose] > │         v103.[int v106] <- struct (v153, v148)                               │

00:01:03 #2198 [Verbose] > │         let v154 : uint64 = v106 + 1UL                                       │

00:01:03 #2199 [Verbose] > │         v104.l0 <- v154                                                      │

00:01:03 #2200 [Verbose] > │         ()                                                                   │

00:01:03 #2201 [Verbose] > │     let v155 : string = "Input"                                              │

00:01:03 #2202 [Verbose] > │     let v156 : string = "Expected"                                           │

00:01:03 #2203 [Verbose] > │     let v157 : string = "Result"                                             │

00:01:03 #2204 [Verbose] > │     let v158 : string = "Best"                                               │

00:01:03 #2205 [Verbose] > │     let v159 : UH2 = UH2_0                                                   │

00:01:03 #2206 [Verbose] > │     let v160 : UH2 = UH2_1(v158, v159)                                       │

00:01:03 #2207 [Verbose] > │     let v161 : UH2 = UH2_1(v157, v160)                                       │

00:01:03 #2208 [Verbose] > │     let v162 : UH2 = UH2_1(v156, v161)                                       │

00:01:03 #2209 [Verbose] > │     let v163 : UH2 = UH2_1(v155, v162)                                       │

00:01:03 #2210 [Verbose] > │     let v164 : US0 = US0_1                                                   │

00:01:03 #2211 [Verbose] > │     let v165 : string = "---"                                                │

00:01:03 #2212 [Verbose] > │     let v166 : UH2 = UH2_0                                                   │

00:01:03 #2213 [Verbose] > │     let v167 : UH2 = UH2_1(v165, v166)                                       │

00:01:03 #2214 [Verbose] > │     let v168 : UH2 = UH2_1(v165, v167)                                       │

00:01:03 #2215 [Verbose] > │     let v169 : UH2 = UH2_1(v165, v168)                                       │

00:01:03 #2216 [Verbose] > │     let v170 : UH2 = UH2_1(v165, v169)                                       │

00:01:03 #2217 [Verbose] > │     let v171 : US0 = US0_1                                                   │

00:01:03 #2218 [Verbose] > │     let v172 : UH5 = UH5_0                                                   │

00:01:03 #2219 [Verbose] > │     let v173 : UH5 = UH5_1(v170, v171, v172)                                 │

00:01:03 #2220 [Verbose] > │     let v174 : UH5 = UH5_1(v163, v164, v173)                                 │

00:01:03 #2221 [Verbose] > │     let v175 : (struct (UH2 * US0) []) = method22(v174)                      │

00:01:03 #2222 [Verbose] > │     let v176 : uint64 = System.Convert.ToUInt64 v175.Length                  │

00:01:03 #2223 [Verbose] > │     let v177 : uint64 = System.Convert.ToUInt64 v103.Length                  │

00:01:03 #2224 [Verbose] > │     let v178 : uint64 = v176 + v177                                          │

00:01:03 #2225 [Verbose] > │     let v179 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:01:03 #2226 [Verbose] > │ US0)> (System.Convert.ToInt32(v178))                                         │

00:01:03 #2227 [Verbose] > │     let v180 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2228 [Verbose] > │     while method4(v178, v180) do                                             │

00:01:03 #2229 [Verbose] > │         let v182 : uint64 = v180.l0                                          │

00:01:03 #2230 [Verbose] > │         let v183 : bool = v182 < v176                                        │

00:01:03 #2231 [Verbose] > │         let struct (v189 : UH2, v190 : US0) =                                │

00:01:03 #2232 [Verbose] > │             if v183 then                                                     │

00:01:03 #2233 [Verbose] > │                 let struct (v184 : UH2, v185 : US0) = v175.[int v182]        │

00:01:03 #2234 [Verbose] > │                 struct (v184, v185)                                          │

00:01:03 #2235 [Verbose] > │             else                                                             │

00:01:03 #2236 [Verbose] > │                 let v186 : uint64 = v182 - v176                              │

00:01:03 #2237 [Verbose] > │                 let struct (v187 : UH2, v188 : US0) = v103.[int v186]        │

00:01:03 #2238 [Verbose] > │                 struct (v187, v188)                                          │

00:01:03 #2239 [Verbose] > │         v179.[int v182] <- struct (v189, v190)                               │

00:01:03 #2240 [Verbose] > │         let v191 : uint64 = v182 + 1UL                                       │

00:01:03 #2241 [Verbose] > │         v180.l0 <- v191                                                      │

00:01:03 #2242 [Verbose] > │         ()                                                                   │

00:01:03 #2243 [Verbose] > │     let v192 : uint64 = System.Convert.ToUInt64 v179.Length                  │

00:01:03 #2244 [Verbose] > │     let v193 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:01:03 #2245 [Verbose] > │ (System.Convert.ToInt32(v192))                                               │

00:01:03 #2246 [Verbose] > │     let v194 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2247 [Verbose] > │     while method4(v192, v194) do                                             │

00:01:03 #2248 [Verbose] > │         let v196 : uint64 = v194.l0                                          │

00:01:03 #2249 [Verbose] > │         let struct (v197 : UH2, v198 : US0) = v179.[int v196]                │

00:01:03 #2250 [Verbose] > │         let v199 : (string []) = method25(v197)                              │

00:01:03 #2251 [Verbose] > │         v193.[int v196] <- v199                                              │

00:01:03 #2252 [Verbose] > │         let v200 : uint64 = v196 + 1UL                                       │

00:01:03 #2253 [Verbose] > │         v194.l0 <- v200                                                      │

00:01:03 #2254 [Verbose] > │         ()                                                                   │

00:01:03 #2255 [Verbose] > │     let v201 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:01:03 #2256 [Verbose] > │     let v202 : ((string []) []) = v201 v193                                  │

00:01:03 #2257 [Verbose] > │     let v203 : uint64 = System.Convert.ToUInt64 v202.Length                  │

00:01:03 #2258 [Verbose] > │     let v204 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:03 #2259 [Verbose] > │ (System.Convert.ToInt32(v203))                                               │

00:01:03 #2260 [Verbose] > │     let v205 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2261 [Verbose] > │     while method4(v203, v205) do                                             │

00:01:03 #2262 [Verbose] > │         let v207 : uint64 = v205.l0                                          │

00:01:03 #2263 [Verbose] > │         let v208 : (string []) = v202.[int v207]                             │

00:01:03 #2264 [Verbose] > │         let v209 : uint64 = System.Convert.ToUInt64 v208.Length              │

00:01:03 #2265 [Verbose] > │         let v210 : (int64 []) = Array.zeroCreate<int64>                      │

00:01:03 #2266 [Verbose] > │ (System.Convert.ToInt32(v209))                                               │

00:01:03 #2267 [Verbose] > │         let v211 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:01:03 #2268 [Verbose] > │         while method4(v209, v211) do                                         │

00:01:03 #2269 [Verbose] > │             let v213 : uint64 = v211.l0                                      │

00:01:03 #2270 [Verbose] > │             let v214 : string = v208.[int v213]                              │

00:01:03 #2271 [Verbose] > │             let v215 : int64 = System.Convert.ToInt64 v214.Length            │

00:01:03 #2272 [Verbose] > │             v210.[int v213] <- v215                                          │

00:01:03 #2273 [Verbose] > │             let v216 : uint64 = v213 + 1UL                                   │

00:01:03 #2274 [Verbose] > │             v211.l0 <- v216                                                  │

00:01:03 #2275 [Verbose] > │             ()                                                               │

00:01:03 #2276 [Verbose] > │         let v217 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:01:03 #2277 [Verbose] > │         let v218 : (int64 []) = v217 v210                                    │

00:01:03 #2278 [Verbose] > │         let v219 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:01:03 #2279 [Verbose] > │         let v220 : ((int64 []) -> int64 option) = v219 0                     │

00:01:03 #2280 [Verbose] > │         let v221 : int64 option = v220 v218                                  │

00:01:03 #2281 [Verbose] > │         let v222 : (int64 -> US1) = method28()                               │

00:01:03 #2282 [Verbose] > │         let v223 : US1 = US1_1                                               │

00:01:03 #2283 [Verbose] > │         let v224 : US1 = v221 |> Option.map v222 |> Option.defaultValue v223 │

00:01:03 #2284 [Verbose] > │         let v227 : int64 =                                                   │

00:01:03 #2285 [Verbose] > │             match v224 with                                                  │

00:01:03 #2286 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:01:03 #2287 [Verbose] > │                 0L                                                           │

00:01:03 #2288 [Verbose] > │             | US1_0(v225) -> (* Some *)                                      │

00:01:03 #2289 [Verbose] > │                 v225                                                         │

00:01:03 #2290 [Verbose] > │         v204.[int v207] <- v227                                              │

00:01:03 #2291 [Verbose] > │         let v228 : uint64 = v207 + 1UL                                       │

00:01:03 #2292 [Verbose] > │         v205.l0 <- v228                                                      │

00:01:03 #2293 [Verbose] > │         ()                                                                   │

00:01:03 #2294 [Verbose] > │     let v229 : uint64 = System.Convert.ToUInt64 v204.Length                  │

00:01:03 #2295 [Verbose] > │     let v230 : UH6 = UH6_0                                                   │

00:01:03 #2296 [Verbose] > │     let v231 : Mut3 = {l0 = 0UL; l1 = v230; l2 = 0} : Mut3                   │

00:01:03 #2297 [Verbose] > │     while method29(v229, v231) do                                            │

00:01:03 #2298 [Verbose] > │         let v233 : uint64 = v231.l0                                          │

00:01:03 #2299 [Verbose] > │         let struct (v234 : UH6, v235 : int32) = v231.l1, v231.l2             │

00:01:03 #2300 [Verbose] > │         let v236 : int64 = v204.[int v233]                                   │

00:01:03 #2301 [Verbose] > │         let v237 : int32 = v235 + 1                                          │

00:01:03 #2302 [Verbose] > │         let v238 : uint64 = v233 + 1UL                                       │

00:01:03 #2303 [Verbose] > │         let v239 : UH6 = UH6_1(v235, v236, v234)                             │

00:01:03 #2304 [Verbose] > │         v231.l0 <- v238                                                      │

00:01:03 #2305 [Verbose] > │         v231.l1 <- v239                                                      │

00:01:03 #2306 [Verbose] > │         v231.l2 <- v237                                                      │

00:01:03 #2307 [Verbose] > │         ()                                                                   │

00:01:03 #2308 [Verbose] > │     let struct (v240 : UH6, v241 : int32) = v231.l1, v231.l2                 │

00:01:03 #2309 [Verbose] > │     let v242 : UH6 = UH6_0                                                   │

00:01:03 #2310 [Verbose] > │     let v243 : UH6 = method30(v240, v242)                                    │

00:01:03 #2311 [Verbose] > │     let v244 : (struct (int32 * int64) []) = method31(v243)                  │

00:01:03 #2312 [Verbose] > │     let v245 : Map<int32, int64> = v244 |> Array.map (fun (struct (a, b)) -> │

00:01:03 #2313 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:01:03 #2314 [Verbose] > │     let v246 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │

00:01:03 #2315 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v192))                          │

00:01:03 #2316 [Verbose] > │     let v247 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2317 [Verbose] > │     while method4(v192, v247) do                                             │

00:01:03 #2318 [Verbose] > │         let v249 : uint64 = v247.l0                                          │

00:01:03 #2319 [Verbose] > │         let struct (v250 : UH2, v251 : US0) = v179.[int v249]                │

00:01:03 #2320 [Verbose] > │         let v252 : UH7 = UH7_0                                               │

00:01:03 #2321 [Verbose] > │         let v253 : int32 = 0                                                 │

00:01:03 #2322 [Verbose] > │         let struct (v254 : UH7, v255 : int32) = method34(v250, v252, v253)   │

00:01:03 #2323 [Verbose] > │         let v256 : UH7 = UH7_0                                               │

00:01:03 #2324 [Verbose] > │         let v257 : UH7 = method35(v254, v256)                                │

00:01:03 #2325 [Verbose] > │         let v258 : UH2 = UH2_0                                               │

00:01:03 #2326 [Verbose] > │         let v259 : UH2 = method36(v245, v257, v258)                          │

00:01:03 #2327 [Verbose] > │         let v260 : (string []) = method9(v259)                               │

00:01:03 #2328 [Verbose] > │         v246.[int v249] <- struct (v260, v251)                               │

00:01:03 #2329 [Verbose] > │         let v261 : uint64 = v249 + 1UL                                       │

00:01:03 #2330 [Verbose] > │         v247.l0 <- v261                                                      │

00:01:03 #2331 [Verbose] > │         ()                                                                   │

00:01:03 #2332 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:03 #2333 [Verbose] > │     let v262 : uint64 = System.Convert.ToUInt64 v246.Length                  │

00:01:03 #2334 [Verbose] > │     let v263 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2335 [Verbose] > │     while method4(v262, v263) do                                             │

00:01:03 #2336 [Verbose] > │         let v265 : uint64 = v263.l0                                          │

00:01:03 #2337 [Verbose] > │         let struct (v266 : (string []), v267 : US0) = v246.[int v265]        │

00:01:03 #2338 [Verbose] > │         match v267 with                                                      │

00:01:03 #2339 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:01:03 #2340 [Verbose] > │             let v270 : unit option = None                                    │

00:01:03 #2341 [Verbose] > │             let mutable _v270 = v270                                         │

00:01:03 #2342 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:03 #2343 [Verbose] > │             ()                                                               │

00:01:03 #2344 [Verbose] > │             #endif                                                           │

00:01:03 #2345 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:03 #2346 [Verbose] > │             ()                                                               │

00:01:03 #2347 [Verbose] > │             #endif                                                           │

00:01:03 #2348 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:03 #2349 [Verbose] > │             ()                                                               │

00:01:03 #2350 [Verbose] > │             #endif                                                           │

00:01:03 #2351 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:03 #2352 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:03 #2353 [Verbose] > │             ()                                                               │

00:01:03 #2354 [Verbose] > │             #endif                                                           │

00:01:03 #2355 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:03 #2356 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:03 #2357 [Verbose] > │             ()                                                               │

00:01:03 #2358 [Verbose] > │             #endif                                                           │

00:01:03 #2359 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:03 #2360 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:03 #2361 [Verbose] > │             ()                                                               │

00:01:03 #2362 [Verbose] > │             #endif                                                           │

00:01:03 #2363 [Verbose] > │             |> fun x -> _v270 <- Some x                                      │

00:01:03 #2364 [Verbose] > │             _v270 |> Option.get                                              │

00:01:03 #2365 [Verbose] > │             ()                                                               │

00:01:03 #2366 [Verbose] > │         | US0_0(v268) -> (* Some *)                                          │

00:01:03 #2367 [Verbose] > │             let v269 : unit option = None                                    │

00:01:03 #2368 [Verbose] > │             let mutable _v269 = v269                                         │

00:01:03 #2369 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:03 #2370 [Verbose] > │             ()                                                               │

00:01:03 #2371 [Verbose] > │             #endif                                                           │

00:01:03 #2372 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:03 #2373 [Verbose] > │             ()                                                               │

00:01:03 #2374 [Verbose] > │             #endif                                                           │

00:01:03 #2375 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:03 #2376 [Verbose] > │             ()                                                               │

00:01:03 #2377 [Verbose] > │             #endif                                                           │

00:01:03 #2378 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:03 #2379 [Verbose] > │             System.Console.ForegroundColor <- v268                           │

00:01:03 #2380 [Verbose] > │             ()                                                               │

00:01:03 #2381 [Verbose] > │             #endif                                                           │

00:01:03 #2382 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:03 #2383 [Verbose] > │             System.Console.ForegroundColor <- v268                           │

00:01:03 #2384 [Verbose] > │             ()                                                               │

00:01:03 #2385 [Verbose] > │             #endif                                                           │

00:01:03 #2386 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:03 #2387 [Verbose] > │             System.Console.ForegroundColor <- v268                           │

00:01:03 #2388 [Verbose] > │             ()                                                               │

00:01:03 #2389 [Verbose] > │             #endif                                                           │

00:01:03 #2390 [Verbose] > │             |> fun x -> _v269 <- Some x                                      │

00:01:03 #2391 [Verbose] > │             _v269 |> Option.get                                              │

00:01:03 #2392 [Verbose] > │             ()                                                               │

00:01:03 #2393 [Verbose] > │         let v271 : string = "\t| "                                           │

00:01:03 #2394 [Verbose] > │         let v272 : string = System.String.Join (v271, v266)                  │

00:01:03 #2395 [Verbose] > │         System.Console.WriteLine v272                                        │

00:01:03 #2396 [Verbose] > │         let v273 : unit option = None                                        │

00:01:03 #2397 [Verbose] > │         let mutable _v273 = v273                                             │

00:01:03 #2398 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:01:03 #2399 [Verbose] > │         ()                                                                   │

00:01:03 #2400 [Verbose] > │         #endif                                                               │

00:01:03 #2401 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:01:03 #2402 [Verbose] > │         ()                                                                   │

00:01:03 #2403 [Verbose] > │         #endif                                                               │

00:01:03 #2404 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:01:03 #2405 [Verbose] > │         ()                                                                   │

00:01:03 #2406 [Verbose] > │         #endif                                                               │

00:01:03 #2407 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:01:03 #2408 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:03 #2409 [Verbose] > │         ()                                                                   │

00:01:03 #2410 [Verbose] > │         #endif                                                               │

00:01:03 #2411 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:01:03 #2412 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:03 #2413 [Verbose] > │         ()                                                                   │

00:01:03 #2414 [Verbose] > │         #endif                                                               │

00:01:03 #2415 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:01:03 #2416 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:03 #2417 [Verbose] > │         ()                                                                   │

00:01:03 #2418 [Verbose] > │         #endif                                                               │

00:01:03 #2419 [Verbose] > │         |> fun x -> _v273 <- Some x                                          │

00:01:03 #2420 [Verbose] > │         _v273 |> Option.get                                                  │

00:01:03 #2421 [Verbose] > │         let v274 : uint64 = v265 + 1UL                                       │

00:01:03 #2422 [Verbose] > │         v263.l0 <- v274                                                      │

00:01:03 #2423 [Verbose] > │         ()                                                                   │

00:01:03 #2424 [Verbose] > │     let v275 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:01:03 #2425 [Verbose] > │ (System.Convert.ToInt32(v102))                                               │

00:01:03 #2426 [Verbose] > │     let v276 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2427 [Verbose] > │     while method4(v102, v276) do                                             │

00:01:03 #2428 [Verbose] > │         let v278 : uint64 = v276.l0                                          │

00:01:03 #2429 [Verbose] > │         let struct (v279 : string, v280 : string, v281 : string, v282 :      │

00:01:03 #2430 [Verbose] > │ (int64 [])) = v24.[int v278]                                                 │

00:01:03 #2431 [Verbose] > │         let v283 : (int64 -> float) = float                                  │

00:01:03 #2432 [Verbose] > │         let v284 : uint64 = System.Convert.ToUInt64 v282.Length              │

00:01:03 #2433 [Verbose] > │         let v285 : (float []) = Array.zeroCreate<float>                      │

00:01:03 #2434 [Verbose] > │ (System.Convert.ToInt32(v284))                                               │

00:01:03 #2435 [Verbose] > │         let v286 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:01:03 #2436 [Verbose] > │         while method4(v284, v286) do                                         │

00:01:03 #2437 [Verbose] > │             let v288 : uint64 = v286.l0                                      │

00:01:03 #2438 [Verbose] > │             let v289 : int64 = v282.[int v288]                               │

00:01:03 #2439 [Verbose] > │             let v290 : float = v283 v289                                     │

00:01:03 #2440 [Verbose] > │             v285.[int v288] <- v290                                          │

00:01:03 #2441 [Verbose] > │             let v291 : uint64 = v288 + 1UL                                   │

00:01:03 #2442 [Verbose] > │             v286.l0 <- v291                                                  │

00:01:03 #2443 [Verbose] > │             ()                                                               │

00:01:03 #2444 [Verbose] > │         v275.[int v278] <- v285                                              │

00:01:03 #2445 [Verbose] > │         let v292 : uint64 = v278 + 1UL                                       │

00:01:03 #2446 [Verbose] > │         v276.l0 <- v292                                                      │

00:01:03 #2447 [Verbose] > │         ()                                                                   │

00:01:03 #2448 [Verbose] > │     let v293 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:01:03 #2449 [Verbose] > │     let v294 : ((float []) []) = v293 v275                                   │

00:01:03 #2450 [Verbose] > │     let v295 : uint64 = System.Convert.ToUInt64 v294.Length                  │

00:01:03 #2451 [Verbose] > │     let v296 : (float []) = Array.zeroCreate<float>                          │

00:01:03 #2452 [Verbose] > │ (System.Convert.ToInt32(v295))                                               │

00:01:03 #2453 [Verbose] > │     let v297 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2454 [Verbose] > │     while method4(v295, v297) do                                             │

00:01:03 #2455 [Verbose] > │         let v299 : uint64 = v297.l0                                          │

00:01:03 #2456 [Verbose] > │         let v300 : (float []) = v294.[int v299]                              │

00:01:03 #2457 [Verbose] > │         let v301 : ((float []) -> float) = Array.average                     │

00:01:03 #2458 [Verbose] > │         let v302 : float = v301 v300                                         │

00:01:03 #2459 [Verbose] > │         v296.[int v299] <- v302                                              │

00:01:03 #2460 [Verbose] > │         let v303 : uint64 = v299 + 1UL                                       │

00:01:03 #2461 [Verbose] > │         v297.l0 <- v303                                                      │

00:01:03 #2462 [Verbose] > │         ()                                                                   │

00:01:03 #2463 [Verbose] > │     let v304 : (float -> int64) = int64                                      │

00:01:03 #2464 [Verbose] > │     let v305 : uint64 = System.Convert.ToUInt64 v296.Length                  │

00:01:03 #2465 [Verbose] > │     let v306 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:03 #2466 [Verbose] > │ (System.Convert.ToInt32(v305))                                               │

00:01:03 #2467 [Verbose] > │     let v307 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2468 [Verbose] > │     while method4(v305, v307) do                                             │

00:01:03 #2469 [Verbose] > │         let v309 : uint64 = v307.l0                                          │

00:01:03 #2470 [Verbose] > │         let v310 : float = v296.[int v309]                                   │

00:01:03 #2471 [Verbose] > │         let v311 : int64 = v304 v310                                         │

00:01:03 #2472 [Verbose] > │         v306.[int v309] <- v311                                              │

00:01:03 #2473 [Verbose] > │         let v312 : uint64 = v309 + 1UL                                       │

00:01:03 #2474 [Verbose] > │         v307.l0 <- v312                                                      │

00:01:03 #2475 [Verbose] > │         ()                                                                   │

00:01:03 #2476 [Verbose] > │     let v313 : uint64 = System.Convert.ToUInt64 v306.Length                  │

00:01:03 #2477 [Verbose] > │     let v314 : UH6 = UH6_0                                                   │

00:01:03 #2478 [Verbose] > │     let v315 : Mut3 = {l0 = 0UL; l1 = v314; l2 = 0} : Mut3                   │

00:01:03 #2479 [Verbose] > │     while method29(v313, v315) do                                            │

00:01:03 #2480 [Verbose] > │         let v317 : uint64 = v315.l0                                          │

00:01:03 #2481 [Verbose] > │         let struct (v318 : UH6, v319 : int32) = v315.l1, v315.l2             │

00:01:03 #2482 [Verbose] > │         let v320 : int64 = v306.[int v317]                                   │

00:01:03 #2483 [Verbose] > │         let v321 : int32 = v319 + 1                                          │

00:01:03 #2484 [Verbose] > │         let v322 : uint64 = v317 + 1UL                                       │

00:01:03 #2485 [Verbose] > │         let v323 : UH6 = UH6_1(v319, v320, v318)                             │

00:01:03 #2486 [Verbose] > │         v315.l0 <- v322                                                      │

00:01:03 #2487 [Verbose] > │         v315.l1 <- v323                                                      │

00:01:03 #2488 [Verbose] > │         v315.l2 <- v321                                                      │

00:01:03 #2489 [Verbose] > │         ()                                                                   │

00:01:03 #2490 [Verbose] > │     let struct (v324 : UH6, v325 : int32) = v315.l1, v315.l2                 │

00:01:03 #2491 [Verbose] > │     let v326 : UH6 = UH6_0                                                   │

00:01:03 #2492 [Verbose] > │     let v327 : UH6 = method30(v324, v326)                                    │

00:01:03 #2493 [Verbose] > │     let v328 : (struct (int32 * int64) []) = method37(v327)                  │

00:01:03 #2494 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:03 #2495 [Verbose] > │     let v329 : string = "Average Ranking  "                                  │

00:01:03 #2496 [Verbose] > │     System.Console.WriteLine v329                                            │

00:01:03 #2497 [Verbose] > │     let v330 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:01:03 #2498 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:01:03 #2499 [Verbose] > │     let v331 : (struct (int32 * int64) -> int64) = closure6()                │

00:01:03 #2500 [Verbose] > │     let v332 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:01:03 #2501 [Verbose] > │ = v330 v331                                                                  │

00:01:03 #2502 [Verbose] > │     let v333 : (struct (int32 * int64) []) = v332 v328                       │

00:01:03 #2503 [Verbose] > │     let v334 : uint64 = System.Convert.ToUInt64 v333.Length                  │

00:01:03 #2504 [Verbose] > │     let v335 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2505 [Verbose] > │     while method4(v334, v335) do                                             │

00:01:03 #2506 [Verbose] > │         let v337 : uint64 = v335.l0                                          │

00:01:03 #2507 [Verbose] > │         let struct (v338 : int32, v339 : int64) = v333.[int v337]            │

00:01:03 #2508 [Verbose] > │         let v340 : string = $"Test case %d{v338 + 1}. Average Time: %A{v339} │

00:01:03 #2509 [Verbose] > │ "                                                                            │

00:01:03 #2510 [Verbose] > │         System.Console.WriteLine v340                                        │

00:01:03 #2511 [Verbose] > │         let v341 : uint64 = v337 + 1UL                                       │

00:01:03 #2512 [Verbose] > │         v335.l0 <- v341                                                      │

00:01:03 #2513 [Verbose] > │         ()                                                                   │

00:01:03 #2514 [Verbose] > │     ()                                                                       │

00:01:03 #2515 [Verbose] > │ and method0 () : unit =                                                      │

00:01:03 #2516 [Verbose] > │     let v0 : (unit -> unit) = closure0()                                     │

00:01:03 #2517 [Verbose] > │     let v1 : string = nameof v0                                              │

00:01:03 #2518 [Verbose] > │     let v2 : string = ""                                                     │

00:01:03 #2519 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:03 #2520 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:03 #2521 [Verbose] > │     let v3 : string = $"Test: {v1}"                                          │

00:01:03 #2522 [Verbose] > │     System.Console.WriteLine v3                                              │

00:01:03 #2523 [Verbose] > │     let v4 : string = "abc"                                                  │

00:01:03 #2524 [Verbose] > │     let v5 : string = "bca cab abc"                                          │

00:01:03 #2525 [Verbose] > │     let v6 : string = "abcde"                                                │

00:01:03 #2526 [Verbose] > │     let v7 : string = "bcdea cdeab deabc eabcd abcde"                        │

00:01:03 #2527 [Verbose] > │     let v8 : string = "abcdefghi"                                            │

00:01:03 #2528 [Verbose] > │     let v9 : string = "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde     │

00:01:03 #2529 [Verbose] > │ ghiabcdef hiabcdefg iabcdefgh abcdefghi"                                     │

00:01:03 #2530 [Verbose] > │     let v10 : string = "abab"                                                │

00:01:03 #2531 [Verbose] > │     let v11 : string = "baba abab baba abab"                                 │

00:01:03 #2532 [Verbose] > │     let v12 : string = "aa"                                                  │

00:01:03 #2533 [Verbose] > │     let v13 : string = "aa aa"                                               │

00:01:03 #2534 [Verbose] > │     let v14 : string = "z"                                                   │

00:01:03 #2535 [Verbose] > │     let v15 : UH0 = UH0_0                                                    │

00:01:03 #2536 [Verbose] > │     let v16 : UH0 = UH0_1(v14, v14, v15)                                     │

00:01:03 #2537 [Verbose] > │     let v17 : UH0 = UH0_1(v12, v13, v16)                                     │

00:01:03 #2538 [Verbose] > │     let v18 : UH0 = UH0_1(v10, v11, v17)                                     │

00:01:03 #2539 [Verbose] > │     let v19 : UH0 = UH0_1(v8, v9, v18)                                       │

00:01:03 #2540 [Verbose] > │     let v20 : UH0 = UH0_1(v6, v7, v19)                                       │

00:01:03 #2541 [Verbose] > │     let v21 : UH0 = UH0_1(v4, v5, v20)                                       │

00:01:03 #2542 [Verbose] > │     let v22 : (struct (string * string) []) = method1(v21)                   │

00:01:03 #2543 [Verbose] > │     let v23 : uint64 = System.Convert.ToUInt64 v22.Length                    │

00:01:03 #2544 [Verbose] > │     let v24 : (struct (string * string * string * (int64 [])) []) =          │

00:01:03 #2545 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:01:03 #2546 [Verbose] > │ (System.Convert.ToInt32(v23))                                                │

00:01:03 #2547 [Verbose] > │     let v25 : Mut0 = {l0 = 0UL} : Mut0                                       │

00:01:03 #2548 [Verbose] > │     while method4(v23, v25) do                                               │

00:01:03 #2549 [Verbose] > │         let v27 : uint64 = v25.l0                                            │

00:01:03 #2550 [Verbose] > │         let struct (v28 : string, v29 : string) = v22.[int v27]              │

00:01:03 #2551 [Verbose] > │         let v30 : string = $"%A{v28}"                                        │

00:01:03 #2552 [Verbose] > │         System.Console.WriteLine v2                                          │

00:01:03 #2553 [Verbose] > │         let v31 : string = $"Solution: {v30}  "                              │

00:01:03 #2554 [Verbose] > │         System.Console.WriteLine v31                                         │

00:01:03 #2555 [Verbose] > │         let v32 : int32 = 0                                                  │

00:01:03 #2556 [Verbose] > │         let v33 : string = "F"                                               │

00:01:03 #2557 [Verbose] > │         let v34 : (string -> string) = closure1()                            │

00:01:03 #2558 [Verbose] > │         let v35 : int32 = 1                                                  │

00:01:03 #2559 [Verbose] > │         let v36 : string = "FA"                                              │

00:01:03 #2560 [Verbose] > │         let v37 : (string -> string) = closure2()                            │

00:01:03 #2561 [Verbose] > │         let v38 : UH3 = UH3_0                                                │

00:01:03 #2562 [Verbose] > │         let v39 : UH3 = UH3_1(v35, v36, v37, v38)                            │

00:01:03 #2563 [Verbose] > │         let v40 : UH3 = UH3_1(v32, v33, v34, v39)                            │

00:01:03 #2564 [Verbose] > │         let v41 : (struct (int32 * string * (string -> string)) []) =        │

00:01:03 #2565 [Verbose] > │ method12(v40)                                                                │

00:01:03 #2566 [Verbose] > │         let v42 : uint64 = System.Convert.ToUInt64 v41.Length                │

00:01:03 #2567 [Verbose] > │         let v43 : (struct (string * int64) []) = Array.zeroCreate<struct     │

00:01:03 #2568 [Verbose] > │ (string * int64)> (System.Convert.ToInt32(v42))                              │

00:01:03 #2569 [Verbose] > │         let v44 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:03 #2570 [Verbose] > │         while method4(v42, v44) do                                           │

00:01:03 #2571 [Verbose] > │             let v46 : uint64 = v44.l0                                        │

00:01:03 #2572 [Verbose] > │             let struct (v47 : int32, v48 : string, v49 : (string -> string)) │

00:01:03 #2573 [Verbose] > │ = v41.[int v46]                                                              │

00:01:03 #2574 [Verbose] > │             let v50 : unit option = None                                     │

00:01:03 #2575 [Verbose] > │             let mutable _v50 = v50                                           │

00:01:03 #2576 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:03 #2577 [Verbose] > │             ()                                                               │

00:01:03 #2578 [Verbose] > │             #endif                                                           │

00:01:03 #2579 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:03 #2580 [Verbose] > │             ()                                                               │

00:01:03 #2581 [Verbose] > │             #endif                                                           │

00:01:03 #2582 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:03 #2583 [Verbose] > │             ()                                                               │

00:01:03 #2584 [Verbose] > │             #endif                                                           │

00:01:03 #2585 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:03 #2586 [Verbose] > │             System.GC.Collect ()                                             │

00:01:03 #2587 [Verbose] > │             ()                                                               │

00:01:03 #2588 [Verbose] > │             #endif                                                           │

00:01:03 #2589 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:03 #2590 [Verbose] > │             System.GC.Collect ()                                             │

00:01:03 #2591 [Verbose] > │             ()                                                               │

00:01:03 #2592 [Verbose] > │             #endif                                                           │

00:01:03 #2593 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:03 #2594 [Verbose] > │             System.GC.Collect ()                                             │

00:01:03 #2595 [Verbose] > │             ()                                                               │

00:01:03 #2596 [Verbose] > │             #endif                                                           │

00:01:03 #2597 [Verbose] > │             |> fun x -> _v50 <- Some x                                       │

00:01:03 #2598 [Verbose] > │             _v50 |> Option.get                                               │

00:01:03 #2599 [Verbose] > │             let v51 : (unit -> System.Diagnostics.Stopwatch) =               │

00:01:03 #2600 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:01:03 #2601 [Verbose] > │             let v52 : System.Diagnostics.Stopwatch = v51 ()                  │

00:01:03 #2602 [Verbose] > │             v52.Start ()                                                     │

00:01:03 #2603 [Verbose] > │             let v53 : int64 = v52.ElapsedMilliseconds                        │

00:01:03 #2604 [Verbose] > │             let v54 : (int32 []) = Array.zeroCreate<int32> (2000001)         │

00:01:03 #2605 [Verbose] > │             let v55 : Mut1 = {l0 = 0} : Mut1                                 │

00:01:03 #2606 [Verbose] > │             while method15(v55) do                                           │

00:01:03 #2607 [Verbose] > │                 let v57 : int32 = v55.l0                                     │

00:01:03 #2608 [Verbose] > │                 v54.[int v57] <- v57                                         │

00:01:03 #2609 [Verbose] > │                 let v58 : int32 = v57 + 1                                    │

00:01:03 #2610 [Verbose] > │                 v55.l0 <- v58                                                │

00:01:03 #2611 [Verbose] > │                 ()                                                           │

00:01:03 #2612 [Verbose] > │             let v59 : ((int32 -> string) -> ((int32 []) -> (string []))) =   │

00:01:03 #2613 [Verbose] > │ Array.Parallel.map                                                           │

00:01:03 #2614 [Verbose] > │             let v60 : (int32 -> string) = closure3(v28, v49)                 │

00:01:03 #2615 [Verbose] > │             let v61 : ((int32 []) -> (string [])) = v59 v60                  │

00:01:03 #2616 [Verbose] > │             let v62 : (string []) = v61 v54                                  │

00:01:03 #2617 [Verbose] > │             let v63 : int32 = v62.Length                                     │

00:01:03 #2618 [Verbose] > │             let v64 : int32 = v63 - 1                                        │

00:01:03 #2619 [Verbose] > │             let v65 : string = v62.[int v64]                                 │

00:01:03 #2620 [Verbose] > │             let v66 : int64 = v52.ElapsedMilliseconds                        │

00:01:03 #2621 [Verbose] > │             let v67 : int64 = v66 - v53                                      │

00:01:03 #2622 [Verbose] > │             let v68 : string = $"Test case {v47 + 1}. {v48}. Time: {v67}  "  │

00:01:03 #2623 [Verbose] > │             System.Console.WriteLine v68                                     │

00:01:03 #2624 [Verbose] > │             v43.[int v46] <- struct (v65, v67)                               │

00:01:03 #2625 [Verbose] > │             let v69 : uint64 = v46 + 1UL                                     │

00:01:03 #2626 [Verbose] > │             v44.l0 <- v69                                                    │

00:01:03 #2627 [Verbose] > │             ()                                                               │

00:01:03 #2628 [Verbose] > │         let v70 : uint64 = System.Convert.ToUInt64 v43.Length                │

00:01:03 #2629 [Verbose] > │         let v71 : (string []) = Array.zeroCreate<string>                     │

00:01:03 #2630 [Verbose] > │ (System.Convert.ToInt32(v70))                                                │

00:01:03 #2631 [Verbose] > │         let v72 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:03 #2632 [Verbose] > │         while method4(v70, v72) do                                           │

00:01:03 #2633 [Verbose] > │             let v74 : uint64 = v72.l0                                        │

00:01:03 #2634 [Verbose] > │             let struct (v75 : string, v76 : int64) = v43.[int v74]           │

00:01:03 #2635 [Verbose] > │             v71.[int v74] <- v75                                             │

00:01:03 #2636 [Verbose] > │             let v77 : uint64 = v74 + 1UL                                     │

00:01:03 #2637 [Verbose] > │             v72.l0 <- v77                                                    │

00:01:03 #2638 [Verbose] > │             ()                                                               │

00:01:03 #2639 [Verbose] > │         let v78 : uint64 = System.Convert.ToUInt64 v71.Length                │

00:01:03 #2640 [Verbose] > │         let v79 : bool = v78 <= 1UL                                          │

00:01:03 #2641 [Verbose] > │         if v79 then                                                          │

00:01:03 #2642 [Verbose] > │             ()                                                               │

00:01:03 #2643 [Verbose] > │         else                                                                 │

00:01:03 #2644 [Verbose] > │             let v80 : string = v71.[int 0UL]                                 │

00:01:03 #2645 [Verbose] > │             let v81 : uint64 = 0UL                                           │

00:01:03 #2646 [Verbose] > │             let v82 : bool = method16(v80, v71, v81)                         │

00:01:03 #2647 [Verbose] > │             if v82 then                                                      │

00:01:03 #2648 [Verbose] > │                 ()                                                           │

00:01:03 #2649 [Verbose] > │             else                                                             │

00:01:03 #2650 [Verbose] > │                 let v83 : string = $"Challenge error: {v71}"                 │

00:01:03 #2651 [Verbose] > │                 failwith<unit> v83                                           │

00:01:03 #2652 [Verbose] > │         let v84 : string = $"%A{v29}"                                        │

00:01:03 #2653 [Verbose] > │         let v85 : (string []) = Array.zeroCreate<string>                     │

00:01:03 #2654 [Verbose] > │ (System.Convert.ToInt32(v70))                                                │

00:01:03 #2655 [Verbose] > │         let v86 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:03 #2656 [Verbose] > │         while method4(v70, v86) do                                           │

00:01:03 #2657 [Verbose] > │             let v88 : uint64 = v86.l0                                        │

00:01:03 #2658 [Verbose] > │             let struct (v89 : string, v90 : int64) = v43.[int v88]           │

00:01:03 #2659 [Verbose] > │             v85.[int v88] <- v89                                             │

00:01:03 #2660 [Verbose] > │             let v91 : uint64 = v88 + 1UL                                     │

00:01:03 #2661 [Verbose] > │             v86.l0 <- v91                                                    │

00:01:03 #2662 [Verbose] > │             ()                                                               │

00:01:03 #2663 [Verbose] > │         let v92 : string = v85.[int 0UL]                                     │

00:01:03 #2664 [Verbose] > │         let v93 : string = $"%A{v92}"                                        │

00:01:03 #2665 [Verbose] > │         let v94 : (int64 []) = Array.zeroCreate<int64>                       │

00:01:03 #2666 [Verbose] > │ (System.Convert.ToInt32(v70))                                                │

00:01:03 #2667 [Verbose] > │         let v95 : Mut0 = {l0 = 0UL} : Mut0                                   │

00:01:03 #2668 [Verbose] > │         while method4(v70, v95) do                                           │

00:01:03 #2669 [Verbose] > │             let v97 : uint64 = v95.l0                                        │

00:01:03 #2670 [Verbose] > │             let struct (v98 : string, v99 : int64) = v43.[int v97]           │

00:01:03 #2671 [Verbose] > │             v94.[int v97] <- v99                                             │

00:01:03 #2672 [Verbose] > │             let v100 : uint64 = v97 + 1UL                                    │

00:01:03 #2673 [Verbose] > │             v95.l0 <- v100                                                   │

00:01:03 #2674 [Verbose] > │             ()                                                               │

00:01:03 #2675 [Verbose] > │         v24.[int v27] <- struct (v84, v30, v93, v94)                         │

00:01:03 #2676 [Verbose] > │         let v101 : uint64 = v27 + 1UL                                        │

00:01:03 #2677 [Verbose] > │         v25.l0 <- v101                                                       │

00:01:03 #2678 [Verbose] > │         ()                                                                   │

00:01:03 #2679 [Verbose] > │     let v102 : uint64 = System.Convert.ToUInt64 v24.Length                   │

00:01:03 #2680 [Verbose] > │     let v103 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:01:03 #2681 [Verbose] > │ US0)> (System.Convert.ToInt32(v102))                                         │

00:01:03 #2682 [Verbose] > │     let v104 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2683 [Verbose] > │     while method4(v102, v104) do                                             │

00:01:03 #2684 [Verbose] > │         let v106 : uint64 = v104.l0                                          │

00:01:03 #2685 [Verbose] > │         let struct (v107 : string, v108 : string, v109 : string, v110 :      │

00:01:03 #2686 [Verbose] > │ (int64 [])) = v24.[int v106]                                                 │

00:01:03 #2687 [Verbose] > │         let v111 : uint64 = System.Convert.ToUInt64 v110.Length              │

00:01:03 #2688 [Verbose] > │         let v112 : UH4 = UH4_0                                               │

00:01:03 #2689 [Verbose] > │         let v113 : Mut2 = {l0 = 0UL; l1 = v112; l2 = 0L} : Mut2              │

00:01:03 #2690 [Verbose] > │         while method17(v111, v113) do                                        │

00:01:03 #2691 [Verbose] > │             let v115 : uint64 = v113.l0                                      │

00:01:03 #2692 [Verbose] > │             let struct (v116 : UH4, v117 : int64) = v113.l1, v113.l2         │

00:01:03 #2693 [Verbose] > │             let v118 : int64 = v110.[int v115]                               │

00:01:03 #2694 [Verbose] > │             let v119 : int64 = v117 + 1L                                     │

00:01:03 #2695 [Verbose] > │             let v120 : uint64 = v115 + 1UL                                   │

00:01:03 #2696 [Verbose] > │             let v121 : UH4 = UH4_1(v117, v118, v116)                         │

00:01:03 #2697 [Verbose] > │             v113.l0 <- v120                                                  │

00:01:03 #2698 [Verbose] > │             v113.l1 <- v121                                                  │

00:01:03 #2699 [Verbose] > │             v113.l2 <- v119                                                  │

00:01:03 #2700 [Verbose] > │             ()                                                               │

00:01:03 #2701 [Verbose] > │         let struct (v122 : UH4, v123 : int64) = v113.l1, v113.l2             │

00:01:03 #2702 [Verbose] > │         let v124 : UH4 = UH4_0                                               │

00:01:03 #2703 [Verbose] > │         let v125 : UH4 = method18(v122, v124)                                │

00:01:03 #2704 [Verbose] > │         let v126 : (struct (int64 * int64) []) = method19(v125)              │

00:01:03 #2705 [Verbose] > │         let v127 : int32 = v126.Length                                       │

00:01:03 #2706 [Verbose] > │         let v128 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:01:03 #2707 [Verbose] > │ (int64 * int64)> (v127)                                                      │

00:01:03 #2708 [Verbose] > │         let v129 : Mut1 = {l0 = 0} : Mut1                                    │

00:01:03 #2709 [Verbose] > │         while method5(v127, v129) do                                         │

00:01:03 #2710 [Verbose] > │             let v131 : int32 = v129.l0                                       │

00:01:03 #2711 [Verbose] > │             let struct (v132 : int64, v133 : int64) = v126.[int v131]        │

00:01:03 #2712 [Verbose] > │             let v134 : int64 = v132 + 1L                                     │

00:01:03 #2713 [Verbose] > │             v128.[int v131] <- struct (v134, v133)                           │

00:01:03 #2714 [Verbose] > │             let v135 : int32 = v131 + 1                                      │

00:01:03 #2715 [Verbose] > │             v129.l0 <- v135                                                  │

00:01:03 #2716 [Verbose] > │             ()                                                               │

00:01:03 #2717 [Verbose] > │         let v136 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:01:03 #2718 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:01:03 #2719 [Verbose] > │         let v137 : (struct (int64 * int64) -> int64) = closure4()            │

00:01:03 #2720 [Verbose] > │         let v138 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:01:03 #2721 [Verbose] > │ ])) = v136 v137                                                              │

00:01:03 #2722 [Verbose] > │         let v139 : (struct (int64 * int64) []) = v138 v128                   │

00:01:03 #2723 [Verbose] > │         let struct (v140 : int64, v141 : int64) = v139.[int 0]               │

00:01:03 #2724 [Verbose] > │         let v142 : string = $"%A{struct (v140, v141)}"                       │

00:01:03 #2725 [Verbose] > │         let v143 : bool = v107 = v109                                        │

00:01:03 #2726 [Verbose] > │         let v148 : US0 =                                                     │

00:01:03 #2727 [Verbose] > │             if v143 then                                                     │

00:01:03 #2728 [Verbose] > │                 let v144 : System.ConsoleColor =                             │

00:01:03 #2729 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:01:03 #2730 [Verbose] > │                 US0_0(v144)                                                  │

00:01:03 #2731 [Verbose] > │             else                                                             │

00:01:03 #2732 [Verbose] > │                 let v146 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:01:03 #2733 [Verbose] > │                 US0_0(v146)                                                  │

00:01:03 #2734 [Verbose] > │         let v149 : UH2 = UH2_0                                               │

00:01:03 #2735 [Verbose] > │         let v150 : UH2 = UH2_1(v142, v149)                                   │

00:01:03 #2736 [Verbose] > │         let v151 : UH2 = UH2_1(v109, v150)                                   │

00:01:03 #2737 [Verbose] > │         let v152 : UH2 = UH2_1(v107, v151)                                   │

00:01:03 #2738 [Verbose] > │         let v153 : UH2 = UH2_1(v108, v152)                                   │

00:01:03 #2739 [Verbose] > │         v103.[int v106] <- struct (v153, v148)                               │

00:01:03 #2740 [Verbose] > │         let v154 : uint64 = v106 + 1UL                                       │

00:01:03 #2741 [Verbose] > │         v104.l0 <- v154                                                      │

00:01:03 #2742 [Verbose] > │         ()                                                                   │

00:01:03 #2743 [Verbose] > │     let v155 : string = "Input"                                              │

00:01:03 #2744 [Verbose] > │     let v156 : string = "Expected"                                           │

00:01:03 #2745 [Verbose] > │     let v157 : string = "Result"                                             │

00:01:03 #2746 [Verbose] > │     let v158 : string = "Best"                                               │

00:01:03 #2747 [Verbose] > │     let v159 : UH2 = UH2_0                                                   │

00:01:03 #2748 [Verbose] > │     let v160 : UH2 = UH2_1(v158, v159)                                       │

00:01:03 #2749 [Verbose] > │     let v161 : UH2 = UH2_1(v157, v160)                                       │

00:01:03 #2750 [Verbose] > │     let v162 : UH2 = UH2_1(v156, v161)                                       │

00:01:03 #2751 [Verbose] > │     let v163 : UH2 = UH2_1(v155, v162)                                       │

00:01:03 #2752 [Verbose] > │     let v164 : US0 = US0_1                                                   │

00:01:03 #2753 [Verbose] > │     let v165 : string = "---"                                                │

00:01:03 #2754 [Verbose] > │     let v166 : UH2 = UH2_0                                                   │

00:01:03 #2755 [Verbose] > │     let v167 : UH2 = UH2_1(v165, v166)                                       │

00:01:03 #2756 [Verbose] > │     let v168 : UH2 = UH2_1(v165, v167)                                       │

00:01:03 #2757 [Verbose] > │     let v169 : UH2 = UH2_1(v165, v168)                                       │

00:01:03 #2758 [Verbose] > │     let v170 : UH2 = UH2_1(v165, v169)                                       │

00:01:03 #2759 [Verbose] > │     let v171 : US0 = US0_1                                                   │

00:01:03 #2760 [Verbose] > │     let v172 : UH5 = UH5_0                                                   │

00:01:03 #2761 [Verbose] > │     let v173 : UH5 = UH5_1(v170, v171, v172)                                 │

00:01:03 #2762 [Verbose] > │     let v174 : UH5 = UH5_1(v163, v164, v173)                                 │

00:01:03 #2763 [Verbose] > │     let v175 : (struct (UH2 * US0) []) = method22(v174)                      │

00:01:03 #2764 [Verbose] > │     let v176 : uint64 = System.Convert.ToUInt64 v175.Length                  │

00:01:03 #2765 [Verbose] > │     let v177 : uint64 = System.Convert.ToUInt64 v103.Length                  │

00:01:03 #2766 [Verbose] > │     let v178 : uint64 = v176 + v177                                          │

00:01:03 #2767 [Verbose] > │     let v179 : (struct (UH2 * US0) []) = Array.zeroCreate<struct (UH2 *      │

00:01:03 #2768 [Verbose] > │ US0)> (System.Convert.ToInt32(v178))                                         │

00:01:03 #2769 [Verbose] > │     let v180 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2770 [Verbose] > │     while method4(v178, v180) do                                             │

00:01:03 #2771 [Verbose] > │         let v182 : uint64 = v180.l0                                          │

00:01:03 #2772 [Verbose] > │         let v183 : bool = v182 < v176                                        │

00:01:03 #2773 [Verbose] > │         let struct (v189 : UH2, v190 : US0) =                                │

00:01:03 #2774 [Verbose] > │             if v183 then                                                     │

00:01:03 #2775 [Verbose] > │                 let struct (v184 : UH2, v185 : US0) = v175.[int v182]        │

00:01:03 #2776 [Verbose] > │                 struct (v184, v185)                                          │

00:01:03 #2777 [Verbose] > │             else                                                             │

00:01:03 #2778 [Verbose] > │                 let v186 : uint64 = v182 - v176                              │

00:01:03 #2779 [Verbose] > │                 let struct (v187 : UH2, v188 : US0) = v103.[int v186]        │

00:01:03 #2780 [Verbose] > │                 struct (v187, v188)                                          │

00:01:03 #2781 [Verbose] > │         v179.[int v182] <- struct (v189, v190)                               │

00:01:03 #2782 [Verbose] > │         let v191 : uint64 = v182 + 1UL                                       │

00:01:03 #2783 [Verbose] > │         v180.l0 <- v191                                                      │

00:01:03 #2784 [Verbose] > │         ()                                                                   │

00:01:03 #2785 [Verbose] > │     let v192 : uint64 = System.Convert.ToUInt64 v179.Length                  │

00:01:03 #2786 [Verbose] > │     let v193 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:01:03 #2787 [Verbose] > │ (System.Convert.ToInt32(v192))                                               │

00:01:03 #2788 [Verbose] > │     let v194 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2789 [Verbose] > │     while method4(v192, v194) do                                             │

00:01:03 #2790 [Verbose] > │         let v196 : uint64 = v194.l0                                          │

00:01:03 #2791 [Verbose] > │         let struct (v197 : UH2, v198 : US0) = v179.[int v196]                │

00:01:03 #2792 [Verbose] > │         let v199 : (string []) = method25(v197)                              │

00:01:03 #2793 [Verbose] > │         v193.[int v196] <- v199                                              │

00:01:03 #2794 [Verbose] > │         let v200 : uint64 = v196 + 1UL                                       │

00:01:03 #2795 [Verbose] > │         v194.l0 <- v200                                                      │

00:01:03 #2796 [Verbose] > │         ()                                                                   │

00:01:03 #2797 [Verbose] > │     let v201 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:01:03 #2798 [Verbose] > │     let v202 : ((string []) []) = v201 v193                                  │

00:01:03 #2799 [Verbose] > │     let v203 : uint64 = System.Convert.ToUInt64 v202.Length                  │

00:01:03 #2800 [Verbose] > │     let v204 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:03 #2801 [Verbose] > │ (System.Convert.ToInt32(v203))                                               │

00:01:03 #2802 [Verbose] > │     let v205 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2803 [Verbose] > │     while method4(v203, v205) do                                             │

00:01:03 #2804 [Verbose] > │         let v207 : uint64 = v205.l0                                          │

00:01:03 #2805 [Verbose] > │         let v208 : (string []) = v202.[int v207]                             │

00:01:03 #2806 [Verbose] > │         let v209 : uint64 = System.Convert.ToUInt64 v208.Length              │

00:01:03 #2807 [Verbose] > │         let v210 : (int64 []) = Array.zeroCreate<int64>                      │

00:01:03 #2808 [Verbose] > │ (System.Convert.ToInt32(v209))                                               │

00:01:03 #2809 [Verbose] > │         let v211 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:01:03 #2810 [Verbose] > │         while method4(v209, v211) do                                         │

00:01:03 #2811 [Verbose] > │             let v213 : uint64 = v211.l0                                      │

00:01:03 #2812 [Verbose] > │             let v214 : string = v208.[int v213]                              │

00:01:03 #2813 [Verbose] > │             let v215 : int64 = System.Convert.ToInt64 v214.Length            │

00:01:03 #2814 [Verbose] > │             v210.[int v213] <- v215                                          │

00:01:03 #2815 [Verbose] > │             let v216 : uint64 = v213 + 1UL                                   │

00:01:03 #2816 [Verbose] > │             v211.l0 <- v216                                                  │

00:01:03 #2817 [Verbose] > │             ()                                                               │

00:01:03 #2818 [Verbose] > │         let v217 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:01:03 #2819 [Verbose] > │         let v218 : (int64 []) = v217 v210                                    │

00:01:03 #2820 [Verbose] > │         let v219 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:01:03 #2821 [Verbose] > │         let v220 : ((int64 []) -> int64 option) = v219 0                     │

00:01:03 #2822 [Verbose] > │         let v221 : int64 option = v220 v218                                  │

00:01:03 #2823 [Verbose] > │         let v222 : (int64 -> US1) = method28()                               │

00:01:03 #2824 [Verbose] > │         let v223 : US1 = US1_1                                               │

00:01:03 #2825 [Verbose] > │         let v224 : US1 = v221 |> Option.map v222 |> Option.defaultValue v223 │

00:01:03 #2826 [Verbose] > │         let v227 : int64 =                                                   │

00:01:03 #2827 [Verbose] > │             match v224 with                                                  │

00:01:03 #2828 [Verbose] > │             | US1_1 -> (* None *)                                            │

00:01:03 #2829 [Verbose] > │                 0L                                                           │

00:01:03 #2830 [Verbose] > │             | US1_0(v225) -> (* Some *)                                      │

00:01:03 #2831 [Verbose] > │                 v225                                                         │

00:01:03 #2832 [Verbose] > │         v204.[int v207] <- v227                                              │

00:01:03 #2833 [Verbose] > │         let v228 : uint64 = v207 + 1UL                                       │

00:01:03 #2834 [Verbose] > │         v205.l0 <- v228                                                      │

00:01:03 #2835 [Verbose] > │         ()                                                                   │

00:01:03 #2836 [Verbose] > │     let v229 : uint64 = System.Convert.ToUInt64 v204.Length                  │

00:01:03 #2837 [Verbose] > │     let v230 : UH6 = UH6_0                                                   │

00:01:03 #2838 [Verbose] > │     let v231 : Mut3 = {l0 = 0UL; l1 = v230; l2 = 0} : Mut3                   │

00:01:03 #2839 [Verbose] > │     while method29(v229, v231) do                                            │

00:01:03 #2840 [Verbose] > │         let v233 : uint64 = v231.l0                                          │

00:01:03 #2841 [Verbose] > │         let struct (v234 : UH6, v235 : int32) = v231.l1, v231.l2             │

00:01:03 #2842 [Verbose] > │         let v236 : int64 = v204.[int v233]                                   │

00:01:03 #2843 [Verbose] > │         let v237 : int32 = v235 + 1                                          │

00:01:03 #2844 [Verbose] > │         let v238 : uint64 = v233 + 1UL                                       │

00:01:03 #2845 [Verbose] > │         let v239 : UH6 = UH6_1(v235, v236, v234)                             │

00:01:03 #2846 [Verbose] > │         v231.l0 <- v238                                                      │

00:01:03 #2847 [Verbose] > │         v231.l1 <- v239                                                      │

00:01:03 #2848 [Verbose] > │         v231.l2 <- v237                                                      │

00:01:03 #2849 [Verbose] > │         ()                                                                   │

00:01:03 #2850 [Verbose] > │     let struct (v240 : UH6, v241 : int32) = v231.l1, v231.l2                 │

00:01:03 #2851 [Verbose] > │     let v242 : UH6 = UH6_0                                                   │

00:01:03 #2852 [Verbose] > │     let v243 : UH6 = method30(v240, v242)                                    │

00:01:03 #2853 [Verbose] > │     let v244 : (struct (int32 * int64) []) = method31(v243)                  │

00:01:03 #2854 [Verbose] > │     let v245 : Map<int32, int64> = v244 |> Array.map (fun (struct (a, b)) -> │

00:01:03 #2855 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:01:03 #2856 [Verbose] > │     let v246 : (struct ((string []) * US0) []) = Array.zeroCreate<struct     │

00:01:03 #2857 [Verbose] > │ ((string []) * US0)> (System.Convert.ToInt32(v192))                          │

00:01:03 #2858 [Verbose] > │     let v247 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2859 [Verbose] > │     while method4(v192, v247) do                                             │

00:01:03 #2860 [Verbose] > │         let v249 : uint64 = v247.l0                                          │

00:01:03 #2861 [Verbose] > │         let struct (v250 : UH2, v251 : US0) = v179.[int v249]                │

00:01:03 #2862 [Verbose] > │         let v252 : UH7 = UH7_0                                               │

00:01:03 #2863 [Verbose] > │         let v253 : int32 = 0                                                 │

00:01:03 #2864 [Verbose] > │         let struct (v254 : UH7, v255 : int32) = method34(v250, v252, v253)   │

00:01:03 #2865 [Verbose] > │         let v256 : UH7 = UH7_0                                               │

00:01:03 #2866 [Verbose] > │         let v257 : UH7 = method35(v254, v256)                                │

00:01:03 #2867 [Verbose] > │         let v258 : UH2 = UH2_0                                               │

00:01:03 #2868 [Verbose] > │         let v259 : UH2 = method36(v245, v257, v258)                          │

00:01:03 #2869 [Verbose] > │         let v260 : (string []) = method9(v259)                               │

00:01:03 #2870 [Verbose] > │         v246.[int v249] <- struct (v260, v251)                               │

00:01:03 #2871 [Verbose] > │         let v261 : uint64 = v249 + 1UL                                       │

00:01:03 #2872 [Verbose] > │         v247.l0 <- v261                                                      │

00:01:03 #2873 [Verbose] > │         ()                                                                   │

00:01:03 #2874 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:03 #2875 [Verbose] > │     let v262 : uint64 = System.Convert.ToUInt64 v246.Length                  │

00:01:03 #2876 [Verbose] > │     let v263 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2877 [Verbose] > │     while method4(v262, v263) do                                             │

00:01:03 #2878 [Verbose] > │         let v265 : uint64 = v263.l0                                          │

00:01:03 #2879 [Verbose] > │         let struct (v266 : (string []), v267 : US0) = v246.[int v265]        │

00:01:03 #2880 [Verbose] > │         match v267 with                                                      │

00:01:03 #2881 [Verbose] > │         | US0_1 -> (* None *)                                                │

00:01:03 #2882 [Verbose] > │             let v270 : unit option = None                                    │

00:01:03 #2883 [Verbose] > │             let mutable _v270 = v270                                         │

00:01:03 #2884 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:03 #2885 [Verbose] > │             ()                                                               │

00:01:03 #2886 [Verbose] > │             #endif                                                           │

00:01:03 #2887 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:03 #2888 [Verbose] > │             ()                                                               │

00:01:03 #2889 [Verbose] > │             #endif                                                           │

00:01:03 #2890 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:03 #2891 [Verbose] > │             ()                                                               │

00:01:03 #2892 [Verbose] > │             #endif                                                           │

00:01:03 #2893 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:03 #2894 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:03 #2895 [Verbose] > │             ()                                                               │

00:01:03 #2896 [Verbose] > │             #endif                                                           │

00:01:03 #2897 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:03 #2898 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:03 #2899 [Verbose] > │             ()                                                               │

00:01:03 #2900 [Verbose] > │             #endif                                                           │

00:01:03 #2901 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:03 #2902 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:03 #2903 [Verbose] > │             ()                                                               │

00:01:03 #2904 [Verbose] > │             #endif                                                           │

00:01:03 #2905 [Verbose] > │             |> fun x -> _v270 <- Some x                                      │

00:01:03 #2906 [Verbose] > │             _v270 |> Option.get                                              │

00:01:03 #2907 [Verbose] > │             ()                                                               │

00:01:03 #2908 [Verbose] > │         | US0_0(v268) -> (* Some *)                                          │

00:01:03 #2909 [Verbose] > │             let v269 : unit option = None                                    │

00:01:03 #2910 [Verbose] > │             let mutable _v269 = v269                                         │

00:01:03 #2911 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:03 #2912 [Verbose] > │             ()                                                               │

00:01:03 #2913 [Verbose] > │             #endif                                                           │

00:01:03 #2914 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:03 #2915 [Verbose] > │             ()                                                               │

00:01:03 #2916 [Verbose] > │             #endif                                                           │

00:01:03 #2917 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:03 #2918 [Verbose] > │             ()                                                               │

00:01:03 #2919 [Verbose] > │             #endif                                                           │

00:01:03 #2920 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:03 #2921 [Verbose] > │             System.Console.ForegroundColor <- v268                           │

00:01:03 #2922 [Verbose] > │             ()                                                               │

00:01:03 #2923 [Verbose] > │             #endif                                                           │

00:01:03 #2924 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:03 #2925 [Verbose] > │             System.Console.ForegroundColor <- v268                           │

00:01:03 #2926 [Verbose] > │             ()                                                               │

00:01:03 #2927 [Verbose] > │             #endif                                                           │

00:01:03 #2928 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:03 #2929 [Verbose] > │             System.Console.ForegroundColor <- v268                           │

00:01:03 #2930 [Verbose] > │             ()                                                               │

00:01:03 #2931 [Verbose] > │             #endif                                                           │

00:01:03 #2932 [Verbose] > │             |> fun x -> _v269 <- Some x                                      │

00:01:03 #2933 [Verbose] > │             _v269 |> Option.get                                              │

00:01:03 #2934 [Verbose] > │             ()                                                               │

00:01:03 #2935 [Verbose] > │         let v271 : string = "\t| "                                           │

00:01:03 #2936 [Verbose] > │         let v272 : string = System.String.Join (v271, v266)                  │

00:01:03 #2937 [Verbose] > │         System.Console.WriteLine v272                                        │

00:01:03 #2938 [Verbose] > │         let v273 : unit option = None                                        │

00:01:03 #2939 [Verbose] > │         let mutable _v273 = v273                                             │

00:01:03 #2940 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:01:03 #2941 [Verbose] > │         ()                                                                   │

00:01:03 #2942 [Verbose] > │         #endif                                                               │

00:01:03 #2943 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:01:03 #2944 [Verbose] > │         ()                                                                   │

00:01:03 #2945 [Verbose] > │         #endif                                                               │

00:01:03 #2946 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:01:03 #2947 [Verbose] > │         ()                                                                   │

00:01:03 #2948 [Verbose] > │         #endif                                                               │

00:01:03 #2949 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:01:03 #2950 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:03 #2951 [Verbose] > │         ()                                                                   │

00:01:03 #2952 [Verbose] > │         #endif                                                               │

00:01:03 #2953 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:01:03 #2954 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:03 #2955 [Verbose] > │         ()                                                                   │

00:01:03 #2956 [Verbose] > │         #endif                                                               │

00:01:03 #2957 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:01:03 #2958 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:03 #2959 [Verbose] > │         ()                                                                   │

00:01:03 #2960 [Verbose] > │         #endif                                                               │

00:01:03 #2961 [Verbose] > │         |> fun x -> _v273 <- Some x                                          │

00:01:03 #2962 [Verbose] > │         _v273 |> Option.get                                                  │

00:01:03 #2963 [Verbose] > │         let v274 : uint64 = v265 + 1UL                                       │

00:01:03 #2964 [Verbose] > │         v263.l0 <- v274                                                      │

00:01:03 #2965 [Verbose] > │         ()                                                                   │

00:01:03 #2966 [Verbose] > │     let v275 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:01:03 #2967 [Verbose] > │ (System.Convert.ToInt32(v102))                                               │

00:01:03 #2968 [Verbose] > │     let v276 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2969 [Verbose] > │     while method4(v102, v276) do                                             │

00:01:03 #2970 [Verbose] > │         let v278 : uint64 = v276.l0                                          │

00:01:03 #2971 [Verbose] > │         let struct (v279 : string, v280 : string, v281 : string, v282 :      │

00:01:03 #2972 [Verbose] > │ (int64 [])) = v24.[int v278]                                                 │

00:01:03 #2973 [Verbose] > │         let v283 : (int64 -> float) = float                                  │

00:01:03 #2974 [Verbose] > │         let v284 : uint64 = System.Convert.ToUInt64 v282.Length              │

00:01:03 #2975 [Verbose] > │         let v285 : (float []) = Array.zeroCreate<float>                      │

00:01:03 #2976 [Verbose] > │ (System.Convert.ToInt32(v284))                                               │

00:01:03 #2977 [Verbose] > │         let v286 : Mut0 = {l0 = 0UL} : Mut0                                  │

00:01:03 #2978 [Verbose] > │         while method4(v284, v286) do                                         │

00:01:03 #2979 [Verbose] > │             let v288 : uint64 = v286.l0                                      │

00:01:03 #2980 [Verbose] > │             let v289 : int64 = v282.[int v288]                               │

00:01:03 #2981 [Verbose] > │             let v290 : float = v283 v289                                     │

00:01:03 #2982 [Verbose] > │             v285.[int v288] <- v290                                          │

00:01:03 #2983 [Verbose] > │             let v291 : uint64 = v288 + 1UL                                   │

00:01:03 #2984 [Verbose] > │             v286.l0 <- v291                                                  │

00:01:03 #2985 [Verbose] > │             ()                                                               │

00:01:03 #2986 [Verbose] > │         v275.[int v278] <- v285                                              │

00:01:03 #2987 [Verbose] > │         let v292 : uint64 = v278 + 1UL                                       │

00:01:03 #2988 [Verbose] > │         v276.l0 <- v292                                                      │

00:01:03 #2989 [Verbose] > │         ()                                                                   │

00:01:03 #2990 [Verbose] > │     let v293 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:01:03 #2991 [Verbose] > │     let v294 : ((float []) []) = v293 v275                                   │

00:01:03 #2992 [Verbose] > │     let v295 : uint64 = System.Convert.ToUInt64 v294.Length                  │

00:01:03 #2993 [Verbose] > │     let v296 : (float []) = Array.zeroCreate<float>                          │

00:01:03 #2994 [Verbose] > │ (System.Convert.ToInt32(v295))                                               │

00:01:03 #2995 [Verbose] > │     let v297 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #2996 [Verbose] > │     while method4(v295, v297) do                                             │

00:01:03 #2997 [Verbose] > │         let v299 : uint64 = v297.l0                                          │

00:01:03 #2998 [Verbose] > │         let v300 : (float []) = v294.[int v299]                              │

00:01:03 #2999 [Verbose] > │         let v301 : ((float []) -> float) = Array.average                     │

00:01:03 #3000 [Verbose] > │         let v302 : float = v301 v300                                         │

00:01:03 #3001 [Verbose] > │         v296.[int v299] <- v302                                              │

00:01:03 #3002 [Verbose] > │         let v303 : uint64 = v299 + 1UL                                       │

00:01:03 #3003 [Verbose] > │         v297.l0 <- v303                                                      │

00:01:03 #3004 [Verbose] > │         ()                                                                   │

00:01:03 #3005 [Verbose] > │     let v304 : (float -> int64) = int64                                      │

00:01:03 #3006 [Verbose] > │     let v305 : uint64 = System.Convert.ToUInt64 v296.Length                  │

00:01:03 #3007 [Verbose] > │     let v306 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:03 #3008 [Verbose] > │ (System.Convert.ToInt32(v305))                                               │

00:01:03 #3009 [Verbose] > │     let v307 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #3010 [Verbose] > │     while method4(v305, v307) do                                             │

00:01:03 #3011 [Verbose] > │         let v309 : uint64 = v307.l0                                          │

00:01:03 #3012 [Verbose] > │         let v310 : float = v296.[int v309]                                   │

00:01:03 #3013 [Verbose] > │         let v311 : int64 = v304 v310                                         │

00:01:03 #3014 [Verbose] > │         v306.[int v309] <- v311                                              │

00:01:03 #3015 [Verbose] > │         let v312 : uint64 = v309 + 1UL                                       │

00:01:03 #3016 [Verbose] > │         v307.l0 <- v312                                                      │

00:01:03 #3017 [Verbose] > │         ()                                                                   │

00:01:03 #3018 [Verbose] > │     let v313 : uint64 = System.Convert.ToUInt64 v306.Length                  │

00:01:03 #3019 [Verbose] > │     let v314 : UH6 = UH6_0                                                   │

00:01:03 #3020 [Verbose] > │     let v315 : Mut3 = {l0 = 0UL; l1 = v314; l2 = 0} : Mut3                   │

00:01:03 #3021 [Verbose] > │     while method29(v313, v315) do                                            │

00:01:03 #3022 [Verbose] > │         let v317 : uint64 = v315.l0                                          │

00:01:03 #3023 [Verbose] > │         let struct (v318 : UH6, v319 : int32) = v315.l1, v315.l2             │

00:01:03 #3024 [Verbose] > │         let v320 : int64 = v306.[int v317]                                   │

00:01:03 #3025 [Verbose] > │         let v321 : int32 = v319 + 1                                          │

00:01:03 #3026 [Verbose] > │         let v322 : uint64 = v317 + 1UL                                       │

00:01:03 #3027 [Verbose] > │         let v323 : UH6 = UH6_1(v319, v320, v318)                             │

00:01:03 #3028 [Verbose] > │         v315.l0 <- v322                                                      │

00:01:03 #3029 [Verbose] > │         v315.l1 <- v323                                                      │

00:01:03 #3030 [Verbose] > │         v315.l2 <- v321                                                      │

00:01:03 #3031 [Verbose] > │         ()                                                                   │

00:01:03 #3032 [Verbose] > │     let struct (v324 : UH6, v325 : int32) = v315.l1, v315.l2                 │

00:01:03 #3033 [Verbose] > │     let v326 : UH6 = UH6_0                                                   │

00:01:03 #3034 [Verbose] > │     let v327 : UH6 = method30(v324, v326)                                    │

00:01:03 #3035 [Verbose] > │     let v328 : (struct (int32 * int64) []) = method37(v327)                  │

00:01:03 #3036 [Verbose] > │     System.Console.WriteLine v2                                              │

00:01:03 #3037 [Verbose] > │     let v329 : string = "Average Ranking  "                                  │

00:01:03 #3038 [Verbose] > │     System.Console.WriteLine v329                                            │

00:01:03 #3039 [Verbose] > │     let v330 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:01:03 #3040 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:01:03 #3041 [Verbose] > │     let v331 : (struct (int32 * int64) -> int64) = closure6()                │

00:01:03 #3042 [Verbose] > │     let v332 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:01:03 #3043 [Verbose] > │ = v330 v331                                                                  │

00:01:03 #3044 [Verbose] > │     let v333 : (struct (int32 * int64) []) = v332 v328                       │

00:01:03 #3045 [Verbose] > │     let v334 : uint64 = System.Convert.ToUInt64 v333.Length                  │

00:01:03 #3046 [Verbose] > │     let v335 : Mut0 = {l0 = 0UL} : Mut0                                      │

00:01:03 #3047 [Verbose] > │     while method4(v334, v335) do                                             │

00:01:03 #3048 [Verbose] > │         let v337 : uint64 = v335.l0                                          │

00:01:03 #3049 [Verbose] > │         let struct (v338 : int32, v339 : int64) = v333.[int v337]            │

00:01:03 #3050 [Verbose] > │         let v340 : string = $"Test case %d{v338 + 1}. Average Time: %A{v339} │

00:01:03 #3051 [Verbose] > │ "                                                                            │

00:01:03 #3052 [Verbose] > │         System.Console.WriteLine v340                                        │

00:01:03 #3053 [Verbose] > │         let v341 : uint64 = v337 + 1UL                                       │

00:01:03 #3054 [Verbose] > │         v335.l0 <- v341                                                      │

00:01:03 #3055 [Verbose] > │         ()                                                                   │

00:01:03 #3056 [Verbose] > │     ()                                                                       │

00:01:03 #3057 [Verbose] > │ method0()                                                                    │

00:01:03 #3058 [Verbose] > │                                                                              │

00:01:03 #3059 [Verbose] > │                                                                              │

00:01:03 #3060 [Verbose] > │                                                                              │

00:01:03 #3061 [Verbose] > │ Test: v0                                                                     │

00:01:03 #3062 [Verbose] > │                                                                              │

00:01:03 #3063 [Verbose] > │ Solution: "abc"                                                              │

00:01:03 #3064 [Verbose] > │ Test case 1. F. Time: 1137                                                   │

00:01:03 #3065 [Verbose] > │ Test case 2. FA. Time: 1554                                                  │

00:01:03 #3066 [Verbose] > │                                                                              │

00:01:03 #3067 [Verbose] > │ Solution: "abcde"                                                            │

00:01:03 #3068 [Verbose] > │ Test case 1. F. Time: 1649                                                   │

00:01:03 #3069 [Verbose] > │ Test case 2. FA. Time: 2291                                                  │

00:01:03 #3070 [Verbose] > │                                                                              │

00:01:03 #3071 [Verbose] > │ Solution: "abcdefghi"                                                        │

00:01:03 #3072 [Verbose] > │ Test case 1. F. Time: 2054                                                   │

00:01:03 #3073 [Verbose] > │ Test case 2. FA. Time: 2395                                                  │

00:01:03 #3074 [Verbose] > │                                                                              │

00:01:03 #3075 [Verbose] > │ Solution: "abab"                                                             │

00:01:03 #3076 [Verbose] > │ Test case 1. F. Time: 1158                                                   │

00:01:03 #3077 [Verbose] > │ Test case 2. FA. Time: 1219                                                  │

00:01:03 #3078 [Verbose] > │                                                                              │

00:01:03 #3079 [Verbose] > │ Solution: "aa"                                                               │

00:01:03 #3080 [Verbose] > │ Test case 1. F. Time: 803                                                    │

00:01:03 #3081 [Verbose] > │ Test case 2. FA. Time: 919                                                   │

00:01:03 #3082 [Verbose] > │                                                                              │

00:01:03 #3083 [Verbose] > │ Solution: "z"                                                                │

00:01:03 #3084 [Verbose] > │ Test case 1. F. Time: 242                                                    │

00:01:03 #3085 [Verbose] > │ Test case 2. FA. Time: 239                                                   │

00:01:03 #3086 [Verbose] > │                                                                              │

00:01:03 #3087 [Verbose] > │ Input      	| Expected                                                         │

00:01:03 #3088 [Verbose] > │                                                                              │

00:01:03 #3089 [Verbose] > │ | Result                                                                     │

00:01:03 #3090 [Verbose] > │                                                                              │

00:01:03 #3091 [Verbose] > │ | Best                                                                       │

00:01:03 #3092 [Verbose] > │ ---        	| ---                                                              │

00:01:03 #3093 [Verbose] > │                                                                              │

00:01:03 #3094 [Verbose] > │ | ---                                                                        │

00:01:03 #3095 [Verbose] > │                                                                              │

00:01:03 #3096 [Verbose] > │ | ---                                                                        │

00:01:03 #3097 [Verbose] > │ "abc"      	| "bca cab abc"                                                    │

00:01:03 #3098 [Verbose] > │                                                                              │

00:01:03 #3099 [Verbose] > │ | "bca cab abc"                                                              │

00:01:03 #3100 [Verbose] > │                                                                              │

00:01:03 #3101 [Verbose] > │ | struct (1L, 1137L)                                                         │

00:01:03 #3102 [Verbose] > │ "abcde"    	| "bcdea cdeab deabc eabcd abcde"                                  │

00:01:03 #3103 [Verbose] > │ | "bcdea cdeab deabc eabcd abcde"                                            │

00:01:03 #3104 [Verbose] > │ | struct (1L, 1649L)                                                         │

00:01:03 #3105 [Verbose] > │ "abcdefghi"	| "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef     │

00:01:03 #3106 [Verbose] > │ hiabcdefg iabcdefgh abcdefghi"	| "bcdefghia cdefghiab defghiabc efghiabcd      │

00:01:03 #3107 [Verbose] > │ fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi"	| struct (1L, 2054L)        │

00:01:03 #3108 [Verbose] > │ "abab"     	| "baba abab baba abab"                                            │

00:01:03 #3109 [Verbose] > │ | "baba abab baba abab"                                                      │

00:01:03 #3110 [Verbose] > │ | struct (1L, 1158L)                                                         │

00:01:03 #3111 [Verbose] > │ "aa"       	| "aa aa"                                                          │

00:01:03 #3112 [Verbose] > │                                                                              │

00:01:03 #3113 [Verbose] > │ | "aa aa"                                                                    │

00:01:03 #3114 [Verbose] > │                                                                              │

00:01:03 #3115 [Verbose] > │ | struct (1L, 803L)                                                          │

00:01:03 #3116 [Verbose] > │ "z"        	| "z"                                                              │

00:01:03 #3117 [Verbose] > │                                                                              │

00:01:03 #3118 [Verbose] > │ | "z"                                                                        │

00:01:03 #3119 [Verbose] > │                                                                              │

00:01:03 #3120 [Verbose] > │ | struct (2L, 239L)                                                          │

00:01:03 #3121 [Verbose] > │                                                                              │

00:01:03 #3122 [Verbose] > │ Average Ranking                                                              │

00:01:03 #3123 [Verbose] > │ Test case 1. Average Time: 1173L                                             │

00:01:03 #3124 [Verbose] > │ Test case 2. Average Time: 1436L                                             │

00:01:03 #3125 [Verbose] > │                                                                              │

00:01:03 #3126 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:03 #3127 [Verbose] >

00:01:03 #3128 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:03 #3129 [Verbose] > // // test

00:01:03 #3130 [Verbose] > // // rust=

00:01:03 #3131 [Verbose] > // // print_code=false

00:01:03 #3132 [Verbose] >

00:01:03 #3133 [Verbose] > // rotate_strings_tests ()

00:01:03 #3134 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1321-0625-2576-2c3df52cef8f\main.spi

00:01:03 #3135 [Verbose] >

00:01:03 #3136 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:03 #3137 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:03 #3138 [Verbose] > │ ## binary_search_tests                                                       │

00:01:03 #3139 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:03 #3140 [Verbose] >

00:01:03 #3141 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:03 #3142 [Verbose] > // // test

00:01:03 #3143 [Verbose] > // // timeout=90000

00:01:03 #3144 [Verbose] > // // print_code=true

00:01:03 #3145 [Verbose] >

00:01:03 #3146 [Verbose] > inl binary_search_semi_open_1 arr target left right =

00:01:03 #3147 [Verbose] >     inl rec body left right =

00:01:03 #3148 [Verbose] >         if left >= right

00:01:03 #3149 [Verbose] >         then None

00:01:03 #3150 [Verbose] >         else

00:01:03 #3151 [Verbose] >             inl mid = (left + right) / 2

00:01:03 #3152 [Verbose] >             inl item = index arr mid

00:01:03 #3153 [Verbose] >             if item = target

00:01:03 #3154 [Verbose] >             then Some mid

00:01:03 #3155 [Verbose] >             elif item < target

00:01:03 #3156 [Verbose] >             then loop (mid + 1) right

00:01:03 #3157 [Verbose] >             else loop left mid

00:01:03 #3158 [Verbose] >     and inl loop left right =

00:01:03 #3159 [Verbose] >         if var_is right |> not

00:01:03 #3160 [Verbose] >         then body left right

00:01:03 #3161 [Verbose] >         else

00:01:03 #3162 [Verbose] >             inl left = dyn left

00:01:03 #3163 [Verbose] >             join body left right

00:01:03 #3164 [Verbose] >     loop left right

00:01:03 #3165 [Verbose] >

00:01:03 #3166 [Verbose] > inl binary_search_closed_1 arr target left right =

00:01:03 #3167 [Verbose] >     inl rec body left right =

00:01:03 #3168 [Verbose] >         if left > right

00:01:03 #3169 [Verbose] >         then None

00:01:03 #3170 [Verbose] >         else

00:01:03 #3171 [Verbose] >             inl mid = (left + right) / 2

00:01:03 #3172 [Verbose] >             inl item = index arr mid

00:01:03 #3173 [Verbose] >             if item = target

00:01:03 #3174 [Verbose] >             then Some mid

00:01:03 #3175 [Verbose] >             elif item < target

00:01:03 #3176 [Verbose] >             then loop (mid + 1) right

00:01:03 #3177 [Verbose] >             else loop left (mid - 1)

00:01:03 #3178 [Verbose] >     and inl loop left right =

00:01:03 #3179 [Verbose] >         if var_is right |> not

00:01:03 #3180 [Verbose] >         then body left right

00:01:03 #3181 [Verbose] >         else

00:01:03 #3182 [Verbose] >             inl left = dyn left

00:01:03 #3183 [Verbose] >             join body left right

00:01:03 #3184 [Verbose] >     loop left right

00:01:03 #3185 [Verbose] >

00:01:03 #3186 [Verbose] > inl binary_search_semi_open_2 arr target left right =

00:01:03 #3187 [Verbose] >     let rec body left right =

00:01:03 #3188 [Verbose] >         if left >= right

00:01:03 #3189 [Verbose] >         then None

00:01:03 #3190 [Verbose] >         else

00:01:03 #3191 [Verbose] >             inl mid = (left + right) / 2

00:01:03 #3192 [Verbose] >             inl item = index arr mid

00:01:03 #3193 [Verbose] >             if item = target

00:01:03 #3194 [Verbose] >             then Some mid

00:01:03 #3195 [Verbose] >             elif item < target

00:01:03 #3196 [Verbose] >             then loop (mid + 1) right

00:01:03 #3197 [Verbose] >             else loop left mid

00:01:03 #3198 [Verbose] >     and inl loop left right = body left right

00:01:03 #3199 [Verbose] >     loop left right

00:01:03 #3200 [Verbose] >

00:01:03 #3201 [Verbose] > inl binary_search_closed_2 arr target left right =

00:01:03 #3202 [Verbose] >     let rec body left right =

00:01:03 #3203 [Verbose] >         if left > right

00:01:03 #3204 [Verbose] >         then None

00:01:03 #3205 [Verbose] >         else

00:01:03 #3206 [Verbose] >             inl mid = (left + right) / 2

00:01:03 #3207 [Verbose] >             inl item = index arr mid

00:01:03 #3208 [Verbose] >             if item = target

00:01:03 #3209 [Verbose] >             then Some mid

00:01:03 #3210 [Verbose] >             elif item < target

00:01:03 #3211 [Verbose] >             then loop (mid + 1) right

00:01:03 #3212 [Verbose] >             else loop left (mid - 1)

00:01:03 #3213 [Verbose] >     and inl loop left right = body left right

00:01:03 #3214 [Verbose] >     loop left right

00:01:03 #3215 [Verbose] >

00:01:03 #3216 [Verbose] > inl get_solutions () =

00:01:03 #3217 [Verbose] >     [[

00:01:03 #3218 [Verbose] >         "semi_open_1",

00:01:03 #3219 [Verbose] >         fun (arr, (target, len)) =>

00:01:03 #3220 [Verbose] >             binary_search_semi_open_1 arr target 0 len

00:01:03 #3221 [Verbose] >

00:01:03 #3222 [Verbose] >         "closed_1",

00:01:03 #3223 [Verbose] >         fun (arr, (target, len)) =>

00:01:03 #3224 [Verbose] >             binary_search_closed_1 arr target 0 (len - 1)

00:01:03 #3225 [Verbose] >

00:01:03 #3226 [Verbose] >         "semi_open_2",

00:01:03 #3227 [Verbose] >         fun (arr, (target, len)) =>

00:01:03 #3228 [Verbose] >             binary_search_semi_open_2 arr target 0 len

00:01:03 #3229 [Verbose] >

00:01:03 #3230 [Verbose] >         "closed_2",

00:01:03 #3231 [Verbose] >         fun (arr, (target, len)) =>

00:01:03 #3232 [Verbose] >             binary_search_closed_2 arr target 0 (len - 1)

00:01:03 #3233 [Verbose] >     ]]

00:01:03 #3234 [Verbose] >

00:01:03 #3235 [Verbose] > inl rec binary_search_tests () =

00:01:03 #3236 [Verbose] >     inl arr_with_len target len arr =

00:01:03 #3237 [Verbose] >         arr, (target, (len |> optionm'.default_with fun () => length arr))

00:01:03 #3238 [Verbose] >

00:01:03 #3239 [Verbose] >     inl test_cases = [[

00:01:03 #3240 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)

00:01:03 #3241 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)

00:01:03 #3242 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)

00:01:03 #3243 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None

00:01:03 #3244 [Verbose] >         ((am'.init_series 1i32 100 1) |> arr_with_len 60 None), (Some 59)

00:01:03 #3245 [Verbose] >

00:01:03 #3246 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some

00:01:03 #3247 [Verbose] > 3i32)

00:01:03 #3248 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some

00:01:03 #3249 [Verbose] > 0i32)

00:01:03 #3250 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some

00:01:03 #3251 [Verbose] > 6i32)

00:01:03 #3252 [Verbose] >         (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None

00:01:03 #3253 [Verbose] >         ((am'.init_series 1i32 100 1) |> arr_with_len 60 (Some 100)), (Some 59)

00:01:03 #3254 [Verbose] >     ]]

00:01:03 #3255 [Verbose] >

00:01:03 #3256 [Verbose] >     inl solutions = get_solutions ()

00:01:03 #3257 [Verbose] >

00:01:03 #3258 [Verbose] >     // inl is_fast () = true

00:01:03 #3259 [Verbose] >

00:01:03 #3260 [Verbose] >     inl count =

00:01:03 #3261 [Verbose] >         if is_fast ()

00:01:03 #3262 [Verbose] >         then 1000i32

00:01:03 #3263 [Verbose] >         else 8000000i32

00:01:03 #3264 [Verbose] >

00:01:03 #3265 [Verbose] >     run_all (nameof binary_search_tests) count solutions test_cases

00:01:03 #3266 [Verbose] >     |> sort_result_list

00:01:03 #3267 [Verbose] >

00:01:03 #3268 [Verbose] >

00:01:03 #3269 [Verbose] > let main () =

00:01:03 #3270 [Verbose] >     binary_search_tests ()

00:01:03 #3271 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1321-0650-5098-5c668095b4f0\main.spi

00:01:36 #3272 [Verbose] >

00:01:36 #3273 [Verbose] > ╭─[ 32.99s - stdout ]──────────────────────────────────────────────────────────╮

00:01:36 #3274 [Verbose] > │ type Mut0 = {mutable l0 : int32}                                             │

00:01:36 #3275 [Verbose] > │ and [<Struct>] US0 =                                                         │

00:01:36 #3276 [Verbose] > │     | US0_0 of f0_0 : int32                                                  │

00:01:36 #3277 [Verbose] > │     | US0_1                                                                  │

00:01:36 #3278 [Verbose] > │ and UH0 =                                                                    │

00:01:36 #3279 [Verbose] > │     | UH0_0                                                                  │

00:01:36 #3280 [Verbose] > │     | UH0_1 of (int32 []) * int32 * int32 * US0 * UH0                        │

00:01:36 #3281 [Verbose] > │ and Mut1 = {mutable l0 : uint64}                                             │

00:01:36 #3282 [Verbose] > │ and UH1 =                                                                    │

00:01:36 #3283 [Verbose] > │     | UH1_0                                                                  │

00:01:36 #3284 [Verbose] > │     | UH1_1 of int32 * string * (struct ((int32 []) * int32 * int32) -> US0) │

00:01:36 #3285 [Verbose] > │ * UH1                                                                        │

00:01:36 #3286 [Verbose] > │ and UH2 =                                                                    │

00:01:36 #3287 [Verbose] > │     | UH2_0                                                                  │

00:01:36 #3288 [Verbose] > │     | UH2_1 of string * UH2                                                  │

00:01:36 #3289 [Verbose] > │ and [<Struct>] US1 =                                                         │

00:01:36 #3290 [Verbose] > │     | US1_0 of f0_0 : System.ConsoleColor                                    │

00:01:36 #3291 [Verbose] > │     | US1_1                                                                  │

00:01:36 #3292 [Verbose] > │ and UH3 =                                                                    │

00:01:36 #3293 [Verbose] > │     | UH3_0                                                                  │

00:01:36 #3294 [Verbose] > │     | UH3_1 of int64 * int64 * UH3                                           │

00:01:36 #3295 [Verbose] > │ and Mut2 = {mutable l0 : uint64; mutable l1 : UH3; mutable l2 : int64}       │

00:01:36 #3296 [Verbose] > │ and UH4 =                                                                    │

00:01:36 #3297 [Verbose] > │     | UH4_0                                                                  │

00:01:36 #3298 [Verbose] > │     | UH4_1 of UH2 * US1 * UH4                                               │

00:01:36 #3299 [Verbose] > │ and [<Struct>] US2 =                                                         │

00:01:36 #3300 [Verbose] > │     | US2_0 of f0_0 : int64                                                  │

00:01:36 #3301 [Verbose] > │     | US2_1                                                                  │

00:01:36 #3302 [Verbose] > │ and UH5 =                                                                    │

00:01:36 #3303 [Verbose] > │     | UH5_0                                                                  │

00:01:36 #3304 [Verbose] > │     | UH5_1 of int32 * int64 * UH5                                           │

00:01:36 #3305 [Verbose] > │ and Mut3 = {mutable l0 : uint64; mutable l1 : UH5; mutable l2 : int32}       │

00:01:36 #3306 [Verbose] > │ and UH6 =                                                                    │

00:01:36 #3307 [Verbose] > │     | UH6_0                                                                  │

00:01:36 #3308 [Verbose] > │     | UH6_1 of int32 * string * UH6                                          │

00:01:36 #3309 [Verbose] > │ let rec method1 (v0 : Mut0) : bool =                                         │

00:01:36 #3310 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:36 #3311 [Verbose] > │     let v2 : bool = v1 < 100                                                 │

00:01:36 #3312 [Verbose] > │     v2                                                                       │

00:01:36 #3313 [Verbose] > │ and method3 (v0 : UH0, v1 : uint64) : uint64 =                               │

00:01:36 #3314 [Verbose] > │     match v0 with                                                            │

00:01:36 #3315 [Verbose] > │     | UH0_1(v2, v3, v4, v5, v6) -> (* Cons *)                                │

00:01:36 #3316 [Verbose] > │         let v7 : uint64 = v1 + 1UL                                           │

00:01:36 #3317 [Verbose] > │         method3(v6, v7)                                                      │

00:01:36 #3318 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:01:36 #3319 [Verbose] > │         v1                                                                   │

00:01:36 #3320 [Verbose] > │ and method4 (v0 : (struct ((int32 []) * int32 * int32 * US0) []), v1 : UH0,  │

00:01:36 #3321 [Verbose] > │ v2 : uint64) : uint64 =                                                      │

00:01:36 #3322 [Verbose] > │     match v1 with                                                            │

00:01:36 #3323 [Verbose] > │     | UH0_1(v3, v4, v5, v6, v7) -> (* Cons *)                                │

00:01:36 #3324 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5, v6)                               │

00:01:36 #3325 [Verbose] > │         let v8 : uint64 = v2 + 1UL                                           │

00:01:36 #3326 [Verbose] > │         method4(v0, v7, v8)                                                  │

00:01:36 #3327 [Verbose] > │     | UH0_0 -> (* Nil *)                                                     │

00:01:36 #3328 [Verbose] > │         v2                                                                   │

00:01:36 #3329 [Verbose] > │ and method2 (v0 : UH0) : (struct ((int32 []) * int32 * int32 * US0) []) =    │

00:01:36 #3330 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:36 #3331 [Verbose] > │     let v2 : uint64 = method3(v0, v1)                                        │

00:01:36 #3332 [Verbose] > │     let v3 : (struct ((int32 []) * int32 * int32 * US0) []) =                │

00:01:36 #3333 [Verbose] > │ Array.zeroCreate<struct ((int32 []) * int32 * int32 * US0)>                  │

00:01:36 #3334 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:01:36 #3335 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:36 #3336 [Verbose] > │     let v5 : uint64 = method4(v3, v0, v4)                                    │

00:01:36 #3337 [Verbose] > │     v3                                                                       │

00:01:36 #3338 [Verbose] > │ and method5 (v0 : uint64, v1 : Mut1) : bool =                                │

00:01:36 #3339 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:01:36 #3340 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:36 #3341 [Verbose] > │     v3                                                                       │

00:01:36 #3342 [Verbose] > │ and method6 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │

00:01:36 #3343 [Verbose] > │     let v4 : bool = v3 >= v2                                                 │

00:01:36 #3344 [Verbose] > │     if v4 then                                                               │

00:01:36 #3345 [Verbose] > │         US0_1                                                                │

00:01:36 #3346 [Verbose] > │     else                                                                     │

00:01:36 #3347 [Verbose] > │         let v6 : int32 = v3 + v2                                             │

00:01:36 #3348 [Verbose] > │         let v7 : int32 = v6 / 2                                              │

00:01:36 #3349 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │

00:01:36 #3350 [Verbose] > │         let v9 : bool = v8 = v1                                              │

00:01:36 #3351 [Verbose] > │         if v9 then                                                           │

00:01:36 #3352 [Verbose] > │             US0_0(v7)                                                        │

00:01:36 #3353 [Verbose] > │         else                                                                 │

00:01:36 #3354 [Verbose] > │             let v11 : bool = v8 < v1                                         │

00:01:36 #3355 [Verbose] > │             if v11 then                                                      │

00:01:36 #3356 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │

00:01:36 #3357 [Verbose] > │                 method6(v0, v1, v2, v12)                                     │

00:01:36 #3358 [Verbose] > │             else                                                             │

00:01:36 #3359 [Verbose] > │                 method6(v0, v1, v7, v3)                                      │

00:01:36 #3360 [Verbose] > │ and closure1 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │

00:01:36 #3361 [Verbose] > │     let v3 : int32 = 0                                                       │

00:01:36 #3362 [Verbose] > │     method6(v0, v1, v2, v3)                                                  │

00:01:36 #3363 [Verbose] > │ and method7 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │

00:01:36 #3364 [Verbose] > │     let v4 : bool = v3 > v2                                                  │

00:01:36 #3365 [Verbose] > │     if v4 then                                                               │

00:01:36 #3366 [Verbose] > │         US0_1                                                                │

00:01:36 #3367 [Verbose] > │     else                                                                     │

00:01:36 #3368 [Verbose] > │         let v6 : int32 = v3 + v2                                             │

00:01:36 #3369 [Verbose] > │         let v7 : int32 = v6 / 2                                              │

00:01:36 #3370 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │

00:01:36 #3371 [Verbose] > │         let v9 : bool = v8 = v1                                              │

00:01:36 #3372 [Verbose] > │         if v9 then                                                           │

00:01:36 #3373 [Verbose] > │             US0_0(v7)                                                        │

00:01:36 #3374 [Verbose] > │         else                                                                 │

00:01:36 #3375 [Verbose] > │             let v11 : bool = v8 < v1                                         │

00:01:36 #3376 [Verbose] > │             if v11 then                                                      │

00:01:36 #3377 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │

00:01:36 #3378 [Verbose] > │                 method7(v0, v1, v2, v12)                                     │

00:01:36 #3379 [Verbose] > │             else                                                             │

00:01:36 #3380 [Verbose] > │                 let v14 : int32 = v7 - 1                                     │

00:01:36 #3381 [Verbose] > │                 method7(v0, v1, v14, v3)                                     │

00:01:36 #3382 [Verbose] > │ and closure2 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │

00:01:36 #3383 [Verbose] > │     let v3 : int32 = v2 - 1                                                  │

00:01:36 #3384 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:36 #3385 [Verbose] > │     method7(v0, v1, v3, v4)                                                  │

00:01:36 #3386 [Verbose] > │ and method8 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │

00:01:36 #3387 [Verbose] > │     let v4 : bool = v2 >= v3                                                 │

00:01:36 #3388 [Verbose] > │     if v4 then                                                               │

00:01:36 #3389 [Verbose] > │         US0_1                                                                │

00:01:36 #3390 [Verbose] > │     else                                                                     │

00:01:36 #3391 [Verbose] > │         let v6 : int32 = v2 + v3                                             │

00:01:36 #3392 [Verbose] > │         let v7 : int32 = v6 / 2                                              │

00:01:36 #3393 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │

00:01:36 #3394 [Verbose] > │         let v9 : bool = v8 = v1                                              │

00:01:36 #3395 [Verbose] > │         if v9 then                                                           │

00:01:36 #3396 [Verbose] > │             US0_0(v7)                                                        │

00:01:36 #3397 [Verbose] > │         else                                                                 │

00:01:36 #3398 [Verbose] > │             let v11 : bool = v8 < v1                                         │

00:01:36 #3399 [Verbose] > │             if v11 then                                                      │

00:01:36 #3400 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │

00:01:36 #3401 [Verbose] > │                 method8(v0, v1, v12, v3)                                     │

00:01:36 #3402 [Verbose] > │             else                                                             │

00:01:36 #3403 [Verbose] > │                 method8(v0, v1, v2, v7)                                      │

00:01:36 #3404 [Verbose] > │ and closure3 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │

00:01:36 #3405 [Verbose] > │     let v3 : int32 = 0                                                       │

00:01:36 #3406 [Verbose] > │     method8(v0, v1, v3, v2)                                                  │

00:01:36 #3407 [Verbose] > │ and method9 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : int32) : US0 =    │

00:01:36 #3408 [Verbose] > │     let v4 : bool = v2 > v3                                                  │

00:01:36 #3409 [Verbose] > │     if v4 then                                                               │

00:01:36 #3410 [Verbose] > │         US0_1                                                                │

00:01:36 #3411 [Verbose] > │     else                                                                     │

00:01:36 #3412 [Verbose] > │         let v6 : int32 = v2 + v3                                             │

00:01:36 #3413 [Verbose] > │         let v7 : int32 = v6 / 2                                              │

00:01:36 #3414 [Verbose] > │         let v8 : int32 = v0.[int v7]                                         │

00:01:36 #3415 [Verbose] > │         let v9 : bool = v8 = v1                                              │

00:01:36 #3416 [Verbose] > │         if v9 then                                                           │

00:01:36 #3417 [Verbose] > │             US0_0(v7)                                                        │

00:01:36 #3418 [Verbose] > │         else                                                                 │

00:01:36 #3419 [Verbose] > │             let v11 : bool = v8 < v1                                         │

00:01:36 #3420 [Verbose] > │             if v11 then                                                      │

00:01:36 #3421 [Verbose] > │                 let v12 : int32 = v7 + 1                                     │

00:01:36 #3422 [Verbose] > │                 method9(v0, v1, v12, v3)                                     │

00:01:36 #3423 [Verbose] > │             else                                                             │

00:01:36 #3424 [Verbose] > │                 let v14 : int32 = v7 - 1                                     │

00:01:36 #3425 [Verbose] > │                 method9(v0, v1, v2, v14)                                     │

00:01:36 #3426 [Verbose] > │ and closure4 () struct (v0 : (int32 []), v1 : int32, v2 : int32) : US0 =     │

00:01:36 #3427 [Verbose] > │     let v3 : int32 = v2 - 1                                                  │

00:01:36 #3428 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:36 #3429 [Verbose] > │     method9(v0, v1, v4, v3)                                                  │

00:01:36 #3430 [Verbose] > │ and method11 (v0 : UH1, v1 : uint64) : uint64 =                              │

00:01:36 #3431 [Verbose] > │     match v0 with                                                            │

00:01:36 #3432 [Verbose] > │     | UH1_1(v2, v3, v4, v5) -> (* Cons *)                                    │

00:01:36 #3433 [Verbose] > │         let v6 : uint64 = v1 + 1UL                                           │

00:01:36 #3434 [Verbose] > │         method11(v5, v6)                                                     │

00:01:36 #3435 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:01:36 #3436 [Verbose] > │         v1                                                                   │

00:01:36 #3437 [Verbose] > │ and method12 (v0 : (struct (int32 * string * (struct ((int32 []) * int32 *   │

00:01:36 #3438 [Verbose] > │ int32) -> US0)) []), v1 : UH1, v2 : uint64) : uint64 =                       │

00:01:36 #3439 [Verbose] > │     match v1 with                                                            │

00:01:36 #3440 [Verbose] > │     | UH1_1(v3, v4, v5, v6) -> (* Cons *)                                    │

00:01:36 #3441 [Verbose] > │         v0.[int v2] <- struct (v3, v4, v5)                                   │

00:01:36 #3442 [Verbose] > │         let v7 : uint64 = v2 + 1UL                                           │

00:01:36 #3443 [Verbose] > │         method12(v0, v6, v7)                                                 │

00:01:36 #3444 [Verbose] > │     | UH1_0 -> (* Nil *)                                                     │

00:01:36 #3445 [Verbose] > │         v2                                                                   │

00:01:36 #3446 [Verbose] > │ and method10 (v0 : UH1) : (struct (int32 * string * (struct ((int32 []) *    │

00:01:36 #3447 [Verbose] > │ int32 * int32) -> US0)) []) =                                                │

00:01:36 #3448 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:36 #3449 [Verbose] > │     let v2 : uint64 = method11(v0, v1)                                       │

00:01:36 #3450 [Verbose] > │     let v3 : (struct (int32 * string * (struct ((int32 []) * int32 * int32)  │

00:01:36 #3451 [Verbose] > │ -> US0)) []) = Array.zeroCreate<struct (int32 * string * (struct ((int32 []) │

00:01:36 #3452 [Verbose] > │ * int32 * int32) -> US0))> (System.Convert.ToInt32(v2))                      │

00:01:36 #3453 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:36 #3454 [Verbose] > │     let v5 : uint64 = method12(v3, v0, v4)                                   │

00:01:36 #3455 [Verbose] > │     v3                                                                       │

00:01:36 #3456 [Verbose] > │ and method13 (v0 : Mut0) : bool =                                            │

00:01:36 #3457 [Verbose] > │     let v1 : int32 = v0.l0                                                   │

00:01:36 #3458 [Verbose] > │     let v2 : bool = v1 < 8000001                                             │

00:01:36 #3459 [Verbose] > │     v2                                                                       │

00:01:36 #3460 [Verbose] > │ and closure5 (v0 : (int32 []), v1 : int32, v2 : int32, v3 : (struct ((int32  │

00:01:36 #3461 [Verbose] > │ []) * int32 * int32) -> US0)) (v4 : int32) : US0 =                           │

00:01:36 #3462 [Verbose] > │     v3 struct (v0, v1, v2)                                                   │

00:01:36 #3463 [Verbose] > │ and method14 (v0 : US0, v1 : (US0 []), v2 : uint64) : bool =                 │

00:01:36 #3464 [Verbose] > │     let v3 : uint64 = System.Convert.ToUInt64 v1.Length                      │

00:01:36 #3465 [Verbose] > │     let v4 : bool = v2 < v3                                                  │

00:01:36 #3466 [Verbose] > │     if v4 then                                                               │

00:01:36 #3467 [Verbose] > │         let v5 : US0 = v1.[int v2]                                           │

00:01:36 #3468 [Verbose] > │         let v9 : bool =                                                      │

00:01:36 #3469 [Verbose] > │             match v0, v5 with                                                │

00:01:36 #3470 [Verbose] > │             | US0_1, US0_1 -> (* None *)                                     │

00:01:36 #3471 [Verbose] > │                 true                                                         │

00:01:36 #3472 [Verbose] > │             | US0_0(v6), US0_0(v7) -> (* Some *)                             │

00:01:36 #3473 [Verbose] > │                 let v8 : bool = v6 = v7                                      │

00:01:36 #3474 [Verbose] > │                 v8                                                           │

00:01:36 #3475 [Verbose] > │             | _ ->                                                           │

00:01:36 #3476 [Verbose] > │                 false                                                        │

00:01:36 #3477 [Verbose] > │         if v9 then                                                           │

00:01:36 #3478 [Verbose] > │             let v10 : uint64 = v2 + 1UL                                      │

00:01:36 #3479 [Verbose] > │             method14(v0, v1, v10)                                            │

00:01:36 #3480 [Verbose] > │         else                                                                 │

00:01:36 #3481 [Verbose] > │             false                                                            │

00:01:36 #3482 [Verbose] > │     else                                                                     │

00:01:36 #3483 [Verbose] > │         true                                                                 │

00:01:36 #3484 [Verbose] > │ and method15 (v0 : uint64, v1 : Mut2) : bool =                               │

00:01:36 #3485 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:01:36 #3486 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:36 #3487 [Verbose] > │     v3                                                                       │

00:01:36 #3488 [Verbose] > │ and method16 (v0 : UH3, v1 : UH3) : UH3 =                                    │

00:01:36 #3489 [Verbose] > │     match v0 with                                                            │

00:01:36 #3490 [Verbose] > │     | UH3_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3491 [Verbose] > │         let v5 : UH3 = UH3_1(v2, v3, v1)                                     │

00:01:36 #3492 [Verbose] > │         method16(v4, v5)                                                     │

00:01:36 #3493 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:01:36 #3494 [Verbose] > │         v1                                                                   │

00:01:36 #3495 [Verbose] > │ and method18 (v0 : UH3, v1 : int32) : int32 =                                │

00:01:36 #3496 [Verbose] > │     match v0 with                                                            │

00:01:36 #3497 [Verbose] > │     | UH3_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3498 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:01:36 #3499 [Verbose] > │         method18(v4, v5)                                                     │

00:01:36 #3500 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:01:36 #3501 [Verbose] > │         v1                                                                   │

00:01:36 #3502 [Verbose] > │ and method19 (v0 : (struct (int64 * int64) []), v1 : UH3, v2 : int32) :      │

00:01:36 #3503 [Verbose] > │ int32 =                                                                      │

00:01:36 #3504 [Verbose] > │     match v1 with                                                            │

00:01:36 #3505 [Verbose] > │     | UH3_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:36 #3506 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:36 #3507 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:01:36 #3508 [Verbose] > │         method19(v0, v5, v6)                                                 │

00:01:36 #3509 [Verbose] > │     | UH3_0 -> (* Nil *)                                                     │

00:01:36 #3510 [Verbose] > │         v2                                                                   │

00:01:36 #3511 [Verbose] > │ and method17 (v0 : UH3) : (struct (int64 * int64) []) =                      │

00:01:36 #3512 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:36 #3513 [Verbose] > │     let v2 : int32 = method18(v0, v1)                                        │

00:01:36 #3514 [Verbose] > │     let v3 : (struct (int64 * int64) []) = Array.zeroCreate<struct (int64 *  │

00:01:36 #3515 [Verbose] > │ int64)> (v2)                                                                 │

00:01:36 #3516 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:36 #3517 [Verbose] > │     let v5 : int32 = method19(v3, v0, v4)                                    │

00:01:36 #3518 [Verbose] > │     v3                                                                       │

00:01:36 #3519 [Verbose] > │ and method20 (v0 : int32, v1 : Mut0) : bool =                                │

00:01:36 #3520 [Verbose] > │     let v2 : int32 = v1.l0                                                   │

00:01:36 #3521 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:36 #3522 [Verbose] > │     v3                                                                       │

00:01:36 #3523 [Verbose] > │ and closure6 () struct (v0 : int64, v1 : int64) : int64 =                    │

00:01:36 #3524 [Verbose] > │     v1                                                                       │

00:01:36 #3525 [Verbose] > │ and method22 (v0 : UH4, v1 : uint64) : uint64 =                              │

00:01:36 #3526 [Verbose] > │     match v0 with                                                            │

00:01:36 #3527 [Verbose] > │     | UH4_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3528 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:01:36 #3529 [Verbose] > │         method22(v4, v5)                                                     │

00:01:36 #3530 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:01:36 #3531 [Verbose] > │         v1                                                                   │

00:01:36 #3532 [Verbose] > │ and method23 (v0 : (struct (UH2 * US1) []), v1 : UH4, v2 : uint64) : uint64  │

00:01:36 #3533 [Verbose] > │ =                                                                            │

00:01:36 #3534 [Verbose] > │     match v1 with                                                            │

00:01:36 #3535 [Verbose] > │     | UH4_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:36 #3536 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:36 #3537 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:01:36 #3538 [Verbose] > │         method23(v0, v5, v6)                                                 │

00:01:36 #3539 [Verbose] > │     | UH4_0 -> (* Nil *)                                                     │

00:01:36 #3540 [Verbose] > │         v2                                                                   │

00:01:36 #3541 [Verbose] > │ and method21 (v0 : UH4) : (struct (UH2 * US1) []) =                          │

00:01:36 #3542 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:36 #3543 [Verbose] > │     let v2 : uint64 = method22(v0, v1)                                       │

00:01:36 #3544 [Verbose] > │     let v3 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 * US1)>  │

00:01:36 #3545 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:01:36 #3546 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:36 #3547 [Verbose] > │     let v5 : uint64 = method23(v3, v0, v4)                                   │

00:01:36 #3548 [Verbose] > │     v3                                                                       │

00:01:36 #3549 [Verbose] > │ and method25 (v0 : UH2, v1 : uint64) : uint64 =                              │

00:01:36 #3550 [Verbose] > │     match v0 with                                                            │

00:01:36 #3551 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:01:36 #3552 [Verbose] > │         let v4 : uint64 = v1 + 1UL                                           │

00:01:36 #3553 [Verbose] > │         method25(v3, v4)                                                     │

00:01:36 #3554 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:36 #3555 [Verbose] > │         v1                                                                   │

00:01:36 #3556 [Verbose] > │ and method26 (v0 : (string []), v1 : UH2, v2 : uint64) : uint64 =            │

00:01:36 #3557 [Verbose] > │     match v1 with                                                            │

00:01:36 #3558 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:01:36 #3559 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:01:36 #3560 [Verbose] > │         let v5 : uint64 = v2 + 1UL                                           │

00:01:36 #3561 [Verbose] > │         method26(v0, v4, v5)                                                 │

00:01:36 #3562 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:36 #3563 [Verbose] > │         v2                                                                   │

00:01:36 #3564 [Verbose] > │ and method24 (v0 : UH2) : (string []) =                                      │

00:01:36 #3565 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:36 #3566 [Verbose] > │     let v2 : uint64 = method25(v0, v1)                                       │

00:01:36 #3567 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string>                          │

00:01:36 #3568 [Verbose] > │ (System.Convert.ToInt32(v2))                                                 │

00:01:36 #3569 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:36 #3570 [Verbose] > │     let v5 : uint64 = method26(v3, v0, v4)                                   │

00:01:36 #3571 [Verbose] > │     v3                                                                       │

00:01:36 #3572 [Verbose] > │ and closure7 () (v0 : int64) : US2 =                                         │

00:01:36 #3573 [Verbose] > │     US2_0(v0)                                                                │

00:01:36 #3574 [Verbose] > │ and method27 () : (int64 -> US2) =                                           │

00:01:36 #3575 [Verbose] > │     closure7()                                                               │

00:01:36 #3576 [Verbose] > │ and method28 (v0 : uint64, v1 : Mut3) : bool =                               │

00:01:36 #3577 [Verbose] > │     let v2 : uint64 = v1.l0                                                  │

00:01:36 #3578 [Verbose] > │     let v3 : bool = v2 < v0                                                  │

00:01:36 #3579 [Verbose] > │     v3                                                                       │

00:01:36 #3580 [Verbose] > │ and method29 (v0 : UH5, v1 : UH5) : UH5 =                                    │

00:01:36 #3581 [Verbose] > │     match v0 with                                                            │

00:01:36 #3582 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3583 [Verbose] > │         let v5 : UH5 = UH5_1(v2, v3, v1)                                     │

00:01:36 #3584 [Verbose] > │         method29(v4, v5)                                                     │

00:01:36 #3585 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:36 #3586 [Verbose] > │         v1                                                                   │

00:01:36 #3587 [Verbose] > │ and method31 (v0 : UH5, v1 : int32) : int32 =                                │

00:01:36 #3588 [Verbose] > │     match v0 with                                                            │

00:01:36 #3589 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3590 [Verbose] > │         let v5 : int32 = v1 + 1                                              │

00:01:36 #3591 [Verbose] > │         method31(v4, v5)                                                     │

00:01:36 #3592 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:36 #3593 [Verbose] > │         v1                                                                   │

00:01:36 #3594 [Verbose] > │ and method32 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : int32) :      │

00:01:36 #3595 [Verbose] > │ int32 =                                                                      │

00:01:36 #3596 [Verbose] > │     match v1 with                                                            │

00:01:36 #3597 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:36 #3598 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:36 #3599 [Verbose] > │         let v6 : int32 = v2 + 1                                              │

00:01:36 #3600 [Verbose] > │         method32(v0, v5, v6)                                                 │

00:01:36 #3601 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:36 #3602 [Verbose] > │         v2                                                                   │

00:01:36 #3603 [Verbose] > │ and method30 (v0 : UH5) : (struct (int32 * int64) []) =                      │

00:01:36 #3604 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:36 #3605 [Verbose] > │     let v2 : int32 = method31(v0, v1)                                        │

00:01:36 #3606 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:01:36 #3607 [Verbose] > │ int64)> (v2)                                                                 │

00:01:36 #3608 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:36 #3609 [Verbose] > │     let v5 : int32 = method32(v3, v0, v4)                                    │

00:01:36 #3610 [Verbose] > │     v3                                                                       │

00:01:36 #3611 [Verbose] > │ and method33 (v0 : UH2, v1 : UH6, v2 : int32) : struct (UH6 * int32) =       │

00:01:36 #3612 [Verbose] > │     match v0 with                                                            │

00:01:36 #3613 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:01:36 #3614 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:01:36 #3615 [Verbose] > │         let v6 : UH6 = UH6_1(v2, v3, v1)                                     │

00:01:36 #3616 [Verbose] > │         method33(v4, v6, v5)                                                 │

00:01:36 #3617 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:36 #3618 [Verbose] > │         struct (v1, v2)                                                      │

00:01:36 #3619 [Verbose] > │ and method34 (v0 : UH6, v1 : UH6) : UH6 =                                    │

00:01:36 #3620 [Verbose] > │     match v0 with                                                            │

00:01:36 #3621 [Verbose] > │     | UH6_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3622 [Verbose] > │         let v5 : UH6 = UH6_1(v2, v3, v1)                                     │

00:01:36 #3623 [Verbose] > │         method34(v4, v5)                                                     │

00:01:36 #3624 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:36 #3625 [Verbose] > │         v1                                                                   │

00:01:36 #3626 [Verbose] > │ and method35 (v0 : Map<int32, int64>, v1 : UH6, v2 : UH2) : UH2 =            │

00:01:36 #3627 [Verbose] > │     match v1 with                                                            │

00:01:36 #3628 [Verbose] > │     | UH6_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:36 #3629 [Verbose] > │         let v6 : UH2 = method35(v0, v5, v2)                                  │

00:01:36 #3630 [Verbose] > │         let v7 : int64 = v0.[v3]                                             │

00:01:36 #3631 [Verbose] > │         let v8 : int32 = int32 v7                                            │

00:01:36 #3632 [Verbose] > │         let v9 : string = v4.PadRight v8                                     │

00:01:36 #3633 [Verbose] > │         UH2_1(v9, v6)                                                        │

00:01:36 #3634 [Verbose] > │     | UH6_0 -> (* Nil *)                                                     │

00:01:36 #3635 [Verbose] > │         v2                                                                   │

00:01:36 #3636 [Verbose] > │ and method37 (v0 : UH2, v1 : int32) : int32 =                                │

00:01:36 #3637 [Verbose] > │     match v0 with                                                            │

00:01:36 #3638 [Verbose] > │     | UH2_1(v2, v3) -> (* Cons *)                                            │

00:01:36 #3639 [Verbose] > │         let v4 : int32 = v1 + 1                                              │

00:01:36 #3640 [Verbose] > │         method37(v3, v4)                                                     │

00:01:36 #3641 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:36 #3642 [Verbose] > │         v1                                                                   │

00:01:36 #3643 [Verbose] > │ and method38 (v0 : (string []), v1 : UH2, v2 : int32) : int32 =              │

00:01:36 #3644 [Verbose] > │     match v1 with                                                            │

00:01:36 #3645 [Verbose] > │     | UH2_1(v3, v4) -> (* Cons *)                                            │

00:01:36 #3646 [Verbose] > │         v0.[int v2] <- v3                                                    │

00:01:36 #3647 [Verbose] > │         let v5 : int32 = v2 + 1                                              │

00:01:36 #3648 [Verbose] > │         method38(v0, v4, v5)                                                 │

00:01:36 #3649 [Verbose] > │     | UH2_0 -> (* Nil *)                                                     │

00:01:36 #3650 [Verbose] > │         v2                                                                   │

00:01:36 #3651 [Verbose] > │ and method36 (v0 : UH2) : (string []) =                                      │

00:01:36 #3652 [Verbose] > │     let v1 : int32 = 0                                                       │

00:01:36 #3653 [Verbose] > │     let v2 : int32 = method37(v0, v1)                                        │

00:01:36 #3654 [Verbose] > │     let v3 : (string []) = Array.zeroCreate<string> (v2)                     │

00:01:36 #3655 [Verbose] > │     let v4 : int32 = 0                                                       │

00:01:36 #3656 [Verbose] > │     let v5 : int32 = method38(v3, v0, v4)                                    │

00:01:36 #3657 [Verbose] > │     v3                                                                       │

00:01:36 #3658 [Verbose] > │ and method40 (v0 : UH5, v1 : uint64) : uint64 =                              │

00:01:36 #3659 [Verbose] > │     match v0 with                                                            │

00:01:36 #3660 [Verbose] > │     | UH5_1(v2, v3, v4) -> (* Cons *)                                        │

00:01:36 #3661 [Verbose] > │         let v5 : uint64 = v1 + 1UL                                           │

00:01:36 #3662 [Verbose] > │         method40(v4, v5)                                                     │

00:01:36 #3663 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:36 #3664 [Verbose] > │         v1                                                                   │

00:01:36 #3665 [Verbose] > │ and method41 (v0 : (struct (int32 * int64) []), v1 : UH5, v2 : uint64) :     │

00:01:36 #3666 [Verbose] > │ uint64 =                                                                     │

00:01:36 #3667 [Verbose] > │     match v1 with                                                            │

00:01:36 #3668 [Verbose] > │     | UH5_1(v3, v4, v5) -> (* Cons *)                                        │

00:01:36 #3669 [Verbose] > │         v0.[int v2] <- struct (v3, v4)                                       │

00:01:36 #3670 [Verbose] > │         let v6 : uint64 = v2 + 1UL                                           │

00:01:36 #3671 [Verbose] > │         method41(v0, v5, v6)                                                 │

00:01:36 #3672 [Verbose] > │     | UH5_0 -> (* Nil *)                                                     │

00:01:36 #3673 [Verbose] > │         v2                                                                   │

00:01:36 #3674 [Verbose] > │ and method39 (v0 : UH5) : (struct (int32 * int64) []) =                      │

00:01:36 #3675 [Verbose] > │     let v1 : uint64 = 0UL                                                    │

00:01:36 #3676 [Verbose] > │     let v2 : uint64 = method40(v0, v1)                                       │

00:01:36 #3677 [Verbose] > │     let v3 : (struct (int32 * int64) []) = Array.zeroCreate<struct (int32 *  │

00:01:36 #3678 [Verbose] > │ int64)> (System.Convert.ToInt32(v2))                                         │

00:01:36 #3679 [Verbose] > │     let v4 : uint64 = 0UL                                                    │

00:01:36 #3680 [Verbose] > │     let v5 : uint64 = method41(v3, v0, v4)                                   │

00:01:36 #3681 [Verbose] > │     v3                                                                       │

00:01:36 #3682 [Verbose] > │ and closure8 () struct (v0 : int32, v1 : int64) : int64 =                    │

00:01:36 #3683 [Verbose] > │     v1                                                                       │

00:01:36 #3684 [Verbose] > │ and closure0 () () : unit =                                                  │

00:01:36 #3685 [Verbose] > │     let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:36 #3686 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:01:36 #3687 [Verbose] > │     let v2 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:36 #3688 [Verbose] > │     let v3 : int32 = v2.Length                                               │

00:01:36 #3689 [Verbose] > │     let v4 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:36 #3690 [Verbose] > │     let v5 : int32 = v4.Length                                               │

00:01:36 #3691 [Verbose] > │     let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:36 #3692 [Verbose] > │     let v7 : int32 = v6.Length                                               │

00:01:36 #3693 [Verbose] > │     let v8 : (int32 []) = Array.zeroCreate<int32> (100)                      │

00:01:36 #3694 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:36 #3695 [Verbose] > │     while method1(v9) do                                                     │

00:01:36 #3696 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:01:36 #3697 [Verbose] > │         let v12 : int32 = 1 + v11                                            │

00:01:36 #3698 [Verbose] > │         v8.[int v11] <- v12                                                  │

00:01:36 #3699 [Verbose] > │         let v13 : int32 = v11 + 1                                            │

00:01:36 #3700 [Verbose] > │         v9.l0 <- v13                                                         │

00:01:36 #3701 [Verbose] > │         ()                                                                   │

00:01:36 #3702 [Verbose] > │     let v14 : int32 = v8.Length                                              │

00:01:36 #3703 [Verbose] > │     let v15 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:36 #3704 [Verbose] > │     let v16 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:36 #3705 [Verbose] > │     let v17 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:36 #3706 [Verbose] > │     let v18 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:36 #3707 [Verbose] > │     let v19 : (int32 []) = Array.zeroCreate<int32> (100)                     │

00:01:36 #3708 [Verbose] > │     let v20 : Mut0 = {l0 = 0} : Mut0                                         │

00:01:36 #3709 [Verbose] > │     while method1(v20) do                                                    │

00:01:36 #3710 [Verbose] > │         let v22 : int32 = v20.l0                                             │

00:01:36 #3711 [Verbose] > │         let v23 : int32 = 1 + v22                                            │

00:01:36 #3712 [Verbose] > │         v19.[int v22] <- v23                                                 │

00:01:36 #3713 [Verbose] > │         let v24 : int32 = v22 + 1                                            │

00:01:36 #3714 [Verbose] > │         v20.l0 <- v24                                                        │

00:01:36 #3715 [Verbose] > │         ()                                                                   │

00:01:36 #3716 [Verbose] > │     let v25 : (unit -> unit) = closure0()                                    │

00:01:36 #3717 [Verbose] > │     let v26 : string = nameof v25                                            │

00:01:36 #3718 [Verbose] > │     let v27 : string = ""                                                    │

00:01:36 #3719 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:36 #3720 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:36 #3721 [Verbose] > │     let v28 : string = $"Test: {v26}"                                        │

00:01:36 #3722 [Verbose] > │     System.Console.WriteLine v28                                             │

00:01:36 #3723 [Verbose] > │     let v29 : int32 = 6                                                      │

00:01:36 #3724 [Verbose] > │     let v30 : int32 = 3                                                      │

00:01:36 #3725 [Verbose] > │     let v31 : US0 = US0_0(v30)                                               │

00:01:36 #3726 [Verbose] > │     let v32 : int32 = 1                                                      │

00:01:36 #3727 [Verbose] > │     let v33 : int32 = 0                                                      │

00:01:36 #3728 [Verbose] > │     let v34 : US0 = US0_0(v33)                                               │

00:01:36 #3729 [Verbose] > │     let v35 : int32 = 11                                                     │

00:01:36 #3730 [Verbose] > │     let v36 : int32 = 6                                                      │

00:01:36 #3731 [Verbose] > │     let v37 : US0 = US0_0(v36)                                               │

00:01:36 #3732 [Verbose] > │     let v38 : int32 = 12                                                     │

00:01:36 #3733 [Verbose] > │     let v39 : US0 = US0_1                                                    │

00:01:36 #3734 [Verbose] > │     let v40 : int32 = 60                                                     │

00:01:36 #3735 [Verbose] > │     let v41 : int32 = 59                                                     │

00:01:36 #3736 [Verbose] > │     let v42 : US0 = US0_0(v41)                                               │

00:01:36 #3737 [Verbose] > │     let v43 : int32 = 6                                                      │

00:01:36 #3738 [Verbose] > │     let v44 : int32 = 7                                                      │

00:01:36 #3739 [Verbose] > │     let v45 : int32 = 3                                                      │

00:01:36 #3740 [Verbose] > │     let v46 : US0 = US0_0(v45)                                               │

00:01:36 #3741 [Verbose] > │     let v47 : int32 = 1                                                      │

00:01:36 #3742 [Verbose] > │     let v48 : int32 = 7                                                      │

00:01:36 #3743 [Verbose] > │     let v49 : int32 = 0                                                      │

00:01:36 #3744 [Verbose] > │     let v50 : US0 = US0_0(v49)                                               │

00:01:36 #3745 [Verbose] > │     let v51 : int32 = 11                                                     │

00:01:36 #3746 [Verbose] > │     let v52 : int32 = 7                                                      │

00:01:36 #3747 [Verbose] > │     let v53 : int32 = 6                                                      │

00:01:36 #3748 [Verbose] > │     let v54 : US0 = US0_0(v53)                                               │

00:01:36 #3749 [Verbose] > │     let v55 : int32 = 12                                                     │

00:01:36 #3750 [Verbose] > │     let v56 : int32 = 7                                                      │

00:01:36 #3751 [Verbose] > │     let v57 : US0 = US0_1                                                    │

00:01:36 #3752 [Verbose] > │     let v58 : int32 = 60                                                     │

00:01:36 #3753 [Verbose] > │     let v59 : int32 = 100                                                    │

00:01:36 #3754 [Verbose] > │     let v60 : int32 = 59                                                     │

00:01:36 #3755 [Verbose] > │     let v61 : US0 = US0_0(v60)                                               │

00:01:36 #3756 [Verbose] > │     let v62 : UH0 = UH0_0                                                    │

00:01:36 #3757 [Verbose] > │     let v63 : UH0 = UH0_1(v19, v58, v59, v61, v62)                           │

00:01:36 #3758 [Verbose] > │     let v64 : UH0 = UH0_1(v18, v55, v56, v57, v63)                           │

00:01:36 #3759 [Verbose] > │     let v65 : UH0 = UH0_1(v17, v51, v52, v54, v64)                           │

00:01:36 #3760 [Verbose] > │     let v66 : UH0 = UH0_1(v16, v47, v48, v50, v65)                           │

00:01:36 #3761 [Verbose] > │     let v67 : UH0 = UH0_1(v15, v43, v44, v46, v66)                           │

00:01:36 #3762 [Verbose] > │     let v68 : UH0 = UH0_1(v8, v40, v14, v42, v67)                            │

00:01:36 #3763 [Verbose] > │     let v69 : UH0 = UH0_1(v6, v38, v7, v39, v68)                             │

00:01:36 #3764 [Verbose] > │     let v70 : UH0 = UH0_1(v4, v35, v5, v37, v69)                             │

00:01:36 #3765 [Verbose] > │     let v71 : UH0 = UH0_1(v2, v32, v3, v34, v70)                             │

00:01:36 #3766 [Verbose] > │     let v72 : UH0 = UH0_1(v0, v29, v1, v31, v71)                             │

00:01:36 #3767 [Verbose] > │     let v73 : (struct ((int32 []) * int32 * int32 * US0) []) = method2(v72)  │

00:01:36 #3768 [Verbose] > │     let v74 : uint64 = System.Convert.ToUInt64 v73.Length                    │

00:01:36 #3769 [Verbose] > │     let v75 : (struct (string * string * string * (int64 [])) []) =          │

00:01:36 #3770 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:01:36 #3771 [Verbose] > │ (System.Convert.ToInt32(v74))                                                │

00:01:36 #3772 [Verbose] > │     let v76 : Mut1 = {l0 = 0UL} : Mut1                                       │

00:01:36 #3773 [Verbose] > │     while method5(v74, v76) do                                               │

00:01:36 #3774 [Verbose] > │         let v78 : uint64 = v76.l0                                            │

00:01:36 #3775 [Verbose] > │         let struct (v79 : (int32 []), v80 : int32, v81 : int32, v82 : US0) = │

00:01:36 #3776 [Verbose] > │ v73.[int v78]                                                                │

00:01:36 #3777 [Verbose] > │         let v83 : string = $"%A{struct (v79, v80, v81)}"                     │

00:01:36 #3778 [Verbose] > │         System.Console.WriteLine v27                                         │

00:01:36 #3779 [Verbose] > │         let v84 : string = $"Solution: {v83}  "                              │

00:01:36 #3780 [Verbose] > │         System.Console.WriteLine v84                                         │

00:01:36 #3781 [Verbose] > │         let v85 : int32 = 0                                                  │

00:01:36 #3782 [Verbose] > │         let v86 : string = "semi_open_1"                                     │

00:01:36 #3783 [Verbose] > │         let v87 : (struct ((int32 []) * int32 * int32) -> US0) = closure1()  │

00:01:36 #3784 [Verbose] > │         let v88 : int32 = 1                                                  │

00:01:36 #3785 [Verbose] > │         let v89 : string = "closed_1"                                        │

00:01:36 #3786 [Verbose] > │         let v90 : (struct ((int32 []) * int32 * int32) -> US0) = closure2()  │

00:01:36 #3787 [Verbose] > │         let v91 : int32 = 2                                                  │

00:01:36 #3788 [Verbose] > │         let v92 : string = "semi_open_2"                                     │

00:01:36 #3789 [Verbose] > │         let v93 : (struct ((int32 []) * int32 * int32) -> US0) = closure3()  │

00:01:36 #3790 [Verbose] > │         let v94 : int32 = 3                                                  │

00:01:36 #3791 [Verbose] > │         let v95 : string = "closed_2"                                        │

00:01:36 #3792 [Verbose] > │         let v96 : (struct ((int32 []) * int32 * int32) -> US0) = closure4()  │

00:01:36 #3793 [Verbose] > │         let v97 : UH1 = UH1_0                                                │

00:01:36 #3794 [Verbose] > │         let v98 : UH1 = UH1_1(v94, v95, v96, v97)                            │

00:01:36 #3795 [Verbose] > │         let v99 : UH1 = UH1_1(v91, v92, v93, v98)                            │

00:01:36 #3796 [Verbose] > │         let v100 : UH1 = UH1_1(v88, v89, v90, v99)                           │

00:01:36 #3797 [Verbose] > │         let v101 : UH1 = UH1_1(v85, v86, v87, v100)                          │

00:01:36 #3798 [Verbose] > │         let v102 : (struct (int32 * string * (struct ((int32 []) * int32 *   │

00:01:36 #3799 [Verbose] > │ int32) -> US0)) []) = method10(v101)                                         │

00:01:36 #3800 [Verbose] > │         let v103 : uint64 = System.Convert.ToUInt64 v102.Length              │

00:01:36 #3801 [Verbose] > │         let v104 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0  │

00:01:36 #3802 [Verbose] > │ * int64)> (System.Convert.ToInt32(v103))                                     │

00:01:36 #3803 [Verbose] > │         let v105 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:36 #3804 [Verbose] > │         while method5(v103, v105) do                                         │

00:01:36 #3805 [Verbose] > │             let v107 : uint64 = v105.l0                                      │

00:01:36 #3806 [Verbose] > │             let struct (v108 : int32, v109 : string, v110 : (struct ((int32  │

00:01:36 #3807 [Verbose] > │ []) * int32 * int32) -> US0)) = v102.[int v107]                              │

00:01:36 #3808 [Verbose] > │             let v111 : unit option = None                                    │

00:01:36 #3809 [Verbose] > │             let mutable _v111 = v111                                         │

00:01:36 #3810 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:36 #3811 [Verbose] > │             ()                                                               │

00:01:36 #3812 [Verbose] > │             #endif                                                           │

00:01:36 #3813 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:36 #3814 [Verbose] > │             ()                                                               │

00:01:36 #3815 [Verbose] > │             #endif                                                           │

00:01:36 #3816 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:36 #3817 [Verbose] > │             ()                                                               │

00:01:36 #3818 [Verbose] > │             #endif                                                           │

00:01:36 #3819 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:36 #3820 [Verbose] > │             System.GC.Collect ()                                             │

00:01:36 #3821 [Verbose] > │             ()                                                               │

00:01:36 #3822 [Verbose] > │             #endif                                                           │

00:01:36 #3823 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:36 #3824 [Verbose] > │             System.GC.Collect ()                                             │

00:01:36 #3825 [Verbose] > │             ()                                                               │

00:01:36 #3826 [Verbose] > │             #endif                                                           │

00:01:36 #3827 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:36 #3828 [Verbose] > │             System.GC.Collect ()                                             │

00:01:36 #3829 [Verbose] > │             ()                                                               │

00:01:36 #3830 [Verbose] > │             #endif                                                           │

00:01:36 #3831 [Verbose] > │             |> fun x -> _v111 <- Some x                                      │

00:01:36 #3832 [Verbose] > │             _v111 |> Option.get                                              │

00:01:36 #3833 [Verbose] > │             let v112 : (unit -> System.Diagnostics.Stopwatch) =              │

00:01:36 #3834 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:01:36 #3835 [Verbose] > │             let v113 : System.Diagnostics.Stopwatch = v112 ()                │

00:01:36 #3836 [Verbose] > │             v113.Start ()                                                    │

00:01:36 #3837 [Verbose] > │             let v114 : int64 = v113.ElapsedMilliseconds                      │

00:01:36 #3838 [Verbose] > │             let v115 : (int32 []) = Array.zeroCreate<int32> (8000001)        │

00:01:36 #3839 [Verbose] > │             let v116 : Mut0 = {l0 = 0} : Mut0                                │

00:01:36 #3840 [Verbose] > │             while method13(v116) do                                          │

00:01:36 #3841 [Verbose] > │                 let v118 : int32 = v116.l0                                   │

00:01:36 #3842 [Verbose] > │                 v115.[int v118] <- v118                                      │

00:01:36 #3843 [Verbose] > │                 let v119 : int32 = v118 + 1                                  │

00:01:36 #3844 [Verbose] > │                 v116.l0 <- v119                                              │

00:01:36 #3845 [Verbose] > │                 ()                                                           │

00:01:36 #3846 [Verbose] > │             let v120 : ((int32 -> US0) -> ((int32 []) -> (US0 []))) =        │

00:01:36 #3847 [Verbose] > │ Array.Parallel.map                                                           │

00:01:36 #3848 [Verbose] > │             let v121 : (int32 -> US0) = closure5(v79, v80, v81, v110)        │

00:01:36 #3849 [Verbose] > │             let v122 : ((int32 []) -> (US0 [])) = v120 v121                  │

00:01:36 #3850 [Verbose] > │             let v123 : (US0 []) = v122 v115                                  │

00:01:36 #3851 [Verbose] > │             let v124 : int32 = v123.Length                                   │

00:01:36 #3852 [Verbose] > │             let v125 : int32 = v124 - 1                                      │

00:01:36 #3853 [Verbose] > │             let v126 : US0 = v123.[int v125]                                 │

00:01:36 #3854 [Verbose] > │             let v127 : int64 = v113.ElapsedMilliseconds                      │

00:01:36 #3855 [Verbose] > │             let v128 : int64 = v127 - v114                                   │

00:01:36 #3856 [Verbose] > │             let v129 : string = $"Test case {v108 + 1}. {v109}. Time: {v128} │

00:01:36 #3857 [Verbose] > │ "                                                                            │

00:01:36 #3858 [Verbose] > │             System.Console.WriteLine v129                                    │

00:01:36 #3859 [Verbose] > │             v104.[int v107] <- struct (v126, v128)                           │

00:01:36 #3860 [Verbose] > │             let v130 : uint64 = v107 + 1UL                                   │

00:01:36 #3861 [Verbose] > │             v105.l0 <- v130                                                  │

00:01:36 #3862 [Verbose] > │             ()                                                               │

00:01:36 #3863 [Verbose] > │         let v131 : uint64 = System.Convert.ToUInt64 v104.Length              │

00:01:36 #3864 [Verbose] > │         let v132 : (US0 []) = Array.zeroCreate<US0>                          │

00:01:36 #3865 [Verbose] > │ (System.Convert.ToInt32(v131))                                               │

00:01:36 #3866 [Verbose] > │         let v133 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:36 #3867 [Verbose] > │         while method5(v131, v133) do                                         │

00:01:36 #3868 [Verbose] > │             let v135 : uint64 = v133.l0                                      │

00:01:36 #3869 [Verbose] > │             let struct (v136 : US0, v137 : int64) = v104.[int v135]          │

00:01:36 #3870 [Verbose] > │             v132.[int v135] <- v136                                          │

00:01:36 #3871 [Verbose] > │             let v138 : uint64 = v135 + 1UL                                   │

00:01:36 #3872 [Verbose] > │             v133.l0 <- v138                                                  │

00:01:36 #3873 [Verbose] > │             ()                                                               │

00:01:36 #3874 [Verbose] > │         let v139 : uint64 = System.Convert.ToUInt64 v132.Length              │

00:01:36 #3875 [Verbose] > │         let v140 : bool = v139 <= 1UL                                        │

00:01:36 #3876 [Verbose] > │         if v140 then                                                         │

00:01:36 #3877 [Verbose] > │             ()                                                               │

00:01:36 #3878 [Verbose] > │         else                                                                 │

00:01:36 #3879 [Verbose] > │             let v141 : US0 = v132.[int 0UL]                                  │

00:01:36 #3880 [Verbose] > │             let v142 : uint64 = 0UL                                          │

00:01:36 #3881 [Verbose] > │             let v143 : bool = method14(v141, v132, v142)                     │

00:01:36 #3882 [Verbose] > │             if v143 then                                                     │

00:01:36 #3883 [Verbose] > │                 ()                                                           │

00:01:36 #3884 [Verbose] > │             else                                                             │

00:01:36 #3885 [Verbose] > │                 let v144 : string = $"Challenge error: {v132}"               │

00:01:36 #3886 [Verbose] > │                 failwith<unit> v144                                          │

00:01:36 #3887 [Verbose] > │         let v145 : string = $"%A{v82}"                                       │

00:01:36 #3888 [Verbose] > │         let v146 : (US0 []) = Array.zeroCreate<US0>                          │

00:01:36 #3889 [Verbose] > │ (System.Convert.ToInt32(v131))                                               │

00:01:36 #3890 [Verbose] > │         let v147 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:36 #3891 [Verbose] > │         while method5(v131, v147) do                                         │

00:01:36 #3892 [Verbose] > │             let v149 : uint64 = v147.l0                                      │

00:01:36 #3893 [Verbose] > │             let struct (v150 : US0, v151 : int64) = v104.[int v149]          │

00:01:36 #3894 [Verbose] > │             v146.[int v149] <- v150                                          │

00:01:36 #3895 [Verbose] > │             let v152 : uint64 = v149 + 1UL                                   │

00:01:36 #3896 [Verbose] > │             v147.l0 <- v152                                                  │

00:01:36 #3897 [Verbose] > │             ()                                                               │

00:01:36 #3898 [Verbose] > │         let v153 : US0 = v146.[int 0UL]                                      │

00:01:36 #3899 [Verbose] > │         let v154 : string = $"%A{v153}"                                      │

00:01:36 #3900 [Verbose] > │         let v155 : (int64 []) = Array.zeroCreate<int64>                      │

00:01:36 #3901 [Verbose] > │ (System.Convert.ToInt32(v131))                                               │

00:01:36 #3902 [Verbose] > │         let v156 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:36 #3903 [Verbose] > │         while method5(v131, v156) do                                         │

00:01:36 #3904 [Verbose] > │             let v158 : uint64 = v156.l0                                      │

00:01:36 #3905 [Verbose] > │             let struct (v159 : US0, v160 : int64) = v104.[int v158]          │

00:01:36 #3906 [Verbose] > │             v155.[int v158] <- v160                                          │

00:01:36 #3907 [Verbose] > │             let v161 : uint64 = v158 + 1UL                                   │

00:01:36 #3908 [Verbose] > │             v156.l0 <- v161                                                  │

00:01:36 #3909 [Verbose] > │             ()                                                               │

00:01:36 #3910 [Verbose] > │         v75.[int v78] <- struct (v145, v83, v154, v155)                      │

00:01:36 #3911 [Verbose] > │         let v162 : uint64 = v78 + 1UL                                        │

00:01:36 #3912 [Verbose] > │         v76.l0 <- v162                                                       │

00:01:36 #3913 [Verbose] > │         ()                                                                   │

00:01:36 #3914 [Verbose] > │     let v163 : uint64 = System.Convert.ToUInt64 v75.Length                   │

00:01:36 #3915 [Verbose] > │     let v164 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │

00:01:36 #3916 [Verbose] > │ US1)> (System.Convert.ToInt32(v163))                                         │

00:01:36 #3917 [Verbose] > │     let v165 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:36 #3918 [Verbose] > │     while method5(v163, v165) do                                             │

00:01:36 #3919 [Verbose] > │         let v167 : uint64 = v165.l0                                          │

00:01:36 #3920 [Verbose] > │         let struct (v168 : string, v169 : string, v170 : string, v171 :      │

00:01:36 #3921 [Verbose] > │ (int64 [])) = v75.[int v167]                                                 │

00:01:36 #3922 [Verbose] > │         let v172 : uint64 = System.Convert.ToUInt64 v171.Length              │

00:01:36 #3923 [Verbose] > │         let v173 : UH3 = UH3_0                                               │

00:01:36 #3924 [Verbose] > │         let v174 : Mut2 = {l0 = 0UL; l1 = v173; l2 = 0L} : Mut2              │

00:01:36 #3925 [Verbose] > │         while method15(v172, v174) do                                        │

00:01:36 #3926 [Verbose] > │             let v176 : uint64 = v174.l0                                      │

00:01:36 #3927 [Verbose] > │             let struct (v177 : UH3, v178 : int64) = v174.l1, v174.l2         │

00:01:36 #3928 [Verbose] > │             let v179 : int64 = v171.[int v176]                               │

00:01:36 #3929 [Verbose] > │             let v180 : int64 = v178 + 1L                                     │

00:01:36 #3930 [Verbose] > │             let v181 : uint64 = v176 + 1UL                                   │

00:01:36 #3931 [Verbose] > │             let v182 : UH3 = UH3_1(v178, v179, v177)                         │

00:01:36 #3932 [Verbose] > │             v174.l0 <- v181                                                  │

00:01:36 #3933 [Verbose] > │             v174.l1 <- v182                                                  │

00:01:36 #3934 [Verbose] > │             v174.l2 <- v180                                                  │

00:01:36 #3935 [Verbose] > │             ()                                                               │

00:01:36 #3936 [Verbose] > │         let struct (v183 : UH3, v184 : int64) = v174.l1, v174.l2             │

00:01:36 #3937 [Verbose] > │         let v185 : UH3 = UH3_0                                               │

00:01:36 #3938 [Verbose] > │         let v186 : UH3 = method16(v183, v185)                                │

00:01:36 #3939 [Verbose] > │         let v187 : (struct (int64 * int64) []) = method17(v186)              │

00:01:36 #3940 [Verbose] > │         let v188 : int32 = v187.Length                                       │

00:01:36 #3941 [Verbose] > │         let v189 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:01:36 #3942 [Verbose] > │ (int64 * int64)> (v188)                                                      │

00:01:36 #3943 [Verbose] > │         let v190 : Mut0 = {l0 = 0} : Mut0                                    │

00:01:36 #3944 [Verbose] > │         while method20(v188, v190) do                                        │

00:01:36 #3945 [Verbose] > │             let v192 : int32 = v190.l0                                       │

00:01:36 #3946 [Verbose] > │             let struct (v193 : int64, v194 : int64) = v187.[int v192]        │

00:01:36 #3947 [Verbose] > │             let v195 : int64 = v193 + 1L                                     │

00:01:36 #3948 [Verbose] > │             v189.[int v192] <- struct (v195, v194)                           │

00:01:36 #3949 [Verbose] > │             let v196 : int32 = v192 + 1                                      │

00:01:36 #3950 [Verbose] > │             v190.l0 <- v196                                                  │

00:01:36 #3951 [Verbose] > │             ()                                                               │

00:01:36 #3952 [Verbose] > │         let v197 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:01:36 #3953 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:01:36 #3954 [Verbose] > │         let v198 : (struct (int64 * int64) -> int64) = closure6()            │

00:01:36 #3955 [Verbose] > │         let v199 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:01:36 #3956 [Verbose] > │ ])) = v197 v198                                                              │

00:01:36 #3957 [Verbose] > │         let v200 : (struct (int64 * int64) []) = v199 v189                   │

00:01:36 #3958 [Verbose] > │         let struct (v201 : int64, v202 : int64) = v200.[int 0]               │

00:01:36 #3959 [Verbose] > │         let v203 : string = $"%A{struct (v201, v202)}"                       │

00:01:36 #3960 [Verbose] > │         let v204 : bool = v168 = v170                                        │

00:01:36 #3961 [Verbose] > │         let v209 : US1 =                                                     │

00:01:36 #3962 [Verbose] > │             if v204 then                                                     │

00:01:36 #3963 [Verbose] > │                 let v205 : System.ConsoleColor =                             │

00:01:36 #3964 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:01:36 #3965 [Verbose] > │                 US1_0(v205)                                                  │

00:01:36 #3966 [Verbose] > │             else                                                             │

00:01:36 #3967 [Verbose] > │                 let v207 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:01:36 #3968 [Verbose] > │                 US1_0(v207)                                                  │

00:01:36 #3969 [Verbose] > │         let v210 : UH2 = UH2_0                                               │

00:01:36 #3970 [Verbose] > │         let v211 : UH2 = UH2_1(v203, v210)                                   │

00:01:36 #3971 [Verbose] > │         let v212 : UH2 = UH2_1(v170, v211)                                   │

00:01:36 #3972 [Verbose] > │         let v213 : UH2 = UH2_1(v168, v212)                                   │

00:01:36 #3973 [Verbose] > │         let v214 : UH2 = UH2_1(v169, v213)                                   │

00:01:36 #3974 [Verbose] > │         v164.[int v167] <- struct (v214, v209)                               │

00:01:36 #3975 [Verbose] > │         let v215 : uint64 = v167 + 1UL                                       │

00:01:36 #3976 [Verbose] > │         v165.l0 <- v215                                                      │

00:01:36 #3977 [Verbose] > │         ()                                                                   │

00:01:36 #3978 [Verbose] > │     let v216 : string = "Input"                                              │

00:01:36 #3979 [Verbose] > │     let v217 : string = "Expected"                                           │

00:01:36 #3980 [Verbose] > │     let v218 : string = "Result"                                             │

00:01:36 #3981 [Verbose] > │     let v219 : string = "Best"                                               │

00:01:36 #3982 [Verbose] > │     let v220 : UH2 = UH2_0                                                   │

00:01:36 #3983 [Verbose] > │     let v221 : UH2 = UH2_1(v219, v220)                                       │

00:01:36 #3984 [Verbose] > │     let v222 : UH2 = UH2_1(v218, v221)                                       │

00:01:36 #3985 [Verbose] > │     let v223 : UH2 = UH2_1(v217, v222)                                       │

00:01:36 #3986 [Verbose] > │     let v224 : UH2 = UH2_1(v216, v223)                                       │

00:01:36 #3987 [Verbose] > │     let v225 : US1 = US1_1                                                   │

00:01:36 #3988 [Verbose] > │     let v226 : string = "---"                                                │

00:01:36 #3989 [Verbose] > │     let v227 : UH2 = UH2_0                                                   │

00:01:36 #3990 [Verbose] > │     let v228 : UH2 = UH2_1(v226, v227)                                       │

00:01:36 #3991 [Verbose] > │     let v229 : UH2 = UH2_1(v226, v228)                                       │

00:01:36 #3992 [Verbose] > │     let v230 : UH2 = UH2_1(v226, v229)                                       │

00:01:36 #3993 [Verbose] > │     let v231 : UH2 = UH2_1(v226, v230)                                       │

00:01:36 #3994 [Verbose] > │     let v232 : US1 = US1_1                                                   │

00:01:36 #3995 [Verbose] > │     let v233 : UH4 = UH4_0                                                   │

00:01:36 #3996 [Verbose] > │     let v234 : UH4 = UH4_1(v231, v232, v233)                                 │

00:01:36 #3997 [Verbose] > │     let v235 : UH4 = UH4_1(v224, v225, v234)                                 │

00:01:36 #3998 [Verbose] > │     let v236 : (struct (UH2 * US1) []) = method21(v235)                      │

00:01:36 #3999 [Verbose] > │     let v237 : uint64 = System.Convert.ToUInt64 v236.Length                  │

00:01:36 #4000 [Verbose] > │     let v238 : uint64 = System.Convert.ToUInt64 v164.Length                  │

00:01:36 #4001 [Verbose] > │     let v239 : uint64 = v237 + v238                                          │

00:01:36 #4002 [Verbose] > │     let v240 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │

00:01:36 #4003 [Verbose] > │ US1)> (System.Convert.ToInt32(v239))                                         │

00:01:36 #4004 [Verbose] > │     let v241 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:36 #4005 [Verbose] > │     while method5(v239, v241) do                                             │

00:01:36 #4006 [Verbose] > │         let v243 : uint64 = v241.l0                                          │

00:01:36 #4007 [Verbose] > │         let v244 : bool = v243 < v237                                        │

00:01:36 #4008 [Verbose] > │         let struct (v250 : UH2, v251 : US1) =                                │

00:01:36 #4009 [Verbose] > │             if v244 then                                                     │

00:01:36 #4010 [Verbose] > │                 let struct (v245 : UH2, v246 : US1) = v236.[int v243]        │

00:01:36 #4011 [Verbose] > │                 struct (v245, v246)                                          │

00:01:36 #4012 [Verbose] > │             else                                                             │

00:01:36 #4013 [Verbose] > │                 let v247 : uint64 = v243 - v237                              │

00:01:36 #4014 [Verbose] > │                 let struct (v248 : UH2, v249 : US1) = v164.[int v247]        │

00:01:36 #4015 [Verbose] > │                 struct (v248, v249)                                          │

00:01:36 #4016 [Verbose] > │         v240.[int v243] <- struct (v250, v251)                               │

00:01:36 #4017 [Verbose] > │         let v252 : uint64 = v243 + 1UL                                       │

00:01:36 #4018 [Verbose] > │         v241.l0 <- v252                                                      │

00:01:36 #4019 [Verbose] > │         ()                                                                   │

00:01:36 #4020 [Verbose] > │     let v253 : uint64 = System.Convert.ToUInt64 v240.Length                  │

00:01:36 #4021 [Verbose] > │     let v254 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:01:36 #4022 [Verbose] > │ (System.Convert.ToInt32(v253))                                               │

00:01:36 #4023 [Verbose] > │     let v255 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:36 #4024 [Verbose] > │     while method5(v253, v255) do                                             │

00:01:36 #4025 [Verbose] > │         let v257 : uint64 = v255.l0                                          │

00:01:36 #4026 [Verbose] > │         let struct (v258 : UH2, v259 : US1) = v240.[int v257]                │

00:01:36 #4027 [Verbose] > │         let v260 : (string []) = method24(v258)                              │

00:01:36 #4028 [Verbose] > │         v254.[int v257] <- v260                                              │

00:01:36 #4029 [Verbose] > │         let v261 : uint64 = v257 + 1UL                                       │

00:01:36 #4030 [Verbose] > │         v255.l0 <- v261                                                      │

00:01:36 #4031 [Verbose] > │         ()                                                                   │

00:01:36 #4032 [Verbose] > │     let v262 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:01:36 #4033 [Verbose] > │     let v263 : ((string []) []) = v262 v254                                  │

00:01:36 #4034 [Verbose] > │     let v264 : uint64 = System.Convert.ToUInt64 v263.Length                  │

00:01:36 #4035 [Verbose] > │     let v265 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:36 #4036 [Verbose] > │ (System.Convert.ToInt32(v264))                                               │

00:01:36 #4037 [Verbose] > │     let v266 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:36 #4038 [Verbose] > │     while method5(v264, v266) do                                             │

00:01:36 #4039 [Verbose] > │         let v268 : uint64 = v266.l0                                          │

00:01:36 #4040 [Verbose] > │         let v269 : (string []) = v263.[int v268]                             │

00:01:36 #4041 [Verbose] > │         let v270 : uint64 = System.Convert.ToUInt64 v269.Length              │

00:01:36 #4042 [Verbose] > │         let v271 : (int64 []) = Array.zeroCreate<int64>                      │

00:01:36 #4043 [Verbose] > │ (System.Convert.ToInt32(v270))                                               │

00:01:36 #4044 [Verbose] > │         let v272 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:36 #4045 [Verbose] > │         while method5(v270, v272) do                                         │

00:01:36 #4046 [Verbose] > │             let v274 : uint64 = v272.l0                                      │

00:01:36 #4047 [Verbose] > │             let v275 : string = v269.[int v274]                              │

00:01:36 #4048 [Verbose] > │             let v276 : int64 = System.Convert.ToInt64 v275.Length            │

00:01:36 #4049 [Verbose] > │             v271.[int v274] <- v276                                          │

00:01:36 #4050 [Verbose] > │             let v277 : uint64 = v274 + 1UL                                   │

00:01:36 #4051 [Verbose] > │             v272.l0 <- v277                                                  │

00:01:36 #4052 [Verbose] > │             ()                                                               │

00:01:36 #4053 [Verbose] > │         let v278 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:01:36 #4054 [Verbose] > │         let v279 : (int64 []) = v278 v271                                    │

00:01:36 #4055 [Verbose] > │         let v280 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:01:36 #4056 [Verbose] > │         let v281 : ((int64 []) -> int64 option) = v280 0                     │

00:01:36 #4057 [Verbose] > │         let v282 : int64 option = v281 v279                                  │

00:01:36 #4058 [Verbose] > │         let v283 : (int64 -> US2) = method27()                               │

00:01:36 #4059 [Verbose] > │         let v284 : US2 = US2_1                                               │

00:01:36 #4060 [Verbose] > │         let v285 : US2 = v282 |> Option.map v283 |> Option.defaultValue v284 │

00:01:36 #4061 [Verbose] > │         let v288 : int64 =                                                   │

00:01:36 #4062 [Verbose] > │             match v285 with                                                  │

00:01:36 #4063 [Verbose] > │             | US2_1 -> (* None *)                                            │

00:01:36 #4064 [Verbose] > │                 0L                                                           │

00:01:36 #4065 [Verbose] > │             | US2_0(v286) -> (* Some *)                                      │

00:01:36 #4066 [Verbose] > │                 v286                                                         │

00:01:36 #4067 [Verbose] > │         v265.[int v268] <- v288                                              │

00:01:36 #4068 [Verbose] > │         let v289 : uint64 = v268 + 1UL                                       │

00:01:36 #4069 [Verbose] > │         v266.l0 <- v289                                                      │

00:01:36 #4070 [Verbose] > │         ()                                                                   │

00:01:36 #4071 [Verbose] > │     let v290 : uint64 = System.Convert.ToUInt64 v265.Length                  │

00:01:36 #4072 [Verbose] > │     let v291 : UH5 = UH5_0                                                   │

00:01:36 #4073 [Verbose] > │     let v292 : Mut3 = {l0 = 0UL; l1 = v291; l2 = 0} : Mut3                   │

00:01:36 #4074 [Verbose] > │     while method28(v290, v292) do                                            │

00:01:36 #4075 [Verbose] > │         let v294 : uint64 = v292.l0                                          │

00:01:36 #4076 [Verbose] > │         let struct (v295 : UH5, v296 : int32) = v292.l1, v292.l2             │

00:01:36 #4077 [Verbose] > │         let v297 : int64 = v265.[int v294]                                   │

00:01:36 #4078 [Verbose] > │         let v298 : int32 = v296 + 1                                          │

00:01:36 #4079 [Verbose] > │         let v299 : uint64 = v294 + 1UL                                       │

00:01:36 #4080 [Verbose] > │         let v300 : UH5 = UH5_1(v296, v297, v295)                             │

00:01:36 #4081 [Verbose] > │         v292.l0 <- v299                                                      │

00:01:36 #4082 [Verbose] > │         v292.l1 <- v300                                                      │

00:01:36 #4083 [Verbose] > │         v292.l2 <- v298                                                      │

00:01:36 #4084 [Verbose] > │         ()                                                                   │

00:01:36 #4085 [Verbose] > │     let struct (v301 : UH5, v302 : int32) = v292.l1, v292.l2                 │

00:01:36 #4086 [Verbose] > │     let v303 : UH5 = UH5_0                                                   │

00:01:36 #4087 [Verbose] > │     let v304 : UH5 = method29(v301, v303)                                    │

00:01:36 #4088 [Verbose] > │     let v305 : (struct (int32 * int64) []) = method30(v304)                  │

00:01:36 #4089 [Verbose] > │     let v306 : Map<int32, int64> = v305 |> Array.map (fun (struct (a, b)) -> │

00:01:36 #4090 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:01:36 #4091 [Verbose] > │     let v307 : (struct ((string []) * US1) []) = Array.zeroCreate<struct     │

00:01:36 #4092 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v253))                          │

00:01:36 #4093 [Verbose] > │     let v308 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:36 #4094 [Verbose] > │     while method5(v253, v308) do                                             │

00:01:36 #4095 [Verbose] > │         let v310 : uint64 = v308.l0                                          │

00:01:36 #4096 [Verbose] > │         let struct (v311 : UH2, v312 : US1) = v240.[int v310]                │

00:01:36 #4097 [Verbose] > │         let v313 : UH6 = UH6_0                                               │

00:01:36 #4098 [Verbose] > │         let v314 : int32 = 0                                                 │

00:01:36 #4099 [Verbose] > │         let struct (v315 : UH6, v316 : int32) = method33(v311, v313, v314)   │

00:01:36 #4100 [Verbose] > │         let v317 : UH6 = UH6_0                                               │

00:01:36 #4101 [Verbose] > │         let v318 : UH6 = method34(v315, v317)                                │

00:01:36 #4102 [Verbose] > │         let v319 : UH2 = UH2_0                                               │

00:01:36 #4103 [Verbose] > │         let v320 : UH2 = method35(v306, v318, v319)                          │

00:01:36 #4104 [Verbose] > │         let v321 : (string []) = method36(v320)                              │

00:01:36 #4105 [Verbose] > │         v307.[int v310] <- struct (v321, v312)                               │

00:01:36 #4106 [Verbose] > │         let v322 : uint64 = v310 + 1UL                                       │

00:01:36 #4107 [Verbose] > │         v308.l0 <- v322                                                      │

00:01:36 #4108 [Verbose] > │         ()                                                                   │

00:01:36 #4109 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:36 #4110 [Verbose] > │     let v323 : uint64 = System.Convert.ToUInt64 v307.Length                  │

00:01:36 #4111 [Verbose] > │     let v324 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:36 #4112 [Verbose] > │     while method5(v323, v324) do                                             │

00:01:36 #4113 [Verbose] > │         let v326 : uint64 = v324.l0                                          │

00:01:36 #4114 [Verbose] > │         let struct (v327 : (string []), v328 : US1) = v307.[int v326]        │

00:01:36 #4115 [Verbose] > │         match v328 with                                                      │

00:01:36 #4116 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:01:36 #4117 [Verbose] > │             let v331 : unit option = None                                    │

00:01:36 #4118 [Verbose] > │             let mutable _v331 = v331                                         │

00:01:36 #4119 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:36 #4120 [Verbose] > │             ()                                                               │

00:01:36 #4121 [Verbose] > │             #endif                                                           │

00:01:36 #4122 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:36 #4123 [Verbose] > │             ()                                                               │

00:01:36 #4124 [Verbose] > │             #endif                                                           │

00:01:36 #4125 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:36 #4126 [Verbose] > │             ()                                                               │

00:01:36 #4127 [Verbose] > │             #endif                                                           │

00:01:36 #4128 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:36 #4129 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:36 #4130 [Verbose] > │             ()                                                               │

00:01:36 #4131 [Verbose] > │             #endif                                                           │

00:01:36 #4132 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:36 #4133 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:36 #4134 [Verbose] > │             ()                                                               │

00:01:36 #4135 [Verbose] > │             #endif                                                           │

00:01:36 #4136 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:36 #4137 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:36 #4138 [Verbose] > │             ()                                                               │

00:01:36 #4139 [Verbose] > │             #endif                                                           │

00:01:36 #4140 [Verbose] > │             |> fun x -> _v331 <- Some x                                      │

00:01:36 #4141 [Verbose] > │             _v331 |> Option.get                                              │

00:01:36 #4142 [Verbose] > │             ()                                                               │

00:01:36 #4143 [Verbose] > │         | US1_0(v329) -> (* Some *)                                          │

00:01:36 #4144 [Verbose] > │             let v330 : unit option = None                                    │

00:01:36 #4145 [Verbose] > │             let mutable _v330 = v330                                         │

00:01:37 #4146 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:37 #4147 [Verbose] > │             ()                                                               │

00:01:37 #4148 [Verbose] > │             #endif                                                           │

00:01:37 #4149 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:37 #4150 [Verbose] > │             ()                                                               │

00:01:37 #4151 [Verbose] > │             #endif                                                           │

00:01:37 #4152 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:37 #4153 [Verbose] > │             ()                                                               │

00:01:37 #4154 [Verbose] > │             #endif                                                           │

00:01:37 #4155 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:37 #4156 [Verbose] > │             System.Console.ForegroundColor <- v329                           │

00:01:37 #4157 [Verbose] > │             ()                                                               │

00:01:37 #4158 [Verbose] > │             #endif                                                           │

00:01:37 #4159 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:37 #4160 [Verbose] > │             System.Console.ForegroundColor <- v329                           │

00:01:37 #4161 [Verbose] > │             ()                                                               │

00:01:37 #4162 [Verbose] > │             #endif                                                           │

00:01:37 #4163 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:37 #4164 [Verbose] > │             System.Console.ForegroundColor <- v329                           │

00:01:37 #4165 [Verbose] > │             ()                                                               │

00:01:37 #4166 [Verbose] > │             #endif                                                           │

00:01:37 #4167 [Verbose] > │             |> fun x -> _v330 <- Some x                                      │

00:01:37 #4168 [Verbose] > │             _v330 |> Option.get                                              │

00:01:37 #4169 [Verbose] > │             ()                                                               │

00:01:37 #4170 [Verbose] > │         let v332 : string = "\t| "                                           │

00:01:37 #4171 [Verbose] > │         let v333 : string = System.String.Join (v332, v327)                  │

00:01:37 #4172 [Verbose] > │         System.Console.WriteLine v333                                        │

00:01:37 #4173 [Verbose] > │         let v334 : unit option = None                                        │

00:01:37 #4174 [Verbose] > │         let mutable _v334 = v334                                             │

00:01:37 #4175 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:01:37 #4176 [Verbose] > │         ()                                                                   │

00:01:37 #4177 [Verbose] > │         #endif                                                               │

00:01:37 #4178 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:01:37 #4179 [Verbose] > │         ()                                                                   │

00:01:37 #4180 [Verbose] > │         #endif                                                               │

00:01:37 #4181 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:01:37 #4182 [Verbose] > │         ()                                                                   │

00:01:37 #4183 [Verbose] > │         #endif                                                               │

00:01:37 #4184 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:01:37 #4185 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:37 #4186 [Verbose] > │         ()                                                                   │

00:01:37 #4187 [Verbose] > │         #endif                                                               │

00:01:37 #4188 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:01:37 #4189 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:37 #4190 [Verbose] > │         ()                                                                   │

00:01:37 #4191 [Verbose] > │         #endif                                                               │

00:01:37 #4192 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:01:37 #4193 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:37 #4194 [Verbose] > │         ()                                                                   │

00:01:37 #4195 [Verbose] > │         #endif                                                               │

00:01:37 #4196 [Verbose] > │         |> fun x -> _v334 <- Some x                                          │

00:01:37 #4197 [Verbose] > │         _v334 |> Option.get                                                  │

00:01:37 #4198 [Verbose] > │         let v335 : uint64 = v326 + 1UL                                       │

00:01:37 #4199 [Verbose] > │         v324.l0 <- v335                                                      │

00:01:37 #4200 [Verbose] > │         ()                                                                   │

00:01:37 #4201 [Verbose] > │     let v336 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:01:37 #4202 [Verbose] > │ (System.Convert.ToInt32(v163))                                               │

00:01:37 #4203 [Verbose] > │     let v337 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4204 [Verbose] > │     while method5(v163, v337) do                                             │

00:01:37 #4205 [Verbose] > │         let v339 : uint64 = v337.l0                                          │

00:01:37 #4206 [Verbose] > │         let struct (v340 : string, v341 : string, v342 : string, v343 :      │

00:01:37 #4207 [Verbose] > │ (int64 [])) = v75.[int v339]                                                 │

00:01:37 #4208 [Verbose] > │         let v344 : (int64 -> float) = float                                  │

00:01:37 #4209 [Verbose] > │         let v345 : uint64 = System.Convert.ToUInt64 v343.Length              │

00:01:37 #4210 [Verbose] > │         let v346 : (float []) = Array.zeroCreate<float>                      │

00:01:37 #4211 [Verbose] > │ (System.Convert.ToInt32(v345))                                               │

00:01:37 #4212 [Verbose] > │         let v347 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4213 [Verbose] > │         while method5(v345, v347) do                                         │

00:01:37 #4214 [Verbose] > │             let v349 : uint64 = v347.l0                                      │

00:01:37 #4215 [Verbose] > │             let v350 : int64 = v343.[int v349]                               │

00:01:37 #4216 [Verbose] > │             let v351 : float = v344 v350                                     │

00:01:37 #4217 [Verbose] > │             v346.[int v349] <- v351                                          │

00:01:37 #4218 [Verbose] > │             let v352 : uint64 = v349 + 1UL                                   │

00:01:37 #4219 [Verbose] > │             v347.l0 <- v352                                                  │

00:01:37 #4220 [Verbose] > │             ()                                                               │

00:01:37 #4221 [Verbose] > │         v336.[int v339] <- v346                                              │

00:01:37 #4222 [Verbose] > │         let v353 : uint64 = v339 + 1UL                                       │

00:01:37 #4223 [Verbose] > │         v337.l0 <- v353                                                      │

00:01:37 #4224 [Verbose] > │         ()                                                                   │

00:01:37 #4225 [Verbose] > │     let v354 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:01:37 #4226 [Verbose] > │     let v355 : ((float []) []) = v354 v336                                   │

00:01:37 #4227 [Verbose] > │     let v356 : uint64 = System.Convert.ToUInt64 v355.Length                  │

00:01:37 #4228 [Verbose] > │     let v357 : (float []) = Array.zeroCreate<float>                          │

00:01:37 #4229 [Verbose] > │ (System.Convert.ToInt32(v356))                                               │

00:01:37 #4230 [Verbose] > │     let v358 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4231 [Verbose] > │     while method5(v356, v358) do                                             │

00:01:37 #4232 [Verbose] > │         let v360 : uint64 = v358.l0                                          │

00:01:37 #4233 [Verbose] > │         let v361 : (float []) = v355.[int v360]                              │

00:01:37 #4234 [Verbose] > │         let v362 : ((float []) -> float) = Array.average                     │

00:01:37 #4235 [Verbose] > │         let v363 : float = v362 v361                                         │

00:01:37 #4236 [Verbose] > │         v357.[int v360] <- v363                                              │

00:01:37 #4237 [Verbose] > │         let v364 : uint64 = v360 + 1UL                                       │

00:01:37 #4238 [Verbose] > │         v358.l0 <- v364                                                      │

00:01:37 #4239 [Verbose] > │         ()                                                                   │

00:01:37 #4240 [Verbose] > │     let v365 : (float -> int64) = int64                                      │

00:01:37 #4241 [Verbose] > │     let v366 : uint64 = System.Convert.ToUInt64 v357.Length                  │

00:01:37 #4242 [Verbose] > │     let v367 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:37 #4243 [Verbose] > │ (System.Convert.ToInt32(v366))                                               │

00:01:37 #4244 [Verbose] > │     let v368 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4245 [Verbose] > │     while method5(v366, v368) do                                             │

00:01:37 #4246 [Verbose] > │         let v370 : uint64 = v368.l0                                          │

00:01:37 #4247 [Verbose] > │         let v371 : float = v357.[int v370]                                   │

00:01:37 #4248 [Verbose] > │         let v372 : int64 = v365 v371                                         │

00:01:37 #4249 [Verbose] > │         v367.[int v370] <- v372                                              │

00:01:37 #4250 [Verbose] > │         let v373 : uint64 = v370 + 1UL                                       │

00:01:37 #4251 [Verbose] > │         v368.l0 <- v373                                                      │

00:01:37 #4252 [Verbose] > │         ()                                                                   │

00:01:37 #4253 [Verbose] > │     let v374 : uint64 = System.Convert.ToUInt64 v367.Length                  │

00:01:37 #4254 [Verbose] > │     let v375 : UH5 = UH5_0                                                   │

00:01:37 #4255 [Verbose] > │     let v376 : Mut3 = {l0 = 0UL; l1 = v375; l2 = 0} : Mut3                   │

00:01:37 #4256 [Verbose] > │     while method28(v374, v376) do                                            │

00:01:37 #4257 [Verbose] > │         let v378 : uint64 = v376.l0                                          │

00:01:37 #4258 [Verbose] > │         let struct (v379 : UH5, v380 : int32) = v376.l1, v376.l2             │

00:01:37 #4259 [Verbose] > │         let v381 : int64 = v367.[int v378]                                   │

00:01:37 #4260 [Verbose] > │         let v382 : int32 = v380 + 1                                          │

00:01:37 #4261 [Verbose] > │         let v383 : uint64 = v378 + 1UL                                       │

00:01:37 #4262 [Verbose] > │         let v384 : UH5 = UH5_1(v380, v381, v379)                             │

00:01:37 #4263 [Verbose] > │         v376.l0 <- v383                                                      │

00:01:37 #4264 [Verbose] > │         v376.l1 <- v384                                                      │

00:01:37 #4265 [Verbose] > │         v376.l2 <- v382                                                      │

00:01:37 #4266 [Verbose] > │         ()                                                                   │

00:01:37 #4267 [Verbose] > │     let struct (v385 : UH5, v386 : int32) = v376.l1, v376.l2                 │

00:01:37 #4268 [Verbose] > │     let v387 : UH5 = UH5_0                                                   │

00:01:37 #4269 [Verbose] > │     let v388 : UH5 = method29(v385, v387)                                    │

00:01:37 #4270 [Verbose] > │     let v389 : (struct (int32 * int64) []) = method39(v388)                  │

00:01:37 #4271 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:37 #4272 [Verbose] > │     let v390 : string = "Average Ranking  "                                  │

00:01:37 #4273 [Verbose] > │     System.Console.WriteLine v390                                            │

00:01:37 #4274 [Verbose] > │     let v391 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:01:37 #4275 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:01:37 #4276 [Verbose] > │     let v392 : (struct (int32 * int64) -> int64) = closure8()                │

00:01:37 #4277 [Verbose] > │     let v393 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:01:37 #4278 [Verbose] > │ = v391 v392                                                                  │

00:01:37 #4279 [Verbose] > │     let v394 : (struct (int32 * int64) []) = v393 v389                       │

00:01:37 #4280 [Verbose] > │     let v395 : uint64 = System.Convert.ToUInt64 v394.Length                  │

00:01:37 #4281 [Verbose] > │     let v396 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4282 [Verbose] > │     while method5(v395, v396) do                                             │

00:01:37 #4283 [Verbose] > │         let v398 : uint64 = v396.l0                                          │

00:01:37 #4284 [Verbose] > │         let struct (v399 : int32, v400 : int64) = v394.[int v398]            │

00:01:37 #4285 [Verbose] > │         let v401 : string = $"Test case %d{v399 + 1}. Average Time: %A{v400} │

00:01:37 #4286 [Verbose] > │ "                                                                            │

00:01:37 #4287 [Verbose] > │         System.Console.WriteLine v401                                        │

00:01:37 #4288 [Verbose] > │         let v402 : uint64 = v398 + 1UL                                       │

00:01:37 #4289 [Verbose] > │         v396.l0 <- v402                                                      │

00:01:37 #4290 [Verbose] > │         ()                                                                   │

00:01:37 #4291 [Verbose] > │     ()                                                                       │

00:01:37 #4292 [Verbose] > │ and method0 () : unit =                                                      │

00:01:37 #4293 [Verbose] > │     let v0 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:37 #4294 [Verbose] > │     let v1 : int32 = v0.Length                                               │

00:01:37 #4295 [Verbose] > │     let v2 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:37 #4296 [Verbose] > │     let v3 : int32 = v2.Length                                               │

00:01:37 #4297 [Verbose] > │     let v4 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:37 #4298 [Verbose] > │     let v5 : int32 = v4.Length                                               │

00:01:37 #4299 [Verbose] > │     let v6 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                           │

00:01:37 #4300 [Verbose] > │     let v7 : int32 = v6.Length                                               │

00:01:37 #4301 [Verbose] > │     let v8 : (int32 []) = Array.zeroCreate<int32> (100)                      │

00:01:37 #4302 [Verbose] > │     let v9 : Mut0 = {l0 = 0} : Mut0                                          │

00:01:37 #4303 [Verbose] > │     while method1(v9) do                                                     │

00:01:37 #4304 [Verbose] > │         let v11 : int32 = v9.l0                                              │

00:01:37 #4305 [Verbose] > │         let v12 : int32 = 1 + v11                                            │

00:01:37 #4306 [Verbose] > │         v8.[int v11] <- v12                                                  │

00:01:37 #4307 [Verbose] > │         let v13 : int32 = v11 + 1                                            │

00:01:37 #4308 [Verbose] > │         v9.l0 <- v13                                                         │

00:01:37 #4309 [Verbose] > │         ()                                                                   │

00:01:37 #4310 [Verbose] > │     let v14 : int32 = v8.Length                                              │

00:01:37 #4311 [Verbose] > │     let v15 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:37 #4312 [Verbose] > │     let v16 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:37 #4313 [Verbose] > │     let v17 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:37 #4314 [Verbose] > │     let v18 : (int32 []) = [|1; 3; 4; 6; 8; 9; 11|]                          │

00:01:37 #4315 [Verbose] > │     let v19 : (int32 []) = Array.zeroCreate<int32> (100)                     │

00:01:37 #4316 [Verbose] > │     let v20 : Mut0 = {l0 = 0} : Mut0                                         │

00:01:37 #4317 [Verbose] > │     while method1(v20) do                                                    │

00:01:37 #4318 [Verbose] > │         let v22 : int32 = v20.l0                                             │

00:01:37 #4319 [Verbose] > │         let v23 : int32 = 1 + v22                                            │

00:01:37 #4320 [Verbose] > │         v19.[int v22] <- v23                                                 │

00:01:37 #4321 [Verbose] > │         let v24 : int32 = v22 + 1                                            │

00:01:37 #4322 [Verbose] > │         v20.l0 <- v24                                                        │

00:01:37 #4323 [Verbose] > │         ()                                                                   │

00:01:37 #4324 [Verbose] > │     let v25 : (unit -> unit) = closure0()                                    │

00:01:37 #4325 [Verbose] > │     let v26 : string = nameof v25                                            │

00:01:37 #4326 [Verbose] > │     let v27 : string = ""                                                    │

00:01:37 #4327 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:37 #4328 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:37 #4329 [Verbose] > │     let v28 : string = $"Test: {v26}"                                        │

00:01:37 #4330 [Verbose] > │     System.Console.WriteLine v28                                             │

00:01:37 #4331 [Verbose] > │     let v29 : int32 = 6                                                      │

00:01:37 #4332 [Verbose] > │     let v30 : int32 = 3                                                      │

00:01:37 #4333 [Verbose] > │     let v31 : US0 = US0_0(v30)                                               │

00:01:37 #4334 [Verbose] > │     let v32 : int32 = 1                                                      │

00:01:37 #4335 [Verbose] > │     let v33 : int32 = 0                                                      │

00:01:37 #4336 [Verbose] > │     let v34 : US0 = US0_0(v33)                                               │

00:01:37 #4337 [Verbose] > │     let v35 : int32 = 11                                                     │

00:01:37 #4338 [Verbose] > │     let v36 : int32 = 6                                                      │

00:01:37 #4339 [Verbose] > │     let v37 : US0 = US0_0(v36)                                               │

00:01:37 #4340 [Verbose] > │     let v38 : int32 = 12                                                     │

00:01:37 #4341 [Verbose] > │     let v39 : US0 = US0_1                                                    │

00:01:37 #4342 [Verbose] > │     let v40 : int32 = 60                                                     │

00:01:37 #4343 [Verbose] > │     let v41 : int32 = 59                                                     │

00:01:37 #4344 [Verbose] > │     let v42 : US0 = US0_0(v41)                                               │

00:01:37 #4345 [Verbose] > │     let v43 : int32 = 6                                                      │

00:01:37 #4346 [Verbose] > │     let v44 : int32 = 7                                                      │

00:01:37 #4347 [Verbose] > │     let v45 : int32 = 3                                                      │

00:01:37 #4348 [Verbose] > │     let v46 : US0 = US0_0(v45)                                               │

00:01:37 #4349 [Verbose] > │     let v47 : int32 = 1                                                      │

00:01:37 #4350 [Verbose] > │     let v48 : int32 = 7                                                      │

00:01:37 #4351 [Verbose] > │     let v49 : int32 = 0                                                      │

00:01:37 #4352 [Verbose] > │     let v50 : US0 = US0_0(v49)                                               │

00:01:37 #4353 [Verbose] > │     let v51 : int32 = 11                                                     │

00:01:37 #4354 [Verbose] > │     let v52 : int32 = 7                                                      │

00:01:37 #4355 [Verbose] > │     let v53 : int32 = 6                                                      │

00:01:37 #4356 [Verbose] > │     let v54 : US0 = US0_0(v53)                                               │

00:01:37 #4357 [Verbose] > │     let v55 : int32 = 12                                                     │

00:01:37 #4358 [Verbose] > │     let v56 : int32 = 7                                                      │

00:01:37 #4359 [Verbose] > │     let v57 : US0 = US0_1                                                    │

00:01:37 #4360 [Verbose] > │     let v58 : int32 = 60                                                     │

00:01:37 #4361 [Verbose] > │     let v59 : int32 = 100                                                    │

00:01:37 #4362 [Verbose] > │     let v60 : int32 = 59                                                     │

00:01:37 #4363 [Verbose] > │     let v61 : US0 = US0_0(v60)                                               │

00:01:37 #4364 [Verbose] > │     let v62 : UH0 = UH0_0                                                    │

00:01:37 #4365 [Verbose] > │     let v63 : UH0 = UH0_1(v19, v58, v59, v61, v62)                           │

00:01:37 #4366 [Verbose] > │     let v64 : UH0 = UH0_1(v18, v55, v56, v57, v63)                           │

00:01:37 #4367 [Verbose] > │     let v65 : UH0 = UH0_1(v17, v51, v52, v54, v64)                           │

00:01:37 #4368 [Verbose] > │     let v66 : UH0 = UH0_1(v16, v47, v48, v50, v65)                           │

00:01:37 #4369 [Verbose] > │     let v67 : UH0 = UH0_1(v15, v43, v44, v46, v66)                           │

00:01:37 #4370 [Verbose] > │     let v68 : UH0 = UH0_1(v8, v40, v14, v42, v67)                            │

00:01:37 #4371 [Verbose] > │     let v69 : UH0 = UH0_1(v6, v38, v7, v39, v68)                             │

00:01:37 #4372 [Verbose] > │     let v70 : UH0 = UH0_1(v4, v35, v5, v37, v69)                             │

00:01:37 #4373 [Verbose] > │     let v71 : UH0 = UH0_1(v2, v32, v3, v34, v70)                             │

00:01:37 #4374 [Verbose] > │     let v72 : UH0 = UH0_1(v0, v29, v1, v31, v71)                             │

00:01:37 #4375 [Verbose] > │     let v73 : (struct ((int32 []) * int32 * int32 * US0) []) = method2(v72)  │

00:01:37 #4376 [Verbose] > │     let v74 : uint64 = System.Convert.ToUInt64 v73.Length                    │

00:01:37 #4377 [Verbose] > │     let v75 : (struct (string * string * string * (int64 [])) []) =          │

00:01:37 #4378 [Verbose] > │ Array.zeroCreate<struct (string * string * string * (int64 []))>             │

00:01:37 #4379 [Verbose] > │ (System.Convert.ToInt32(v74))                                                │

00:01:37 #4380 [Verbose] > │     let v76 : Mut1 = {l0 = 0UL} : Mut1                                       │

00:01:37 #4381 [Verbose] > │     while method5(v74, v76) do                                               │

00:01:37 #4382 [Verbose] > │         let v78 : uint64 = v76.l0                                            │

00:01:37 #4383 [Verbose] > │         let struct (v79 : (int32 []), v80 : int32, v81 : int32, v82 : US0) = │

00:01:37 #4384 [Verbose] > │ v73.[int v78]                                                                │

00:01:37 #4385 [Verbose] > │         let v83 : string = $"%A{struct (v79, v80, v81)}"                     │

00:01:37 #4386 [Verbose] > │         System.Console.WriteLine v27                                         │

00:01:37 #4387 [Verbose] > │         let v84 : string = $"Solution: {v83}  "                              │

00:01:37 #4388 [Verbose] > │         System.Console.WriteLine v84                                         │

00:01:37 #4389 [Verbose] > │         let v85 : int32 = 0                                                  │

00:01:37 #4390 [Verbose] > │         let v86 : string = "semi_open_1"                                     │

00:01:37 #4391 [Verbose] > │         let v87 : (struct ((int32 []) * int32 * int32) -> US0) = closure1()  │

00:01:37 #4392 [Verbose] > │         let v88 : int32 = 1                                                  │

00:01:37 #4393 [Verbose] > │         let v89 : string = "closed_1"                                        │

00:01:37 #4394 [Verbose] > │         let v90 : (struct ((int32 []) * int32 * int32) -> US0) = closure2()  │

00:01:37 #4395 [Verbose] > │         let v91 : int32 = 2                                                  │

00:01:37 #4396 [Verbose] > │         let v92 : string = "semi_open_2"                                     │

00:01:37 #4397 [Verbose] > │         let v93 : (struct ((int32 []) * int32 * int32) -> US0) = closure3()  │

00:01:37 #4398 [Verbose] > │         let v94 : int32 = 3                                                  │

00:01:37 #4399 [Verbose] > │         let v95 : string = "closed_2"                                        │

00:01:37 #4400 [Verbose] > │         let v96 : (struct ((int32 []) * int32 * int32) -> US0) = closure4()  │

00:01:37 #4401 [Verbose] > │         let v97 : UH1 = UH1_0                                                │

00:01:37 #4402 [Verbose] > │         let v98 : UH1 = UH1_1(v94, v95, v96, v97)                            │

00:01:37 #4403 [Verbose] > │         let v99 : UH1 = UH1_1(v91, v92, v93, v98)                            │

00:01:37 #4404 [Verbose] > │         let v100 : UH1 = UH1_1(v88, v89, v90, v99)                           │

00:01:37 #4405 [Verbose] > │         let v101 : UH1 = UH1_1(v85, v86, v87, v100)                          │

00:01:37 #4406 [Verbose] > │         let v102 : (struct (int32 * string * (struct ((int32 []) * int32 *   │

00:01:37 #4407 [Verbose] > │ int32) -> US0)) []) = method10(v101)                                         │

00:01:37 #4408 [Verbose] > │         let v103 : uint64 = System.Convert.ToUInt64 v102.Length              │

00:01:37 #4409 [Verbose] > │         let v104 : (struct (US0 * int64) []) = Array.zeroCreate<struct (US0  │

00:01:37 #4410 [Verbose] > │ * int64)> (System.Convert.ToInt32(v103))                                     │

00:01:37 #4411 [Verbose] > │         let v105 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4412 [Verbose] > │         while method5(v103, v105) do                                         │

00:01:37 #4413 [Verbose] > │             let v107 : uint64 = v105.l0                                      │

00:01:37 #4414 [Verbose] > │             let struct (v108 : int32, v109 : string, v110 : (struct ((int32  │

00:01:37 #4415 [Verbose] > │ []) * int32 * int32) -> US0)) = v102.[int v107]                              │

00:01:37 #4416 [Verbose] > │             let v111 : unit option = None                                    │

00:01:37 #4417 [Verbose] > │             let mutable _v111 = v111                                         │

00:01:37 #4418 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:37 #4419 [Verbose] > │             ()                                                               │

00:01:37 #4420 [Verbose] > │             #endif                                                           │

00:01:37 #4421 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:37 #4422 [Verbose] > │             ()                                                               │

00:01:37 #4423 [Verbose] > │             #endif                                                           │

00:01:37 #4424 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:37 #4425 [Verbose] > │             ()                                                               │

00:01:37 #4426 [Verbose] > │             #endif                                                           │

00:01:37 #4427 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:37 #4428 [Verbose] > │             System.GC.Collect ()                                             │

00:01:37 #4429 [Verbose] > │             ()                                                               │

00:01:37 #4430 [Verbose] > │             #endif                                                           │

00:01:37 #4431 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:37 #4432 [Verbose] > │             System.GC.Collect ()                                             │

00:01:37 #4433 [Verbose] > │             ()                                                               │

00:01:37 #4434 [Verbose] > │             #endif                                                           │

00:01:37 #4435 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:37 #4436 [Verbose] > │             System.GC.Collect ()                                             │

00:01:37 #4437 [Verbose] > │             ()                                                               │

00:01:37 #4438 [Verbose] > │             #endif                                                           │

00:01:37 #4439 [Verbose] > │             |> fun x -> _v111 <- Some x                                      │

00:01:37 #4440 [Verbose] > │             _v111 |> Option.get                                              │

00:01:37 #4441 [Verbose] > │             let v112 : (unit -> System.Diagnostics.Stopwatch) =              │

00:01:37 #4442 [Verbose] > │ System.Diagnostics.Stopwatch                                                 │

00:01:37 #4443 [Verbose] > │             let v113 : System.Diagnostics.Stopwatch = v112 ()                │

00:01:37 #4444 [Verbose] > │             v113.Start ()                                                    │

00:01:37 #4445 [Verbose] > │             let v114 : int64 = v113.ElapsedMilliseconds                      │

00:01:37 #4446 [Verbose] > │             let v115 : (int32 []) = Array.zeroCreate<int32> (8000001)        │

00:01:37 #4447 [Verbose] > │             let v116 : Mut0 = {l0 = 0} : Mut0                                │

00:01:37 #4448 [Verbose] > │             while method13(v116) do                                          │

00:01:37 #4449 [Verbose] > │                 let v118 : int32 = v116.l0                                   │

00:01:37 #4450 [Verbose] > │                 v115.[int v118] <- v118                                      │

00:01:37 #4451 [Verbose] > │                 let v119 : int32 = v118 + 1                                  │

00:01:37 #4452 [Verbose] > │                 v116.l0 <- v119                                              │

00:01:37 #4453 [Verbose] > │                 ()                                                           │

00:01:37 #4454 [Verbose] > │             let v120 : ((int32 -> US0) -> ((int32 []) -> (US0 []))) =        │

00:01:37 #4455 [Verbose] > │ Array.Parallel.map                                                           │

00:01:37 #4456 [Verbose] > │             let v121 : (int32 -> US0) = closure5(v79, v80, v81, v110)        │

00:01:37 #4457 [Verbose] > │             let v122 : ((int32 []) -> (US0 [])) = v120 v121                  │

00:01:37 #4458 [Verbose] > │             let v123 : (US0 []) = v122 v115                                  │

00:01:37 #4459 [Verbose] > │             let v124 : int32 = v123.Length                                   │

00:01:37 #4460 [Verbose] > │             let v125 : int32 = v124 - 1                                      │

00:01:37 #4461 [Verbose] > │             let v126 : US0 = v123.[int v125]                                 │

00:01:37 #4462 [Verbose] > │             let v127 : int64 = v113.ElapsedMilliseconds                      │

00:01:37 #4463 [Verbose] > │             let v128 : int64 = v127 - v114                                   │

00:01:37 #4464 [Verbose] > │             let v129 : string = $"Test case {v108 + 1}. {v109}. Time: {v128} │

00:01:37 #4465 [Verbose] > │ "                                                                            │

00:01:37 #4466 [Verbose] > │             System.Console.WriteLine v129                                    │

00:01:37 #4467 [Verbose] > │             v104.[int v107] <- struct (v126, v128)                           │

00:01:37 #4468 [Verbose] > │             let v130 : uint64 = v107 + 1UL                                   │

00:01:37 #4469 [Verbose] > │             v105.l0 <- v130                                                  │

00:01:37 #4470 [Verbose] > │             ()                                                               │

00:01:37 #4471 [Verbose] > │         let v131 : uint64 = System.Convert.ToUInt64 v104.Length              │

00:01:37 #4472 [Verbose] > │         let v132 : (US0 []) = Array.zeroCreate<US0>                          │

00:01:37 #4473 [Verbose] > │ (System.Convert.ToInt32(v131))                                               │

00:01:37 #4474 [Verbose] > │         let v133 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4475 [Verbose] > │         while method5(v131, v133) do                                         │

00:01:37 #4476 [Verbose] > │             let v135 : uint64 = v133.l0                                      │

00:01:37 #4477 [Verbose] > │             let struct (v136 : US0, v137 : int64) = v104.[int v135]          │

00:01:37 #4478 [Verbose] > │             v132.[int v135] <- v136                                          │

00:01:37 #4479 [Verbose] > │             let v138 : uint64 = v135 + 1UL                                   │

00:01:37 #4480 [Verbose] > │             v133.l0 <- v138                                                  │

00:01:37 #4481 [Verbose] > │             ()                                                               │

00:01:37 #4482 [Verbose] > │         let v139 : uint64 = System.Convert.ToUInt64 v132.Length              │

00:01:37 #4483 [Verbose] > │         let v140 : bool = v139 <= 1UL                                        │

00:01:37 #4484 [Verbose] > │         if v140 then                                                         │

00:01:37 #4485 [Verbose] > │             ()                                                               │

00:01:37 #4486 [Verbose] > │         else                                                                 │

00:01:37 #4487 [Verbose] > │             let v141 : US0 = v132.[int 0UL]                                  │

00:01:37 #4488 [Verbose] > │             let v142 : uint64 = 0UL                                          │

00:01:37 #4489 [Verbose] > │             let v143 : bool = method14(v141, v132, v142)                     │

00:01:37 #4490 [Verbose] > │             if v143 then                                                     │

00:01:37 #4491 [Verbose] > │                 ()                                                           │

00:01:37 #4492 [Verbose] > │             else                                                             │

00:01:37 #4493 [Verbose] > │                 let v144 : string = $"Challenge error: {v132}"               │

00:01:37 #4494 [Verbose] > │                 failwith<unit> v144                                          │

00:01:37 #4495 [Verbose] > │         let v145 : string = $"%A{v82}"                                       │

00:01:37 #4496 [Verbose] > │         let v146 : (US0 []) = Array.zeroCreate<US0>                          │

00:01:37 #4497 [Verbose] > │ (System.Convert.ToInt32(v131))                                               │

00:01:37 #4498 [Verbose] > │         let v147 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4499 [Verbose] > │         while method5(v131, v147) do                                         │

00:01:37 #4500 [Verbose] > │             let v149 : uint64 = v147.l0                                      │

00:01:37 #4501 [Verbose] > │             let struct (v150 : US0, v151 : int64) = v104.[int v149]          │

00:01:37 #4502 [Verbose] > │             v146.[int v149] <- v150                                          │

00:01:37 #4503 [Verbose] > │             let v152 : uint64 = v149 + 1UL                                   │

00:01:37 #4504 [Verbose] > │             v147.l0 <- v152                                                  │

00:01:37 #4505 [Verbose] > │             ()                                                               │

00:01:37 #4506 [Verbose] > │         let v153 : US0 = v146.[int 0UL]                                      │

00:01:37 #4507 [Verbose] > │         let v154 : string = $"%A{v153}"                                      │

00:01:37 #4508 [Verbose] > │         let v155 : (int64 []) = Array.zeroCreate<int64>                      │

00:01:37 #4509 [Verbose] > │ (System.Convert.ToInt32(v131))                                               │

00:01:37 #4510 [Verbose] > │         let v156 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4511 [Verbose] > │         while method5(v131, v156) do                                         │

00:01:37 #4512 [Verbose] > │             let v158 : uint64 = v156.l0                                      │

00:01:37 #4513 [Verbose] > │             let struct (v159 : US0, v160 : int64) = v104.[int v158]          │

00:01:37 #4514 [Verbose] > │             v155.[int v158] <- v160                                          │

00:01:37 #4515 [Verbose] > │             let v161 : uint64 = v158 + 1UL                                   │

00:01:37 #4516 [Verbose] > │             v156.l0 <- v161                                                  │

00:01:37 #4517 [Verbose] > │             ()                                                               │

00:01:37 #4518 [Verbose] > │         v75.[int v78] <- struct (v145, v83, v154, v155)                      │

00:01:37 #4519 [Verbose] > │         let v162 : uint64 = v78 + 1UL                                        │

00:01:37 #4520 [Verbose] > │         v76.l0 <- v162                                                       │

00:01:37 #4521 [Verbose] > │         ()                                                                   │

00:01:37 #4522 [Verbose] > │     let v163 : uint64 = System.Convert.ToUInt64 v75.Length                   │

00:01:37 #4523 [Verbose] > │     let v164 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │

00:01:37 #4524 [Verbose] > │ US1)> (System.Convert.ToInt32(v163))                                         │

00:01:37 #4525 [Verbose] > │     let v165 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4526 [Verbose] > │     while method5(v163, v165) do                                             │

00:01:37 #4527 [Verbose] > │         let v167 : uint64 = v165.l0                                          │

00:01:37 #4528 [Verbose] > │         let struct (v168 : string, v169 : string, v170 : string, v171 :      │

00:01:37 #4529 [Verbose] > │ (int64 [])) = v75.[int v167]                                                 │

00:01:37 #4530 [Verbose] > │         let v172 : uint64 = System.Convert.ToUInt64 v171.Length              │

00:01:37 #4531 [Verbose] > │         let v173 : UH3 = UH3_0                                               │

00:01:37 #4532 [Verbose] > │         let v174 : Mut2 = {l0 = 0UL; l1 = v173; l2 = 0L} : Mut2              │

00:01:37 #4533 [Verbose] > │         while method15(v172, v174) do                                        │

00:01:37 #4534 [Verbose] > │             let v176 : uint64 = v174.l0                                      │

00:01:37 #4535 [Verbose] > │             let struct (v177 : UH3, v178 : int64) = v174.l1, v174.l2         │

00:01:37 #4536 [Verbose] > │             let v179 : int64 = v171.[int v176]                               │

00:01:37 #4537 [Verbose] > │             let v180 : int64 = v178 + 1L                                     │

00:01:37 #4538 [Verbose] > │             let v181 : uint64 = v176 + 1UL                                   │

00:01:37 #4539 [Verbose] > │             let v182 : UH3 = UH3_1(v178, v179, v177)                         │

00:01:37 #4540 [Verbose] > │             v174.l0 <- v181                                                  │

00:01:37 #4541 [Verbose] > │             v174.l1 <- v182                                                  │

00:01:37 #4542 [Verbose] > │             v174.l2 <- v180                                                  │

00:01:37 #4543 [Verbose] > │             ()                                                               │

00:01:37 #4544 [Verbose] > │         let struct (v183 : UH3, v184 : int64) = v174.l1, v174.l2             │

00:01:37 #4545 [Verbose] > │         let v185 : UH3 = UH3_0                                               │

00:01:37 #4546 [Verbose] > │         let v186 : UH3 = method16(v183, v185)                                │

00:01:37 #4547 [Verbose] > │         let v187 : (struct (int64 * int64) []) = method17(v186)              │

00:01:37 #4548 [Verbose] > │         let v188 : int32 = v187.Length                                       │

00:01:37 #4549 [Verbose] > │         let v189 : (struct (int64 * int64) []) = Array.zeroCreate<struct     │

00:01:37 #4550 [Verbose] > │ (int64 * int64)> (v188)                                                      │

00:01:37 #4551 [Verbose] > │         let v190 : Mut0 = {l0 = 0} : Mut0                                    │

00:01:37 #4552 [Verbose] > │         while method20(v188, v190) do                                        │

00:01:37 #4553 [Verbose] > │             let v192 : int32 = v190.l0                                       │

00:01:37 #4554 [Verbose] > │             let struct (v193 : int64, v194 : int64) = v187.[int v192]        │

00:01:37 #4555 [Verbose] > │             let v195 : int64 = v193 + 1L                                     │

00:01:37 #4556 [Verbose] > │             v189.[int v192] <- struct (v195, v194)                           │

00:01:37 #4557 [Verbose] > │             let v196 : int32 = v192 + 1                                      │

00:01:37 #4558 [Verbose] > │             v190.l0 <- v196                                                  │

00:01:37 #4559 [Verbose] > │             ()                                                               │

00:01:37 #4560 [Verbose] > │         let v197 : ((struct (int64 * int64) -> int64) -> ((struct (int64 *   │

00:01:37 #4561 [Verbose] > │ int64) []) -> (struct (int64 * int64) []))) = Array.sortBy                   │

00:01:37 #4562 [Verbose] > │         let v198 : (struct (int64 * int64) -> int64) = closure6()            │

00:01:37 #4563 [Verbose] > │         let v199 : ((struct (int64 * int64) []) -> (struct (int64 * int64) [ │

00:01:37 #4564 [Verbose] > │ ])) = v197 v198                                                              │

00:01:37 #4565 [Verbose] > │         let v200 : (struct (int64 * int64) []) = v199 v189                   │

00:01:37 #4566 [Verbose] > │         let struct (v201 : int64, v202 : int64) = v200.[int 0]               │

00:01:37 #4567 [Verbose] > │         let v203 : string = $"%A{struct (v201, v202)}"                       │

00:01:37 #4568 [Verbose] > │         let v204 : bool = v168 = v170                                        │

00:01:37 #4569 [Verbose] > │         let v209 : US1 =                                                     │

00:01:37 #4570 [Verbose] > │             if v204 then                                                     │

00:01:37 #4571 [Verbose] > │                 let v205 : System.ConsoleColor =                             │

00:01:37 #4572 [Verbose] > │ System.ConsoleColor.DarkGreen                                                │

00:01:37 #4573 [Verbose] > │                 US1_0(v205)                                                  │

00:01:37 #4574 [Verbose] > │             else                                                             │

00:01:37 #4575 [Verbose] > │                 let v207 : System.ConsoleColor = System.ConsoleColor.DarkRed │

00:01:37 #4576 [Verbose] > │                 US1_0(v207)                                                  │

00:01:37 #4577 [Verbose] > │         let v210 : UH2 = UH2_0                                               │

00:01:37 #4578 [Verbose] > │         let v211 : UH2 = UH2_1(v203, v210)                                   │

00:01:37 #4579 [Verbose] > │         let v212 : UH2 = UH2_1(v170, v211)                                   │

00:01:37 #4580 [Verbose] > │         let v213 : UH2 = UH2_1(v168, v212)                                   │

00:01:37 #4581 [Verbose] > │         let v214 : UH2 = UH2_1(v169, v213)                                   │

00:01:37 #4582 [Verbose] > │         v164.[int v167] <- struct (v214, v209)                               │

00:01:37 #4583 [Verbose] > │         let v215 : uint64 = v167 + 1UL                                       │

00:01:37 #4584 [Verbose] > │         v165.l0 <- v215                                                      │

00:01:37 #4585 [Verbose] > │         ()                                                                   │

00:01:37 #4586 [Verbose] > │     let v216 : string = "Input"                                              │

00:01:37 #4587 [Verbose] > │     let v217 : string = "Expected"                                           │

00:01:37 #4588 [Verbose] > │     let v218 : string = "Result"                                             │

00:01:37 #4589 [Verbose] > │     let v219 : string = "Best"                                               │

00:01:37 #4590 [Verbose] > │     let v220 : UH2 = UH2_0                                                   │

00:01:37 #4591 [Verbose] > │     let v221 : UH2 = UH2_1(v219, v220)                                       │

00:01:37 #4592 [Verbose] > │     let v222 : UH2 = UH2_1(v218, v221)                                       │

00:01:37 #4593 [Verbose] > │     let v223 : UH2 = UH2_1(v217, v222)                                       │

00:01:37 #4594 [Verbose] > │     let v224 : UH2 = UH2_1(v216, v223)                                       │

00:01:37 #4595 [Verbose] > │     let v225 : US1 = US1_1                                                   │

00:01:37 #4596 [Verbose] > │     let v226 : string = "---"                                                │

00:01:37 #4597 [Verbose] > │     let v227 : UH2 = UH2_0                                                   │

00:01:37 #4598 [Verbose] > │     let v228 : UH2 = UH2_1(v226, v227)                                       │

00:01:37 #4599 [Verbose] > │     let v229 : UH2 = UH2_1(v226, v228)                                       │

00:01:37 #4600 [Verbose] > │     let v230 : UH2 = UH2_1(v226, v229)                                       │

00:01:37 #4601 [Verbose] > │     let v231 : UH2 = UH2_1(v226, v230)                                       │

00:01:37 #4602 [Verbose] > │     let v232 : US1 = US1_1                                                   │

00:01:37 #4603 [Verbose] > │     let v233 : UH4 = UH4_0                                                   │

00:01:37 #4604 [Verbose] > │     let v234 : UH4 = UH4_1(v231, v232, v233)                                 │

00:01:37 #4605 [Verbose] > │     let v235 : UH4 = UH4_1(v224, v225, v234)                                 │

00:01:37 #4606 [Verbose] > │     let v236 : (struct (UH2 * US1) []) = method21(v235)                      │

00:01:37 #4607 [Verbose] > │     let v237 : uint64 = System.Convert.ToUInt64 v236.Length                  │

00:01:37 #4608 [Verbose] > │     let v238 : uint64 = System.Convert.ToUInt64 v164.Length                  │

00:01:37 #4609 [Verbose] > │     let v239 : uint64 = v237 + v238                                          │

00:01:37 #4610 [Verbose] > │     let v240 : (struct (UH2 * US1) []) = Array.zeroCreate<struct (UH2 *      │

00:01:37 #4611 [Verbose] > │ US1)> (System.Convert.ToInt32(v239))                                         │

00:01:37 #4612 [Verbose] > │     let v241 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4613 [Verbose] > │     while method5(v239, v241) do                                             │

00:01:37 #4614 [Verbose] > │         let v243 : uint64 = v241.l0                                          │

00:01:37 #4615 [Verbose] > │         let v244 : bool = v243 < v237                                        │

00:01:37 #4616 [Verbose] > │         let struct (v250 : UH2, v251 : US1) =                                │

00:01:37 #4617 [Verbose] > │             if v244 then                                                     │

00:01:37 #4618 [Verbose] > │                 let struct (v245 : UH2, v246 : US1) = v236.[int v243]        │

00:01:37 #4619 [Verbose] > │                 struct (v245, v246)                                          │

00:01:37 #4620 [Verbose] > │             else                                                             │

00:01:37 #4621 [Verbose] > │                 let v247 : uint64 = v243 - v237                              │

00:01:37 #4622 [Verbose] > │                 let struct (v248 : UH2, v249 : US1) = v164.[int v247]        │

00:01:37 #4623 [Verbose] > │                 struct (v248, v249)                                          │

00:01:37 #4624 [Verbose] > │         v240.[int v243] <- struct (v250, v251)                               │

00:01:37 #4625 [Verbose] > │         let v252 : uint64 = v243 + 1UL                                       │

00:01:37 #4626 [Verbose] > │         v241.l0 <- v252                                                      │

00:01:37 #4627 [Verbose] > │         ()                                                                   │

00:01:37 #4628 [Verbose] > │     let v253 : uint64 = System.Convert.ToUInt64 v240.Length                  │

00:01:37 #4629 [Verbose] > │     let v254 : ((string []) []) = Array.zeroCreate<(string [])>              │

00:01:37 #4630 [Verbose] > │ (System.Convert.ToInt32(v253))                                               │

00:01:37 #4631 [Verbose] > │     let v255 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4632 [Verbose] > │     while method5(v253, v255) do                                             │

00:01:37 #4633 [Verbose] > │         let v257 : uint64 = v255.l0                                          │

00:01:37 #4634 [Verbose] > │         let struct (v258 : UH2, v259 : US1) = v240.[int v257]                │

00:01:37 #4635 [Verbose] > │         let v260 : (string []) = method24(v258)                              │

00:01:37 #4636 [Verbose] > │         v254.[int v257] <- v260                                              │

00:01:37 #4637 [Verbose] > │         let v261 : uint64 = v257 + 1UL                                       │

00:01:37 #4638 [Verbose] > │         v255.l0 <- v261                                                      │

00:01:37 #4639 [Verbose] > │         ()                                                                   │

00:01:37 #4640 [Verbose] > │     let v262 : (((string []) []) -> ((string []) [])) = Array.transpose      │

00:01:37 #4641 [Verbose] > │     let v263 : ((string []) []) = v262 v254                                  │

00:01:37 #4642 [Verbose] > │     let v264 : uint64 = System.Convert.ToUInt64 v263.Length                  │

00:01:37 #4643 [Verbose] > │     let v265 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:37 #4644 [Verbose] > │ (System.Convert.ToInt32(v264))                                               │

00:01:37 #4645 [Verbose] > │     let v266 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4646 [Verbose] > │     while method5(v264, v266) do                                             │

00:01:37 #4647 [Verbose] > │         let v268 : uint64 = v266.l0                                          │

00:01:37 #4648 [Verbose] > │         let v269 : (string []) = v263.[int v268]                             │

00:01:37 #4649 [Verbose] > │         let v270 : uint64 = System.Convert.ToUInt64 v269.Length              │

00:01:37 #4650 [Verbose] > │         let v271 : (int64 []) = Array.zeroCreate<int64>                      │

00:01:37 #4651 [Verbose] > │ (System.Convert.ToInt32(v270))                                               │

00:01:37 #4652 [Verbose] > │         let v272 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4653 [Verbose] > │         while method5(v270, v272) do                                         │

00:01:37 #4654 [Verbose] > │             let v274 : uint64 = v272.l0                                      │

00:01:37 #4655 [Verbose] > │             let v275 : string = v269.[int v274]                              │

00:01:37 #4656 [Verbose] > │             let v276 : int64 = System.Convert.ToInt64 v275.Length            │

00:01:37 #4657 [Verbose] > │             v271.[int v274] <- v276                                          │

00:01:37 #4658 [Verbose] > │             let v277 : uint64 = v274 + 1UL                                   │

00:01:37 #4659 [Verbose] > │             v272.l0 <- v277                                                  │

00:01:37 #4660 [Verbose] > │             ()                                                               │

00:01:37 #4661 [Verbose] > │         let v278 : ((int64 []) -> (int64 [])) = Array.sortDescending         │

00:01:37 #4662 [Verbose] > │         let v279 : (int64 []) = v278 v271                                    │

00:01:37 #4663 [Verbose] > │         let v280 : (int32 -> ((int64 []) -> int64 option)) = Array.tryItem   │

00:01:37 #4664 [Verbose] > │         let v281 : ((int64 []) -> int64 option) = v280 0                     │

00:01:37 #4665 [Verbose] > │         let v282 : int64 option = v281 v279                                  │

00:01:37 #4666 [Verbose] > │         let v283 : (int64 -> US2) = method27()                               │

00:01:37 #4667 [Verbose] > │         let v284 : US2 = US2_1                                               │

00:01:37 #4668 [Verbose] > │         let v285 : US2 = v282 |> Option.map v283 |> Option.defaultValue v284 │

00:01:37 #4669 [Verbose] > │         let v288 : int64 =                                                   │

00:01:37 #4670 [Verbose] > │             match v285 with                                                  │

00:01:37 #4671 [Verbose] > │             | US2_1 -> (* None *)                                            │

00:01:37 #4672 [Verbose] > │                 0L                                                           │

00:01:37 #4673 [Verbose] > │             | US2_0(v286) -> (* Some *)                                      │

00:01:37 #4674 [Verbose] > │                 v286                                                         │

00:01:37 #4675 [Verbose] > │         v265.[int v268] <- v288                                              │

00:01:37 #4676 [Verbose] > │         let v289 : uint64 = v268 + 1UL                                       │

00:01:37 #4677 [Verbose] > │         v266.l0 <- v289                                                      │

00:01:37 #4678 [Verbose] > │         ()                                                                   │

00:01:37 #4679 [Verbose] > │     let v290 : uint64 = System.Convert.ToUInt64 v265.Length                  │

00:01:37 #4680 [Verbose] > │     let v291 : UH5 = UH5_0                                                   │

00:01:37 #4681 [Verbose] > │     let v292 : Mut3 = {l0 = 0UL; l1 = v291; l2 = 0} : Mut3                   │

00:01:37 #4682 [Verbose] > │     while method28(v290, v292) do                                            │

00:01:37 #4683 [Verbose] > │         let v294 : uint64 = v292.l0                                          │

00:01:37 #4684 [Verbose] > │         let struct (v295 : UH5, v296 : int32) = v292.l1, v292.l2             │

00:01:37 #4685 [Verbose] > │         let v297 : int64 = v265.[int v294]                                   │

00:01:37 #4686 [Verbose] > │         let v298 : int32 = v296 + 1                                          │

00:01:37 #4687 [Verbose] > │         let v299 : uint64 = v294 + 1UL                                       │

00:01:37 #4688 [Verbose] > │         let v300 : UH5 = UH5_1(v296, v297, v295)                             │

00:01:37 #4689 [Verbose] > │         v292.l0 <- v299                                                      │

00:01:37 #4690 [Verbose] > │         v292.l1 <- v300                                                      │

00:01:37 #4691 [Verbose] > │         v292.l2 <- v298                                                      │

00:01:37 #4692 [Verbose] > │         ()                                                                   │

00:01:37 #4693 [Verbose] > │     let struct (v301 : UH5, v302 : int32) = v292.l1, v292.l2                 │

00:01:37 #4694 [Verbose] > │     let v303 : UH5 = UH5_0                                                   │

00:01:37 #4695 [Verbose] > │     let v304 : UH5 = method29(v301, v303)                                    │

00:01:37 #4696 [Verbose] > │     let v305 : (struct (int32 * int64) []) = method30(v304)                  │

00:01:37 #4697 [Verbose] > │     let v306 : Map<int32, int64> = v305 |> Array.map (fun (struct (a, b)) -> │

00:01:37 #4698 [Verbose] > │ a, b) |> Map.ofArray                                                         │

00:01:37 #4699 [Verbose] > │     let v307 : (struct ((string []) * US1) []) = Array.zeroCreate<struct     │

00:01:37 #4700 [Verbose] > │ ((string []) * US1)> (System.Convert.ToInt32(v253))                          │

00:01:37 #4701 [Verbose] > │     let v308 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4702 [Verbose] > │     while method5(v253, v308) do                                             │

00:01:37 #4703 [Verbose] > │         let v310 : uint64 = v308.l0                                          │

00:01:37 #4704 [Verbose] > │         let struct (v311 : UH2, v312 : US1) = v240.[int v310]                │

00:01:37 #4705 [Verbose] > │         let v313 : UH6 = UH6_0                                               │

00:01:37 #4706 [Verbose] > │         let v314 : int32 = 0                                                 │

00:01:37 #4707 [Verbose] > │         let struct (v315 : UH6, v316 : int32) = method33(v311, v313, v314)   │

00:01:37 #4708 [Verbose] > │         let v317 : UH6 = UH6_0                                               │

00:01:37 #4709 [Verbose] > │         let v318 : UH6 = method34(v315, v317)                                │

00:01:37 #4710 [Verbose] > │         let v319 : UH2 = UH2_0                                               │

00:01:37 #4711 [Verbose] > │         let v320 : UH2 = method35(v306, v318, v319)                          │

00:01:37 #4712 [Verbose] > │         let v321 : (string []) = method36(v320)                              │

00:01:37 #4713 [Verbose] > │         v307.[int v310] <- struct (v321, v312)                               │

00:01:37 #4714 [Verbose] > │         let v322 : uint64 = v310 + 1UL                                       │

00:01:37 #4715 [Verbose] > │         v308.l0 <- v322                                                      │

00:01:37 #4716 [Verbose] > │         ()                                                                   │

00:01:37 #4717 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:37 #4718 [Verbose] > │     let v323 : uint64 = System.Convert.ToUInt64 v307.Length                  │

00:01:37 #4719 [Verbose] > │     let v324 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4720 [Verbose] > │     while method5(v323, v324) do                                             │

00:01:37 #4721 [Verbose] > │         let v326 : uint64 = v324.l0                                          │

00:01:37 #4722 [Verbose] > │         let struct (v327 : (string []), v328 : US1) = v307.[int v326]        │

00:01:37 #4723 [Verbose] > │         match v328 with                                                      │

00:01:37 #4724 [Verbose] > │         | US1_1 -> (* None *)                                                │

00:01:37 #4725 [Verbose] > │             let v331 : unit option = None                                    │

00:01:37 #4726 [Verbose] > │             let mutable _v331 = v331                                         │

00:01:37 #4727 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:37 #4728 [Verbose] > │             ()                                                               │

00:01:37 #4729 [Verbose] > │             #endif                                                           │

00:01:37 #4730 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:37 #4731 [Verbose] > │             ()                                                               │

00:01:37 #4732 [Verbose] > │             #endif                                                           │

00:01:37 #4733 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:37 #4734 [Verbose] > │             ()                                                               │

00:01:37 #4735 [Verbose] > │             #endif                                                           │

00:01:37 #4736 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:37 #4737 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:37 #4738 [Verbose] > │             ()                                                               │

00:01:37 #4739 [Verbose] > │             #endif                                                           │

00:01:37 #4740 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:37 #4741 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:37 #4742 [Verbose] > │             ()                                                               │

00:01:37 #4743 [Verbose] > │             #endif                                                           │

00:01:37 #4744 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:37 #4745 [Verbose] > │             System.Console.ResetColor ()                                     │

00:01:37 #4746 [Verbose] > │             ()                                                               │

00:01:37 #4747 [Verbose] > │             #endif                                                           │

00:01:37 #4748 [Verbose] > │             |> fun x -> _v331 <- Some x                                      │

00:01:37 #4749 [Verbose] > │             _v331 |> Option.get                                              │

00:01:37 #4750 [Verbose] > │             ()                                                               │

00:01:37 #4751 [Verbose] > │         | US1_0(v329) -> (* Some *)                                          │

00:01:37 #4752 [Verbose] > │             let v330 : unit option = None                                    │

00:01:37 #4753 [Verbose] > │             let mutable _v330 = v330                                         │

00:01:37 #4754 [Verbose] > │             #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                    │

00:01:37 #4755 [Verbose] > │             ()                                                               │

00:01:37 #4756 [Verbose] > │             #endif                                                           │

00:01:37 #4757 [Verbose] > │             #if FABLE_COMPILER_RUST && WASM                                  │

00:01:37 #4758 [Verbose] > │             ()                                                               │

00:01:37 #4759 [Verbose] > │             #endif                                                           │

00:01:37 #4760 [Verbose] > │             #if FABLE_COMPILER_RUST && CONTRACT                              │

00:01:37 #4761 [Verbose] > │             ()                                                               │

00:01:37 #4762 [Verbose] > │             #endif                                                           │

00:01:37 #4763 [Verbose] > │             #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM             │

00:01:37 #4764 [Verbose] > │             System.Console.ForegroundColor <- v329                           │

00:01:37 #4765 [Verbose] > │             ()                                                               │

00:01:37 #4766 [Verbose] > │             #endif                                                           │

00:01:37 #4767 [Verbose] > │             #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM              │

00:01:37 #4768 [Verbose] > │             System.Console.ForegroundColor <- v329                           │

00:01:37 #4769 [Verbose] > │             ()                                                               │

00:01:37 #4770 [Verbose] > │             #endif                                                           │

00:01:37 #4771 [Verbose] > │             #if !FABLE_COMPILER_RUST && WASM                                 │

00:01:37 #4772 [Verbose] > │             System.Console.ForegroundColor <- v329                           │

00:01:37 #4773 [Verbose] > │             ()                                                               │

00:01:37 #4774 [Verbose] > │             #endif                                                           │

00:01:37 #4775 [Verbose] > │             |> fun x -> _v330 <- Some x                                      │

00:01:37 #4776 [Verbose] > │             _v330 |> Option.get                                              │

00:01:37 #4777 [Verbose] > │             ()                                                               │

00:01:37 #4778 [Verbose] > │         let v332 : string = "\t| "                                           │

00:01:37 #4779 [Verbose] > │         let v333 : string = System.String.Join (v332, v327)                  │

00:01:37 #4780 [Verbose] > │         System.Console.WriteLine v333                                        │

00:01:37 #4781 [Verbose] > │         let v334 : unit option = None                                        │

00:01:37 #4782 [Verbose] > │         let mutable _v334 = v334                                             │

00:01:37 #4783 [Verbose] > │         #if FABLE_COMPILER_RUST && !WASM && !CONTRACT                        │

00:01:37 #4784 [Verbose] > │         ()                                                                   │

00:01:37 #4785 [Verbose] > │         #endif                                                               │

00:01:37 #4786 [Verbose] > │         #if FABLE_COMPILER_RUST && WASM                                      │

00:01:37 #4787 [Verbose] > │         ()                                                                   │

00:01:37 #4788 [Verbose] > │         #endif                                                               │

00:01:37 #4789 [Verbose] > │         #if FABLE_COMPILER_RUST && CONTRACT                                  │

00:01:37 #4790 [Verbose] > │         ()                                                                   │

00:01:37 #4791 [Verbose] > │         #endif                                                               │

00:01:37 #4792 [Verbose] > │         #if !FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                 │

00:01:37 #4793 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:37 #4794 [Verbose] > │         ()                                                                   │

00:01:37 #4795 [Verbose] > │         #endif                                                               │

00:01:37 #4796 [Verbose] > │         #if FABLE_COMPILER && !FABLE_COMPILER_RUST && !WASM                  │

00:01:37 #4797 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:37 #4798 [Verbose] > │         ()                                                                   │

00:01:37 #4799 [Verbose] > │         #endif                                                               │

00:01:37 #4800 [Verbose] > │         #if !FABLE_COMPILER_RUST && WASM                                     │

00:01:37 #4801 [Verbose] > │         System.Console.ResetColor ()                                         │

00:01:37 #4802 [Verbose] > │         ()                                                                   │

00:01:37 #4803 [Verbose] > │         #endif                                                               │

00:01:37 #4804 [Verbose] > │         |> fun x -> _v334 <- Some x                                          │

00:01:37 #4805 [Verbose] > │         _v334 |> Option.get                                                  │

00:01:37 #4806 [Verbose] > │         let v335 : uint64 = v326 + 1UL                                       │

00:01:37 #4807 [Verbose] > │         v324.l0 <- v335                                                      │

00:01:37 #4808 [Verbose] > │         ()                                                                   │

00:01:37 #4809 [Verbose] > │     let v336 : ((float []) []) = Array.zeroCreate<(float [])>                │

00:01:37 #4810 [Verbose] > │ (System.Convert.ToInt32(v163))                                               │

00:01:37 #4811 [Verbose] > │     let v337 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4812 [Verbose] > │     while method5(v163, v337) do                                             │

00:01:37 #4813 [Verbose] > │         let v339 : uint64 = v337.l0                                          │

00:01:37 #4814 [Verbose] > │         let struct (v340 : string, v341 : string, v342 : string, v343 :      │

00:01:37 #4815 [Verbose] > │ (int64 [])) = v75.[int v339]                                                 │

00:01:37 #4816 [Verbose] > │         let v344 : (int64 -> float) = float                                  │

00:01:37 #4817 [Verbose] > │         let v345 : uint64 = System.Convert.ToUInt64 v343.Length              │

00:01:37 #4818 [Verbose] > │         let v346 : (float []) = Array.zeroCreate<float>                      │

00:01:37 #4819 [Verbose] > │ (System.Convert.ToInt32(v345))                                               │

00:01:37 #4820 [Verbose] > │         let v347 : Mut1 = {l0 = 0UL} : Mut1                                  │

00:01:37 #4821 [Verbose] > │         while method5(v345, v347) do                                         │

00:01:37 #4822 [Verbose] > │             let v349 : uint64 = v347.l0                                      │

00:01:37 #4823 [Verbose] > │             let v350 : int64 = v343.[int v349]                               │

00:01:37 #4824 [Verbose] > │             let v351 : float = v344 v350                                     │

00:01:37 #4825 [Verbose] > │             v346.[int v349] <- v351                                          │

00:01:37 #4826 [Verbose] > │             let v352 : uint64 = v349 + 1UL                                   │

00:01:37 #4827 [Verbose] > │             v347.l0 <- v352                                                  │

00:01:37 #4828 [Verbose] > │             ()                                                               │

00:01:37 #4829 [Verbose] > │         v336.[int v339] <- v346                                              │

00:01:37 #4830 [Verbose] > │         let v353 : uint64 = v339 + 1UL                                       │

00:01:37 #4831 [Verbose] > │         v337.l0 <- v353                                                      │

00:01:37 #4832 [Verbose] > │         ()                                                                   │

00:01:37 #4833 [Verbose] > │     let v354 : (((float []) []) -> ((float []) [])) = Array.transpose        │

00:01:37 #4834 [Verbose] > │     let v355 : ((float []) []) = v354 v336                                   │

00:01:37 #4835 [Verbose] > │     let v356 : uint64 = System.Convert.ToUInt64 v355.Length                  │

00:01:37 #4836 [Verbose] > │     let v357 : (float []) = Array.zeroCreate<float>                          │

00:01:37 #4837 [Verbose] > │ (System.Convert.ToInt32(v356))                                               │

00:01:37 #4838 [Verbose] > │     let v358 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4839 [Verbose] > │     while method5(v356, v358) do                                             │

00:01:37 #4840 [Verbose] > │         let v360 : uint64 = v358.l0                                          │

00:01:37 #4841 [Verbose] > │         let v361 : (float []) = v355.[int v360]                              │

00:01:37 #4842 [Verbose] > │         let v362 : ((float []) -> float) = Array.average                     │

00:01:37 #4843 [Verbose] > │         let v363 : float = v362 v361                                         │

00:01:37 #4844 [Verbose] > │         v357.[int v360] <- v363                                              │

00:01:37 #4845 [Verbose] > │         let v364 : uint64 = v360 + 1UL                                       │

00:01:37 #4846 [Verbose] > │         v358.l0 <- v364                                                      │

00:01:37 #4847 [Verbose] > │         ()                                                                   │

00:01:37 #4848 [Verbose] > │     let v365 : (float -> int64) = int64                                      │

00:01:37 #4849 [Verbose] > │     let v366 : uint64 = System.Convert.ToUInt64 v357.Length                  │

00:01:37 #4850 [Verbose] > │     let v367 : (int64 []) = Array.zeroCreate<int64>                          │

00:01:37 #4851 [Verbose] > │ (System.Convert.ToInt32(v366))                                               │

00:01:37 #4852 [Verbose] > │     let v368 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4853 [Verbose] > │     while method5(v366, v368) do                                             │

00:01:37 #4854 [Verbose] > │         let v370 : uint64 = v368.l0                                          │

00:01:37 #4855 [Verbose] > │         let v371 : float = v357.[int v370]                                   │

00:01:37 #4856 [Verbose] > │         let v372 : int64 = v365 v371                                         │

00:01:37 #4857 [Verbose] > │         v367.[int v370] <- v372                                              │

00:01:37 #4858 [Verbose] > │         let v373 : uint64 = v370 + 1UL                                       │

00:01:37 #4859 [Verbose] > │         v368.l0 <- v373                                                      │

00:01:37 #4860 [Verbose] > │         ()                                                                   │

00:01:37 #4861 [Verbose] > │     let v374 : uint64 = System.Convert.ToUInt64 v367.Length                  │

00:01:37 #4862 [Verbose] > │     let v375 : UH5 = UH5_0                                                   │

00:01:37 #4863 [Verbose] > │     let v376 : Mut3 = {l0 = 0UL; l1 = v375; l2 = 0} : Mut3                   │

00:01:37 #4864 [Verbose] > │     while method28(v374, v376) do                                            │

00:01:37 #4865 [Verbose] > │         let v378 : uint64 = v376.l0                                          │

00:01:37 #4866 [Verbose] > │         let struct (v379 : UH5, v380 : int32) = v376.l1, v376.l2             │

00:01:37 #4867 [Verbose] > │         let v381 : int64 = v367.[int v378]                                   │

00:01:37 #4868 [Verbose] > │         let v382 : int32 = v380 + 1                                          │

00:01:37 #4869 [Verbose] > │         let v383 : uint64 = v378 + 1UL                                       │

00:01:37 #4870 [Verbose] > │         let v384 : UH5 = UH5_1(v380, v381, v379)                             │

00:01:37 #4871 [Verbose] > │         v376.l0 <- v383                                                      │

00:01:37 #4872 [Verbose] > │         v376.l1 <- v384                                                      │

00:01:37 #4873 [Verbose] > │         v376.l2 <- v382                                                      │

00:01:37 #4874 [Verbose] > │         ()                                                                   │

00:01:37 #4875 [Verbose] > │     let struct (v385 : UH5, v386 : int32) = v376.l1, v376.l2                 │

00:01:37 #4876 [Verbose] > │     let v387 : UH5 = UH5_0                                                   │

00:01:37 #4877 [Verbose] > │     let v388 : UH5 = method29(v385, v387)                                    │

00:01:37 #4878 [Verbose] > │     let v389 : (struct (int32 * int64) []) = method39(v388)                  │

00:01:37 #4879 [Verbose] > │     System.Console.WriteLine v27                                             │

00:01:37 #4880 [Verbose] > │     let v390 : string = "Average Ranking  "                                  │

00:01:37 #4881 [Verbose] > │     System.Console.WriteLine v390                                            │

00:01:37 #4882 [Verbose] > │     let v391 : ((struct (int32 * int64) -> int64) -> ((struct (int32 *       │

00:01:37 #4883 [Verbose] > │ int64) []) -> (struct (int32 * int64) []))) = Array.sortBy                   │

00:01:37 #4884 [Verbose] > │     let v392 : (struct (int32 * int64) -> int64) = closure8()                │

00:01:37 #4885 [Verbose] > │     let v393 : ((struct (int32 * int64) []) -> (struct (int32 * int64) []))  │

00:01:37 #4886 [Verbose] > │ = v391 v392                                                                  │

00:01:37 #4887 [Verbose] > │     let v394 : (struct (int32 * int64) []) = v393 v389                       │

00:01:37 #4888 [Verbose] > │     let v395 : uint64 = System.Convert.ToUInt64 v394.Length                  │

00:01:37 #4889 [Verbose] > │     let v396 : Mut1 = {l0 = 0UL} : Mut1                                      │

00:01:37 #4890 [Verbose] > │     while method5(v395, v396) do                                             │

00:01:37 #4891 [Verbose] > │         let v398 : uint64 = v396.l0                                          │

00:01:37 #4892 [Verbose] > │         let struct (v399 : int32, v400 : int64) = v394.[int v398]            │

00:01:37 #4893 [Verbose] > │         let v401 : string = $"Test case %d{v399 + 1}. Average Time: %A{v400} │

00:01:37 #4894 [Verbose] > │ "                                                                            │

00:01:37 #4895 [Verbose] > │         System.Console.WriteLine v401                                        │

00:01:37 #4896 [Verbose] > │         let v402 : uint64 = v398 + 1UL                                       │

00:01:37 #4897 [Verbose] > │         v396.l0 <- v402                                                      │

00:01:37 #4898 [Verbose] > │         ()                                                                   │

00:01:37 #4899 [Verbose] > │     ()                                                                       │

00:01:37 #4900 [Verbose] > │ method0()                                                                    │

00:01:37 #4901 [Verbose] > │                                                                              │

00:01:37 #4902 [Verbose] > │                                                                              │

00:01:37 #4903 [Verbose] > │                                                                              │

00:01:37 #4904 [Verbose] > │ Test: v25                                                                    │

00:01:37 #4905 [Verbose] > │                                                                              │

00:01:37 #4906 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                            │

00:01:37 #4907 [Verbose] > │ Test case 1. semi_open_1. Time: 597                                          │

00:01:37 #4908 [Verbose] > │ Test case 2. closed_1. Time: 597                                             │

00:01:37 #4909 [Verbose] > │ Test case 3. semi_open_2. Time: 497                                          │

00:01:37 #4910 [Verbose] > │ Test case 4. closed_2. Time: 612                                             │

00:01:37 #4911 [Verbose] > │                                                                              │

00:01:37 #4912 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                            │

00:01:37 #4913 [Verbose] > │ Test case 1. semi_open_1. Time: 527                                          │

00:01:37 #4914 [Verbose] > │ Test case 2. closed_1. Time: 494                                             │

00:01:37 #4915 [Verbose] > │ Test case 3. semi_open_2. Time: 532                                          │

00:01:37 #4916 [Verbose] > │ Test case 4. closed_2. Time: 508                                             │

00:01:37 #4917 [Verbose] > │                                                                              │

00:01:37 #4918 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                           │

00:01:37 #4919 [Verbose] > │ Test case 1. semi_open_1. Time: 496                                          │

00:01:37 #4920 [Verbose] > │ Test case 2. closed_1. Time: 496                                             │

00:01:37 #4921 [Verbose] > │ Test case 3. semi_open_2. Time: 509                                          │

00:01:37 #4922 [Verbose] > │ Test case 4. closed_2. Time: 502                                             │

00:01:37 #4923 [Verbose] > │                                                                              │

00:01:37 #4924 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                           │

00:01:37 #4925 [Verbose] > │ Test case 1. semi_open_1. Time: 487                                          │

00:01:37 #4926 [Verbose] > │ Test case 2. closed_1. Time: 496                                             │

00:01:37 #4927 [Verbose] > │ Test case 3. semi_open_2. Time: 483                                          │

00:01:37 #4928 [Verbose] > │ Test case 4. closed_2. Time: 501                                             │

00:01:37 #4929 [Verbose] > │                                                                              │

00:01:37 #4930 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16;   │

00:01:37 #4931 [Verbose] > │ 17; 18; 19; 20;                                                              │

00:01:37 #4932 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │

00:01:37 #4933 [Verbose] > │ 37; 38;                                                                      │

00:01:37 #4934 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │

00:01:37 #4935 [Verbose] > │ 55; 56;                                                                      │

00:01:37 #4936 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │

00:01:37 #4937 [Verbose] > │ 73; 74;                                                                      │

00:01:37 #4938 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │

00:01:37 #4939 [Verbose] > │ 91; 92;                                                                      │

00:01:37 #4940 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)                        │

00:01:37 #4941 [Verbose] > │ Test case 1. semi_open_1. Time: 505                                          │

00:01:37 #4942 [Verbose] > │ Test case 2. closed_1. Time: 542                                             │

00:01:37 #4943 [Verbose] > │ Test case 3. semi_open_2. Time: 562                                          │

00:01:37 #4944 [Verbose] > │ Test case 4. closed_2. Time: 531                                             │

00:01:37 #4945 [Verbose] > │                                                                              │

00:01:37 #4946 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                            │

00:01:37 #4947 [Verbose] > │ Test case 1. semi_open_1. Time: 496                                          │

00:01:37 #4948 [Verbose] > │ Test case 2. closed_1. Time: 485                                             │

00:01:37 #4949 [Verbose] > │ Test case 3. semi_open_2. Time: 489                                          │

00:01:37 #4950 [Verbose] > │ Test case 4. closed_2. Time: 488                                             │

00:01:37 #4951 [Verbose] > │                                                                              │

00:01:37 #4952 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                            │

00:01:37 #4953 [Verbose] > │ Test case 1. semi_open_1. Time: 499                                          │

00:01:37 #4954 [Verbose] > │ Test case 2. closed_1. Time: 498                                             │

00:01:37 #4955 [Verbose] > │ Test case 3. semi_open_2. Time: 519                                          │

00:01:37 #4956 [Verbose] > │ Test case 4. closed_2. Time: 496                                             │

00:01:37 #4957 [Verbose] > │                                                                              │

00:01:37 #4958 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                           │

00:01:37 #4959 [Verbose] > │ Test case 1. semi_open_1. Time: 502                                          │

00:01:37 #4960 [Verbose] > │ Test case 2. closed_1. Time: 516                                             │

00:01:37 #4961 [Verbose] > │ Test case 3. semi_open_2. Time: 473                                          │

00:01:37 #4962 [Verbose] > │ Test case 4. closed_2. Time: 484                                             │

00:01:37 #4963 [Verbose] > │                                                                              │

00:01:37 #4964 [Verbose] > │ Solution: struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                           │

00:01:37 #4965 [Verbose] > │ Test case 1. semi_open_1. Time: 482                                          │

00:01:37 #4966 [Verbose] > │ Test case 2. closed_1. Time: 556                                             │

00:01:37 #4967 [Verbose] > │ Test case 3. semi_open_2. Time: 579                                          │

00:01:37 #4968 [Verbose] > │ Test case 4. closed_2. Time: 484                                             │

00:01:37 #4969 [Verbose] > │                                                                              │

00:01:37 #4970 [Verbose] > │ Solution: struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16;   │

00:01:37 #4971 [Verbose] > │ 17; 18; 19; 20;                                                              │

00:01:37 #4972 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │

00:01:37 #4973 [Verbose] > │ 37; 38;                                                                      │

00:01:37 #4974 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │

00:01:37 #4975 [Verbose] > │ 55; 56;                                                                      │

00:01:37 #4976 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │

00:01:37 #4977 [Verbose] > │ 73; 74;                                                                      │

00:01:37 #4978 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │

00:01:37 #4979 [Verbose] > │ 91; 92;                                                                      │

00:01:37 #4980 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)                        │

00:01:37 #4981 [Verbose] > │ Test case 1. semi_open_1. Time: 503                                          │

00:01:37 #4982 [Verbose] > │ Test case 2. closed_1. Time: 526                                             │

00:01:37 #4983 [Verbose] > │ Test case 3. semi_open_2. Time: 524                                          │

00:01:37 #4984 [Verbose] > │ Test case 4. closed_2. Time: 506                                             │

00:01:37 #4985 [Verbose] > │                                                                              │

00:01:37 #4986 [Verbose] > │ Input                                                                        │

00:01:37 #4987 [Verbose] > │                                                                              │

00:01:37 #4988 [Verbose] > │                                                                              │

00:01:37 #4989 [Verbose] > │                                                                              │

00:01:37 #4990 [Verbose] > │  	| Expected	| Result  	| Best                                                     │

00:01:37 #4991 [Verbose] > │ ---                                                                          │

00:01:37 #4992 [Verbose] > │                                                                              │

00:01:37 #4993 [Verbose] > │                                                                              │

00:01:37 #4994 [Verbose] > │                                                                              │

00:01:37 #4995 [Verbose] > │    	| ---     	| ---     	| ---                                                    │

00:01:37 #4996 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                                      │

00:01:37 #4997 [Verbose] > │                                                                              │

00:01:37 #4998 [Verbose] > │                                                                              │

00:01:37 #4999 [Verbose] > │                                                                              │

00:01:37 #5000 [Verbose] > │ | US0_0 3 	| US0_0 3 	| struct (3L, 497L)                                        │

00:01:37 #5001 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                                      │

00:01:37 #5002 [Verbose] > │                                                                              │

00:01:37 #5003 [Verbose] > │                                                                              │

00:01:37 #5004 [Verbose] > │                                                                              │

00:01:37 #5005 [Verbose] > │ | US0_0 0 	| US0_0 0 	| struct (2L, 494L)                                        │

00:01:37 #5006 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                                     │

00:01:37 #5007 [Verbose] > │                                                                              │

00:01:37 #5008 [Verbose] > │                                                                              │

00:01:37 #5009 [Verbose] > │                                                                              │

00:01:37 #5010 [Verbose] > │ | US0_0 6 	| US0_0 6 	| struct (1L, 496L)                                        │

00:01:37 #5011 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                                     │

00:01:37 #5012 [Verbose] > │                                                                              │

00:01:37 #5013 [Verbose] > │                                                                              │

00:01:37 #5014 [Verbose] > │                                                                              │

00:01:37 #5015 [Verbose] > │ | US0_1   	| US0_1   	| struct (3L, 483L)                                        │

00:01:37 #5016 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │

00:01:37 #5017 [Verbose] > │ 20;                                                                          │

00:01:37 #5018 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │

00:01:37 #5019 [Verbose] > │ 37; 38;                                                                      │

00:01:37 #5020 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │

00:01:37 #5021 [Verbose] > │ 55; 56;                                                                      │

00:01:37 #5022 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │

00:01:37 #5023 [Verbose] > │ 73; 74;                                                                      │

00:01:37 #5024 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │

00:01:37 #5025 [Verbose] > │ 91; 92;                                                                      │

00:01:37 #5026 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)	| US0_0 59	| US0_0 59	|      │

00:01:37 #5027 [Verbose] > │ struct (1L, 505L)                                                            │

00:01:37 #5028 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)                                      │

00:01:37 #5029 [Verbose] > │                                                                              │

00:01:37 #5030 [Verbose] > │                                                                              │

00:01:37 #5031 [Verbose] > │                                                                              │

00:01:37 #5032 [Verbose] > │ | US0_0 3 	| US0_0 3 	| struct (2L, 485L)                                        │

00:01:37 #5033 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)                                      │

00:01:37 #5034 [Verbose] > │                                                                              │

00:01:37 #5035 [Verbose] > │                                                                              │

00:01:37 #5036 [Verbose] > │                                                                              │

00:01:37 #5037 [Verbose] > │ | US0_0 0 	| US0_0 0 	| struct (4L, 496L)                                        │

00:01:37 #5038 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)                                     │

00:01:37 #5039 [Verbose] > │                                                                              │

00:01:37 #5040 [Verbose] > │                                                                              │

00:01:37 #5041 [Verbose] > │                                                                              │

00:01:37 #5042 [Verbose] > │ | US0_0 6 	| US0_0 6 	| struct (3L, 473L)                                        │

00:01:37 #5043 [Verbose] > │ struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)                                     │

00:01:37 #5044 [Verbose] > │                                                                              │

00:01:37 #5045 [Verbose] > │                                                                              │

00:01:37 #5046 [Verbose] > │                                                                              │

00:01:37 #5047 [Verbose] > │ | US0_1   	| US0_1   	| struct (1L, 482L)                                        │

00:01:37 #5048 [Verbose] > │ struct ([|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; │

00:01:37 #5049 [Verbose] > │ 20;                                                                          │

00:01:37 #5050 [Verbose] > │           21; 22; 23; 24; 25; 26; 27; 28; 29; 30; 31; 32; 33; 34; 35; 36;    │

00:01:37 #5051 [Verbose] > │ 37; 38;                                                                      │

00:01:37 #5052 [Verbose] > │           39; 40; 41; 42; 43; 44; 45; 46; 47; 48; 49; 50; 51; 52; 53; 54;    │

00:01:37 #5053 [Verbose] > │ 55; 56;                                                                      │

00:01:37 #5054 [Verbose] > │           57; 58; 59; 60; 61; 62; 63; 64; 65; 66; 67; 68; 69; 70; 71; 72;    │

00:01:37 #5055 [Verbose] > │ 73; 74;                                                                      │

00:01:37 #5056 [Verbose] > │           75; 76; 77; 78; 79; 80; 81; 82; 83; 84; 85; 86; 87; 88; 89; 90;    │

00:01:37 #5057 [Verbose] > │ 91; 92;                                                                      │

00:01:37 #5058 [Verbose] > │           93; 94; 95; 96; 97; 98; 99; 100|], 60, 100)	| US0_0 59	| US0_0 59	|      │

00:01:37 #5059 [Verbose] > │ struct (1L, 503L)                                                            │

00:01:37 #5060 [Verbose] > │                                                                              │

00:01:37 #5061 [Verbose] > │ Average Ranking                                                              │

00:01:37 #5062 [Verbose] > │ Test case 1. Average Time: 509L                                              │

00:01:37 #5063 [Verbose] > │ Test case 4. Average Time: 511L                                              │

00:01:37 #5064 [Verbose] > │ Test case 3. Average Time: 516L                                              │

00:01:37 #5065 [Verbose] > │ Test case 2. Average Time: 520L                                              │

00:01:37 #5066 [Verbose] > │                                                                              │

00:01:37 #5067 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #5068 [Verbose] >

00:01:37 #5069 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:37 #5070 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:37 #5071 [Verbose] > │ ## returnLettersWithOddCountTests                                            │

00:01:37 #5072 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #5073 [Verbose] >

00:01:37 #5074 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:37 #5075 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:37 #5076 [Verbose] > │ Test: ReturnLettersWithOddCount                                              │

00:01:37 #5077 [Verbose] > │                                                                              │

00:01:37 #5078 [Verbose] > │ Solution: 1                                                                  │

00:01:37 #5079 [Verbose] > │ Test case 1. A. Time: 645L                                                   │

00:01:37 #5080 [Verbose] > │                                                                              │

00:01:37 #5081 [Verbose] > │ Solution: 2                                                                  │

00:01:37 #5082 [Verbose] > │ Test case 1. A. Time: 663L                                                   │

00:01:37 #5083 [Verbose] > │                                                                              │

00:01:37 #5084 [Verbose] > │ Solution: 3                                                                  │

00:01:37 #5085 [Verbose] > │ Test case 1. A. Time: 680L                                                   │

00:01:37 #5086 [Verbose] > │                                                                              │

00:01:37 #5087 [Verbose] > │ Solution: 9                                                                  │

00:01:37 #5088 [Verbose] > │ Test case 1. A. Time: 730L                                                   │

00:01:37 #5089 [Verbose] > │                                                                              │

00:01:37 #5090 [Verbose] > │ Solution: 10                                                                 │

00:01:37 #5091 [Verbose] > │ Test case 1. A. Time: 815L                                                   │

00:01:37 #5092 [Verbose] > │                                                                              │

00:01:37 #5093 [Verbose] > │ Input   | Expected        | Result          | Best                           │

00:01:37 #5094 [Verbose] > │ ---     | ---             | ---             | ---                            │

00:01:37 #5095 [Verbose] > │ 1       | a               | a               | (1, 645)                       │

00:01:37 #5096 [Verbose] > │ 2       | ba              | ba              | (1, 663)                       │

00:01:37 #5097 [Verbose] > │ 3       | aaa             | aaa             | (1, 680)                       │

00:01:37 #5098 [Verbose] > │ 9       | aaaaaaaaa       | aaaaaaaaa       | (1, 730)                       │

00:01:37 #5099 [Verbose] > │ 10      | baaaaaaaaa      | baaaaaaaaa      | (1, 815)                       │

00:01:37 #5100 [Verbose] > │                                                                              │

00:01:37 #5101 [Verbose] > │ Averages                                                                     │

00:01:37 #5102 [Verbose] > │ Test case 1. Average Time: 706L                                              │

00:01:37 #5103 [Verbose] > │                                                                              │

00:01:37 #5104 [Verbose] > │ Ranking                                                                      │

00:01:37 #5105 [Verbose] > │ Test case 1. Average Time: 706L                                              │

00:01:37 #5106 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:37 #5107 [Verbose] >

00:01:37 #5108 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:37 #5109 [Verbose] > //// test

00:01:37 #5110 [Verbose] >

00:01:37 #5111 [Verbose] > let solutions = [[

00:01:37 #5112 [Verbose] >     "A",

00:01:37 #5113 [Verbose] >     fun n ->

00:01:37 #5114 [Verbose] >         let mutable _builder = StringBuilder (new string('a', n))

00:01:37 #5115 [Verbose] >         if n % 2 = 0 then

00:01:37 #5116 [Verbose] >             _builder.[[0]] <- 'b'

00:01:37 #5117 [Verbose] >

00:01:37 #5118 [Verbose] >         _builder.ToString ()

00:01:37 #5119 [Verbose] > ]]

00:01:37 #5120 [Verbose] > let testCases = seq {

00:01:37 #5121 [Verbose] >     1, "a"

00:01:37 #5122 [Verbose] >     2, "ba"

00:01:37 #5123 [Verbose] >     3, "aaa"

00:01:37 #5124 [Verbose] >     9, "aaaaaaaaa"

00:01:37 #5125 [Verbose] >     10, "baaaaaaaaa"

00:01:37 #5126 [Verbose] > }

00:01:37 #5127 [Verbose] > let rec returnLettersWithOddCountTests =

00:01:37 #5128 [Verbose] >     runAll (nameof returnLettersWithOddCountTests) _count solutions testCases

00:01:37 #5129 [Verbose] > returnLettersWithOddCountTests

00:01:37 #5130 [Verbose] > |> sortResultList

00:01:38 #5131 [Verbose] >

00:01:38 #5132 [Verbose] > ╭─[ 761.11ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #5133 [Verbose] > │                                                                              │

00:01:38 #5134 [Verbose] > │                                                                              │

00:01:38 #5135 [Verbose] > │ Test: returnLettersWithOddCountTests                                         │

00:01:38 #5136 [Verbose] > │                                                                              │

00:01:38 #5137 [Verbose] > │ Solution: 1                                                                  │

00:01:38 #5138 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5139 [Verbose] > │                                                                              │

00:01:38 #5140 [Verbose] > │ Solution: 2                                                                  │

00:01:38 #5141 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5142 [Verbose] > │                                                                              │

00:01:38 #5143 [Verbose] > │ Solution: 3                                                                  │

00:01:38 #5144 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5145 [Verbose] > │                                                                              │

00:01:38 #5146 [Verbose] > │ Solution: 9                                                                  │

00:01:38 #5147 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5148 [Verbose] > │                                                                              │

00:01:38 #5149 [Verbose] > │ Solution: 10                                                                 │

00:01:38 #5150 [Verbose] > │ Test case 1. A. Time: 2L                                                     │

00:01:38 #5151 [Verbose] > │                                                                              │

00:01:38 #5152 [Verbose] > │ Input	| Expected  	| Result    	| Best                                             │

00:01:38 #5153 [Verbose] > │ ---  	| ---       	| ---       	| ---                                              │

00:01:38 #5154 [Verbose] > │ 1    	| a         	| a         	| (1, 0)                                           │

00:01:38 #5155 [Verbose] > │ 2    	| ba        	| ba        	| (1, 0)                                           │

00:01:38 #5156 [Verbose] > │ 3    	| aaa       	| aaa       	| (1, 0)                                           │

00:01:38 #5157 [Verbose] > │ 9    	| aaaaaaaaa 	| aaaaaaaaa 	| (1, 0)                                           │

00:01:38 #5158 [Verbose] > │ 10   	| baaaaaaaaa	| baaaaaaaaa	| (1, 2)                                           │

00:01:38 #5159 [Verbose] > │                                                                              │

00:01:38 #5160 [Verbose] > │ Average Ranking                                                              │

00:01:38 #5161 [Verbose] > │ Test case 1. Average Time: 0L                                                │

00:01:38 #5162 [Verbose] > │                                                                              │

00:01:38 #5163 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #5164 [Verbose] >

00:01:38 #5165 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #5166 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #5167 [Verbose] > │ ## hasAnyPairCloseToEachotherTests                                           │

00:01:38 #5168 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #5169 [Verbose] >

00:01:38 #5170 [Verbose] > ── markdown ────────────────────────────────────────────────────────────────────

00:01:38 #5171 [Verbose] > ╭──────────────────────────────────────────────────────────────────────────────╮

00:01:38 #5172 [Verbose] > │ Test: HasAnyPairCloseToEachother                                             │

00:01:38 #5173 [Verbose] > │                                                                              │

00:01:38 #5174 [Verbose] > │ Solution: 0                                                                  │

00:01:38 #5175 [Verbose] > │ Test case 1. A. Time: 137L                                                   │

00:01:38 #5176 [Verbose] > │                                                                              │

00:01:38 #5177 [Verbose] > │ Solution: 1,2                                                                │

00:01:38 #5178 [Verbose] > │ Test case 1. A. Time: 186L                                                   │

00:01:38 #5179 [Verbose] > │                                                                              │

00:01:38 #5180 [Verbose] > │ Solution: 3,5                                                                │

00:01:38 #5181 [Verbose] > │ Test case 1. A. Time: 206L                                                   │

00:01:38 #5182 [Verbose] > │                                                                              │

00:01:38 #5183 [Verbose] > │ Solution: 3,4,6                                                              │

00:01:38 #5184 [Verbose] > │ Test case 1. A. Time: 149L                                                   │

00:01:38 #5185 [Verbose] > │                                                                              │

00:01:38 #5186 [Verbose] > │ Solution: 2,4,6                                                              │

00:01:38 #5187 [Verbose] > │ Test case 1. A. Time: 150L                                                   │

00:01:38 #5188 [Verbose] > │                                                                              │

00:01:38 #5189 [Verbose] > │ Input   | Expected        | Result  | Best                                   │

00:01:38 #5190 [Verbose] > │ ---     | ---             | ---     | ---                                    │

00:01:38 #5191 [Verbose] > │ 0       | False           | False   | (1, 137)                               │

00:01:38 #5192 [Verbose] > │ 1,2     | True            | True    | (1, 186)                               │

00:01:38 #5193 [Verbose] > │ 3,5     | False           | False   | (1, 206)                               │

00:01:38 #5194 [Verbose] > │ 3,4,6   | True            | True    | (1, 149)                               │

00:01:38 #5195 [Verbose] > │ 2,4,6   | False           | False   | (1, 150)                               │

00:01:38 #5196 [Verbose] > │                                                                              │

00:01:38 #5197 [Verbose] > │ Averages                                                                     │

00:01:38 #5198 [Verbose] > │ Test case 1. Average Time: 165L                                              │

00:01:38 #5199 [Verbose] > │                                                                              │

00:01:38 #5200 [Verbose] > │ Ranking                                                                      │

00:01:38 #5201 [Verbose] > │ Test case 1. Average Time: 165L                                              │

00:01:38 #5202 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #5203 [Verbose] >

00:01:38 #5204 [Verbose] > ── fsharp ──────────────────────────────────────────────────────────────────────

00:01:38 #5205 [Verbose] > //// test

00:01:38 #5206 [Verbose] >

00:01:38 #5207 [Verbose] > let solutions = [[

00:01:38 #5208 [Verbose] >     "A",

00:01:38 #5209 [Verbose] >     fun (a: int[[]]) ->

00:01:38 #5210 [Verbose] >         let indices = System.Linq.Enumerable.Range(0, a.Length) |>

00:01:38 #5211 [Verbose] > System.Linq.Enumerable.ToArray

00:01:38 #5212 [Verbose] >         System.Array.Sort (a, indices)

00:01:38 #5213 [Verbose] >

00:01:38 #5214 [Verbose] >         indices

00:01:38 #5215 [Verbose] >         |> Array.take (a.Length - 1)

00:01:38 #5216 [Verbose] >         |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)

00:01:38 #5217 [Verbose] > ]]

00:01:38 #5218 [Verbose] > let testCases = seq {

00:01:38 #5219 [Verbose] >     [[| 0 |]], false

00:01:38 #5220 [Verbose] >     [[| 1; 2 |]], true

00:01:38 #5221 [Verbose] >     [[| 3; 5 |]], false

00:01:38 #5222 [Verbose] >     [[| 3; 4; 6 |]], true

00:01:38 #5223 [Verbose] >     [[| 2; 4; 6 |]], false

00:01:38 #5224 [Verbose] > }

00:01:38 #5225 [Verbose] > let rec hasAnyPairCloseToEachotherTests =

00:01:38 #5226 [Verbose] >     runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases

00:01:38 #5227 [Verbose] > hasAnyPairCloseToEachotherTests

00:01:38 #5228 [Verbose] > |> sortResultList

00:01:38 #5229 [Verbose] >

00:01:38 #5230 [Verbose] > ╭─[ 762.76ms - stdout ]────────────────────────────────────────────────────────╮

00:01:38 #5231 [Verbose] > │                                                                              │

00:01:38 #5232 [Verbose] > │                                                                              │

00:01:38 #5233 [Verbose] > │ Test: hasAnyPairCloseToEachotherTests                                        │

00:01:38 #5234 [Verbose] > │                                                                              │

00:01:38 #5235 [Verbose] > │ Solution: 0                                                                  │

00:01:38 #5236 [Verbose] > │ Test case 1. A. Time: 2L                                                     │

00:01:38 #5237 [Verbose] > │                                                                              │

00:01:38 #5238 [Verbose] > │ Solution: 1,2                                                                │

00:01:38 #5239 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5240 [Verbose] > │                                                                              │

00:01:38 #5241 [Verbose] > │ Solution: 3,5                                                                │

00:01:38 #5242 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5243 [Verbose] > │                                                                              │

00:01:38 #5244 [Verbose] > │ Solution: 3,4,6                                                              │

00:01:38 #5245 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5246 [Verbose] > │                                                                              │

00:01:38 #5247 [Verbose] > │ Solution: 2,4,6                                                              │

00:01:38 #5248 [Verbose] > │ Test case 1. A. Time: 0L                                                     │

00:01:38 #5249 [Verbose] > │                                                                              │

00:01:38 #5250 [Verbose] > │ Input	| Expected	| Result	| Best                                                   │

00:01:38 #5251 [Verbose] > │ ---  	| ---     	| ---   	| ---                                                    │

00:01:38 #5252 [Verbose] > │ 0    	| False   	| False 	| (1, 2)                                                 │

00:01:38 #5253 [Verbose] > │ 1,2  	| True    	| True  	| (1, 0)                                                 │

00:01:38 #5254 [Verbose] > │ 3,5  	| False   	| False 	| (1, 0)                                                 │

00:01:38 #5255 [Verbose] > │ 3,4,6	| True    	| True  	| (1, 0)                                                 │

00:01:38 #5256 [Verbose] > │ 2,4,6	| False   	| False 	| (1, 0)                                                 │

00:01:38 #5257 [Verbose] > │                                                                              │

00:01:38 #5258 [Verbose] > │ Average Ranking                                                              │

00:01:38 #5259 [Verbose] > │ Test case 1. Average Time: 0L                                                │

00:01:38 #5260 [Verbose] > │                                                                              │

00:01:38 #5261 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:38 #5262 [Verbose] >

00:01:38 #5263 [Verbose] > ── spiral ──────────────────────────────────────────────────────────────────────

00:01:38 #5264 [Verbose] > // // test

00:01:38 #5265 [Verbose] >

00:01:38 #5266 [Verbose] > ()

00:01:39 #5267 [Verbose] > Building c:\Users\i574n\AppData\Local\Temp\!dotnet-repl\20240404-1321-4184-8424-88a54790f715\main.spi

00:01:39 #5268 [Verbose] >

00:01:39 #5269 [Verbose] > ╭─[ 251.53ms - stdout ]────────────────────────────────────────────────────────╮

00:01:39 #5270 [Verbose] > │ let rec method0 () : unit =                                                  │

00:01:39 #5271 [Verbose] > │     ()                                                                       │

00:01:39 #5272 [Verbose] > │ method0()                                                                    │

00:01:39 #5273 [Verbose] > │                                                                              │

00:01:39 #5274 [Verbose] > │                                                                              │

00:01:39 #5275 [Verbose] > ╰──────────────────────────────────────────────────────────────────────────────╯

00:01:41 #5276 [Verbose] > [NbConvertApp] Converting notebook Perf.dib.ipynb to html

00:01:41 #5277 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

00:01:41 #5278 [Verbose] >   validate(nb)

00:01:41 #5279 [Verbose] > C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

00:01:41 #5280 [Verbose] >   return _pygments_highlight(

00:01:42 #5281 [Verbose] > [NbConvertApp] Writing 567322 bytes to Perf.dib.html

00:01:43 #5282 [Debug] executeAsync / exitCode: 0 / output.Length: 369270

00:01:43 #5283 [Debug] main / executeCommand / exitCode: 0

00:01:45 #5284 [Debug] runWithTimeoutChildAsync / timeout: 2000

00:00:00 #1 [Debug] writeDibCode / output: Fs / path: Perf.dib

00:00:00 #2 [Debug] parseDibCode / output: Fs / file: Perf.dib

In [ ]:
{ . "$ScriptDir/../apps/dir-tree-html/build.ps1" } | Invoke-Block

── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ # DirTreeHtml (Polyglot)                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/fsharp/Notebooks.dib

#!import ../../lib/fsharp/Testing.dib



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.A

spNetCore.Html.Abstractions.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.Formatting.dll"

open System

open System.IO

open System.Text

open Microsoft.DotNet.Interactive.Formatting



── fsharp - import ─────────────────────────────────────────────────────────────

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.FSharp.dll"

open Microsoft.DotNet.Interactive.FSharp.FSharpKernelHelpers

#r 

"C:/Users/i574n/.nuget/packages/dotnet-repl/0.1.204/tools/net7.0/any/Microsoft.D

otNet.Interactive.dll"

open type Microsoft.DotNet.Interactive.Kernel



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



Formatter.ListExpansionLimit <- 100



── fsharp - import ─────────────────────────────────────────────────────────────

#r @"../../../../../../../.nuget/packages/expecto/10.2.1/lib/net6.0/Expecto.dll"



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



type AssertExceptionFormatter (ex) =

    member _.Text =

        ex.ToString()

            .Replace("32m", "<span style=\"color: green;\">")

            .Replace("36m", "</span>")

            .Replace("31m", "<span style=\"color: red;\">")

            .Replace("\n", "<br/>\n")





Formatter.Register<AssertExceptionFormatter> ((fun (x : 

AssertExceptionFormatter) -> x.Text), "text/html")



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __expect fn log expected actual =

    if log then printfn $"{actual.ToDisplayString ()}"

    try

        "Testing.__expect" |> fn actual expected

    with :? Expecto.AssertException as ex ->

        AssertExceptionFormatter(ex).Display () |> ignore

        failwith (ex.GetType().FullName)



let inline __contains log expected actual = __expect Expecto.Expect.contains log

expected actual

let inline _contains expected actual = __contains true expected actual



let inline __assertEqual log expected actual = __expect Expecto.Expect.equal log

expected actual

let inline _assertEqual expected actual = __assertEqual true expected actual



let inline __isGreaterThan log expected actual = __expect 

Expecto.Expect.isGreaterThan log ex...



── fsharp - import ─────────────────────────────────────────────────────────────

//// test



let inline __isBetween log a b actual =

    let inline isBetween actual (a, b) _ =

        __isGreaterThanOrEqual log a actual

        __isLessThanOrEqual log b actual

    __expect isBetween log (a, b) actual

let inline _isBetween a b actual = __isBetween true a b actual



── fsharp ──────────────────────────────────────────────────────────────────────

#r 

@"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan

dard2.1/FSharp.Control.AsyncSeq.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.

0/System.Reactive.dll"

#r 

@"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib/

netstandard2.0/System.Reactive.Linq.dll"

#r 

@"../../../../../../../.nuget/packages/argu/6.2.2/lib/netstandard2.0/Argu.dll"

#r 

@"../../../../../../../.nuget/packages/system.commandline/2.0.0-beta4.22272.1/li

b/net6.0/System.CommandLine.dll"

#r 

@"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal

co.Markup.dll"



── fsharp ──────────────────────────────────────────────────────────────────────

#!import ../../lib/spiral/common.fsx

#!import ../../lib/spiral/sm.fsx

#!import ../../lib/spiral/date_time.fsx

#!import ../../lib/spiral/file_system.fsx

#!import ../../lib/spiral/lib.fsx

#!import ../../lib/fsharp/Common.fs

#!import ../../lib/fsharp/CommonFSharp.fs

#!import ../../lib/fsharp/Async.fs

#!import ../../lib/fsharp/AsyncSeq.fs

#!import ../../lib/fsharp/Networking.fs

#!import ../../lib/fsharp/Runtime.fs

#!import ../../lib/fsharp/FileSystem.fs



── fsharp - import ─────────────────────────────────────────────────────────────

type [[<Struct>]] US0 =

    | US0_0

    | US0_1

    | US0_2

    | US0_3

and [[<Struct>]] US1 =

    | US1_0 of f0_0 : US0

    | US1_1 of f1_0 : US0

and [[<Struct>]] US2 =

    | US2_0

    | US2_1

and [[<Struct>]] US3 =

    | US3_0 of f0_0 : US2

    | US3_1

let rec closure0 () (v0 : (unit -> unit)) : System.IDisposable =

    let v1 : System.IDisposable option = None

    let mutable _v1 = v1

    #if FABLE_COMPILER_RUST && !WASM && !CONTRACT

    let v2 : US0 = US0_0

    let v3 : US1 = US1_0(v2)

    let v4 : string = $"new_disposable / target: {v3}"

    let v5 : System.IDisposable = failwith<System.IDisposable> v4

    v5

    #endif

    #if FABLE_COMPILER_RUST && WASM

    let v6 : US0 = US0_2

    let v7 : US1 = US1_0(v6)

    let v8 : string = $"new_dispos...



── fsharp - import ─────────────────────────────────────────────────────────────

type Mut0 = {mutable l0 : int32; mutable l1 : string}

and Mut1 = {mutable l0 : int32}

let rec closure1 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.Contains v0

    v2

and closure0 () (v0 : string) : (string -> bool) =

    closure1(v0)

and closure3 (v0 : string) (v1 : string) : bool =

    let v2 : bool = v1.EndsWith v0

    v2

and closure2 () (v0 : string) : (string -> bool) =

    closure3(v0)

and closure6 (v0 : int32, v1 : char) (v2 : string) : string =

    let v3 : string = v2.PadLeft (v0, v1)

    v3

and closure5 (v0 : int32) (v1 : char) : (string -> string) =

    closure6(v0, v1)

and closure4 () (v0 : int32) : (char -> (string -> string)) =

    closure5(v0)

and closure8 (v0 : int32) (v1 : string) : string =

    let v2 : stri...



── fsharp - import ─────────────────────────────────────────────────────────────

let rec closure1 (v0 : System.Guid) (v1 : System.DateTime) : System.Guid =

    let v2 : (System.Guid -> string) = _.ToString()

    let v3 : string = v2 v0

    let v4 : string = v1.ToString "yyyyMMdd-HHmm-ssff-ffff-f"

    let v5 : System.Guid = System.Guid $"{v4}{v3.[[v4.Length..]]}"

    v5

and closure0 () (v0 : System.Guid) : (System.DateTime -> System.Guid) =

    closure1(v0)

and closure5 (v0 : string, v1 : string) (v2 : string) : string =

    let v3 : string = v2.Replace (v0, v1)

    v3

and closure4 (v0 : string) (v1 : string) : (string -> string) =

    closure5(v0, v1)

and closure3 () (v0 : string) : (string -> (string -> string)) =

    closure4(v0)

and method0 () : (string -> (string -> (string -> string))) =

    closure3()

and closure2 (...



── fsharp - import ─────────────────────────────────────────────────────────────

#if FABLE_COMPILER // file_system.types

[[<Fable.Core.Erase; Fable.Core.Emit("str")>]] type Str = class end

[[<Fable.Core.Erase; Fable.Core.Emit("base64::DecodeError")>]] type 

base64_DecodeError = class end

[[<Fable.Core.Erase; Fable.Core.Emit("borsh::io::Error")>]] type borsh_io_Error 

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("js_sys::JsString")>]] type js_sys_JsString

= class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Error")>]] type 

serde_json_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_json::Value")>]] type 

serde_json_Value = class end

[[<Fable.Core.Erase; Fable.Core.Emit("serde_wasm_bindgen::Error")>]] type 

serde_wasm_bindgen_Error = class end

[[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsStr")>]] type std_ffi_O...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !WASM && !CONTRACT && !FABLE_COMPILER

module SpiralDateTime =

    let format x =

#if !INTERACTIVE

        Date_time.format x

#else

        format x

#endif



    let format_iso8601 x =

#if !INTERACTIVE

        Date_time.format_iso8601 x

#else

        format_iso8601 x

#endif



    let new_guid_from_date_time x =

#if !INTERACTIVE

        Date_time.new_guid_from_date_time x

#else

        new_guid_from_date_time x

#endif



#endif



module SpiralSm =

    let concat x =

#if !INTERACTIVE

        Sm.concat x

#else

        concat x

#endif



    let contains x =

#if !INTERACTIVE

        Sm.contains x

#else

        contains x

#endif



    let ellipsis x =

#if !INTERACTIVE

        Sm.ellipsis x

#else

        ellipsis x

#endif



    let ellipsis_end x =

#if...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Common =



#if !INTERACTIVE

    open Lib

#endif



    let nl = System.Environment.NewLine

    let q = @""""



    let inline cons head tail = head :: tail



    /// ## memoize



    let inline memoize fn =

        let result = lazy fn ()

        fun () -> result.Value



    /// ## TraceLevel



    type TraceLevel =

        | Verbose

        | Debug

        | Info

        | Warning

        | Critical



    let inline getLocals () = ""



    let mutable traceEnabled = true

    let mutable traceCount = 0

    let mutable traceLevel = Verbose

    let mutable traceDump = false



    let testTraceLevel level =

        traceEnabled && level >= traceLevel



    /// ## traceRaw



    let rec traceRaw level fn =

...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module CommonFSharp =



    open Common



    /// ## getUnionCaseName



    let inline getUnionCaseName<'T> (x: 'T) =

        match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with

        | case, _ -> case.Name





── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Async =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## choice



    let inline choice asyncs = async {

        let e = Event<_> ()

        use cts = new System.Threading.CancellationTokenSource ()

        let fn =

            asyncs

            |> Seq.map (fun a -> async {

                let! x = a

                e.Trigger x

            })

            |> Async.Parallel

            |> Async.Ignore

        Async.Start (fn, cts.Token)

        let! result = Async.AwaitEvent e.Publish

        cts.Cancel ()

        return result

    }



    /// ## map



    let inline map fn a = async {

        let! x = a

        return fn x

    }



    /// ## catch



    let inline catch a =

   ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module AsyncSeq =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## subscribeEvent



    let inline subscribeEvent (event: IEvent<'H, 'A>) map =

        let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, 

'A>(event.AddHandler, event.RemoveHandler)

        System.Reactive.Linq.Observable.Select (observable, fun event -> map 

event.EventArgs)

        |> FSharp.Control.AsyncSeq.ofObservableBuffered



    let subscribeToken (token : System.Threading.CancellationToken) =

        let tcs = new System.Threading.Tasks.TaskCompletionSource ()

        System.Action tcs.SetResult |> token.Register |> ignore

        let start = System.DateTime.Now.Ticks

        FSharp.Control.A...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Networking =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## testPortOpen



    let inline testPortOpen port = async {

        let! ct = Async.CancellationToken

        use client = new System.Net.Sockets.TcpClient ()

        try

            do! client.ConnectAsync ("127.0.0.1", port, ct) |> 

Async.awaitValueTaskUnit

            return true

        with ex ->

            trace Verbose (fun () -> $"testPortOpen / ex: {ex |> 

SpiralSm.format_exception}") getLocals

            return false

    }



    let inline testPortOpenTimeout timeout port = async {

        let! result =

            testPortOpen port

            |> Async.runWithTimeoutAsync timeout

        return

          ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module Runtime =



#if !INTERACTIVE

    open Lib

#endif



    open Common



    /// ## isWindows



    let isWindows =

        fun () ->

            System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform

                System.Runtime.InteropServices.OSPlatform.Windows

        |> memoize



    /// ## getExecutableSuffix



    let inline getExecutableSuffix () =

        if isWindows ()

        then ".exe"

        else ""



    /// ## splitCommand



    type private CommandParseStep =

        | Start

        | Path of quoted: bool

        | Arguments



    let splitCommand (command: string) =

        let rec loop (path, args) chars step =

            match chars, step with

            | ('"' | '\'') ...



── fsharp - import ─────────────────────────────────────────────────────────────

#if !INTERACTIVE

namespace Polyglot

#endif



module FileSystem =



#if !INTERACTIVE

    open Lib

#endif



    open Common

    open SpiralFileSystem.Operators



    /// ## readAllTextAsync



    let inline readAllTextAsync path =

        path |> System.IO.File.ReadAllTextAsync |> Async.AwaitTask



    /// ## fileExistsContent



    let inline fileExistsContent path content = async {

        if path |> System.IO.File.Exists |> not

        then return false

        else

            let! existingContent = path |> readAllTextAsync

            return content = existingContent

    }



    /// ## writeAllTextAsync



    let inline writeAllTextAsync path contents =

        System.IO.File.WriteAllTextAsync (path, contents) |> Async.AwaitTask



    /// ## write...



── fsharp ──────────────────────────────────────────────────────────────────────

#if !INTERACTIVE

open Lib

#endif



── fsharp ──────────────────────────────────────────────────────────────────────

open SpiralFileSystem.Operators

open Falco.Markup



── fsharp ──────────────────────────────────────────────────────────────────────

type FileSystemNode =

    | File of string * string * int64

    | Folder of string * string * FileSystemNode list

    | Root of FileSystemNode list



let rec scanDirectory isRoot (basePath : string) (path : string) =

    let relativePath =

        path

        |> SpiralSm.replace basePath ""

        |> SpiralSm.replace "\\" "/"

        |> SpiralSm.replace "//" "/"

        |> SpiralSm.trim_start [[| '/' |]]



    let directories =

        path

        |> System.IO.Directory.GetDirectories

        |> Array.toList

        |> List.sort

        |> List.map (scanDirectory false basePath)

    let files =

        path

        |> System.IO.Directory.GetFiles

        |> Array.toList

        |> List.sort

        |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath, 

System.IO.FileInfo(f).Length))



    let children = directories @ files

    if isRoot

    then Root children

    else Folder (path |> System.IO.Path.GetFileName, relativePath, children)



let rec generateHtml fsNode =

    let sizeLabel size =

        match float size with

        | size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB"

        | size when size > 1024.0 -> $"%.2f{size / 1024.0} KB"

        | size -> $"%.2f{size} B"

    match fsNode with

    | File (fileName, relativePath, size) ->

        Elem.div [[]] [[

            Text.raw "&#128196; "

            Elem.a [[

                Attr.href $"""{relativePath}{if relativePath = "" then "" else 

"/"}{fileName}"""

            ]] [[

                Text.raw fileName

            ]]

            Elem.span [[]] [[

                Text.raw $" ({size |> sizeLabel})"

            ]]

        ]]

    | Folder (folderName, relativePath, children) ->

        let size =

            let rec loop children =

                children

                |> List.sumBy (function

                    | File (_, _, size) -> size

                    | Folder (_, _, children)

                    | Root children -> loop children

                )

            loop children

        Elem.details [[

            Attr.open' "true"

        ]] [[

            Elem.summary [[]] [[

                Text.raw "&#128194; "

                Elem.a [[

                    Attr.href relativePath

                ]] [[

                    Text.raw folderName

                ]]

                Elem.span [[]] [[

                    Text.raw $" ({size |> sizeLabel})"

                ]]

            ]]

            Elem.div [[]] [[

                yield! children |> List.map generateHtml

            ]]

        ]]

    | Root children ->

        Elem.div [[]] [[

            yield! children |> List.map generateHtml

        ]]



let generateHtmlForFileSystem root =

    $"""<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <style>

body {{

    background-color: #222;

    color: #ccc;

}}

a {{

  color: #777;

  font-size: 15px;

}}

span {{

  font-size: 11px;

}}

div > div {{

  padding-left: 10px;

}}

details > div {{

  padding-left: 19px;

}}

  </style>

</head>

<body>

  {root |> generateHtml |> renderNode}

</body>

</html>

"""



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let tempFolder = SpiralFileSystem.create_temp_directory ()

let rec loop d n = async {

    if n >= 0 then

        tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore

        do!

            n

            |> string

            |> String.replicate (n + 1)

            |> FileSystem.writeAllTextAsync (tempFolder </> d </> $"file.txt")

        do! loop $"{d}/{n}" (n - 1)

}

loop "_.root" 3

|> Async.RunSynchronously



let html =

    scanDirectory true tempFolder tempFolder

    |> generateHtmlForFileSystem



html

|> _assertEqual """<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <style>

body {

    background-color: #222;

    color: #ccc;

}

a {

  color: #777;

  font-size: 15px;

}

span {

  font-size: 11px;

}

div > div {

  padding-left: 10px;

}

details > div {

  padding-left: 19px;

}

  </style>

</head>

<body>

  <div><details open="true"><summary>&#128194; <a href="_.root">_.root</a><span>

(10.00 B)</span></summary><div><details open="true"><summary>&#128194; <a 

href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details 

open="true"><summary>&#128194; <a href="_.root/3/2">2</a><span> (3.00 

B)</span></summary><div><details open="true"><summary>&#128194; <a 

href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>&#128196; <a 

href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 

B)</span></div></div></details><div>&#128196; <a 

href="_.root/3/2/file.txt">file.txt</a><span> (2.00 

B)</span></div></div></details><div>&#128196; <a 

href="_.root/3/file.txt">file.txt</a><span> (3.00 

B)</span></div></div></details><div>&#128196; <a 

href="_.root/file.txt">file.txt</a><span> (4.00 

B)</span></div></div></details></div>

</body>

</html>

"""



html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent



╭─[ 178.43ms - return value ]──────────────────────────────────────────────────╮

│ <!DOCTYPE html>                                                              │

│ <html lang="en">                                                             │

│ <head>                                                                       │

│   <meta charset="UTF-8">                                                     │

│   <style>                                                                    │

│ body {                                                                       │

│     background-color: #222;                                                  │

│     color: #ccc;                                                             │

│ }                                                                            │

│ a {                                                                          │

│   color: #777;                                                               │

│   font-size: 15px;                                                           │

│ }                                                                            │

│ span {                                                                       │

│   font-size: 11px;                                                           │

│ }                                                                            │

│ div > div {                                                                  │

│   padding-left: 10px;                                                        │

│ }                                                                            │

│ details > div {                                                              │

│   padding-left: 19px;                                                        │

│ }                                                                            │

│   </style>                                                                   │

│ </head>                                                                      │

│ <body>                                                                       │

│   <div><details open="true"><summary>&#128194; <a                            │

│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details       │

│ open="true"><summary>&#128194; <a href="_.root/3">3</a><span> (6.00          │

│ B)</span></summary><div><details open="true"><summary>&#128194; <a           │

│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details         │

│ open="true"><summary>&#128194; <a href="_.root/3/2/1">1</a><span> (1.00      │

│ B)</span></summary><div><div>&#128196; <a href="_.root...                    │

╰──────────────────────────────────────────────────────────────────────────────╯



╭─[ 195.89ms - stdout ]────────────────────────────────────────────────────────╮

│ <!DOCTYPE html>                                                              │

│ <html lang="en">                                                             │

│ <head>                                                                       │

│   <meta charset="UTF-8">                                                     │

│   <style>                                                                    │

│ body {                                                                       │

│     background-color: #222;                                                  │

│     color: #ccc;                                                             │

│ }                                                                            │

│ a {                                                                          │

│   color: #777;                                                               │

│   font-size: 15px;                                                           │

│ }                                                                            │

│ span {                                                                       │

│   font-size: 11px;                                                           │

│ }                                                                            │

│ div > div {                                                                  │

│   padding-left: 10px;                                                        │

│ }                                                                            │

│ details > div {                                                              │

│   padding-left: 19px;                                                        │

│ }                                                                            │

│   </style>                                                                   │

│ </head>                                                                      │

│ <body>                                                                       │

│   <div><details open="true"><summary>&#128194; <a                            │

│ href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details       │

│ open="true"><summary>&#128194; <a href="_.root/3">3</a><span> (6.00          │

│ B)</span></summary><div><details open="true"><summary>&#128194; <a           │

│ href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details         │

│ open="true"><summary>&#128194; <a href="_.root/3/2/1">1</a><span> (1.00      │

│ B)</span></summary><div><div>&#128196; <a                                    │

│ href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00                        │

│ B)</span></div></div></details><div>&#128196; <a                             │

│ href="_.root/3/2/file.txt">file.txt</a><span> (2.00                          │

│ B)</span></div></div></details><div>&#128196; <a                             │

│ href="_.root/3/file.txt">file.txt</a><span> (3.00                            │

│ B)</span></div></div></details><div>&#128196; <a                             │

│ href="_.root/file.txt">file.txt</a><span> (4.00                              │

│ B)</span></div></div></details></div>                                        │

│ </body>                                                                      │

│ </html>                                                                      │

│                                                                              │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## Arguments                                                                 │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

[[<RequireQualifiedAccess>]]

type Arguments =

    | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string

    | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string



    interface Argu.IArgParserTemplate with

        member s.Usage =

            match s with

            | Dir _ -> nameof Dir

            | Html _ -> nameof Html



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



Argu.ArgumentParser.Create<Arguments>().PrintUsage ()



╭─[ 122.87ms - return value ]──────────────────────────────────────────────────╮

│ USAGE: dotnet-repl [--help] --dir <string> --html <string>                   │

│                                                                              │

│ OPTIONS:                                                                     │

│                                                                              │

│     --dir <string>        Dir                                                │

│     --html <string>       Html                                               │

│     --help                display this list of options.                      │

│                                                                              │

╰──────────────────────────────────────────────────────────────────────────────╯



── markdown ────────────────────────────────────────────────────────────────────

╭──────────────────────────────────────────────────────────────────────────────╮

│ ## main                                                                      │

╰──────────────────────────────────────────────────────────────────────────────╯



── fsharp ──────────────────────────────────────────────────────────────────────

let main args =

    let argsMap = args |> Runtime.parseArgsMap<Arguments>



    let dir =

        match argsMap.[[nameof Arguments.Dir]] with

        | [[ Arguments.Dir dir ]] -> Some dir

        | _ -> None

        |> Option.get



    let htmlPath =

        match argsMap.[[nameof Arguments.Html]] with

        | [[ Arguments.Html html ]] -> Some html

        | _ -> None

        |> Option.get



    let fileSystem = scanDirectory true dir dir

    let html = generateHtmlForFileSystem fileSystem



    html |> FileSystem.writeAllTextAsync htmlPath

    |> Async.runWithTimeout 30000

    |> function

        | Some () -> 0

        | None -> 1



── fsharp ──────────────────────────────────────────────────────────────────────

//// test



let args =

    System.Environment.GetEnvironmentVariable "ARGS"

    |> Runtime.splitArgs

    |> Seq.toArray



match args with

| [[||]] -> 0

| args -> if main args = 0 then 0 else failwith "main failed"



╭─[ 78.93ms - return value ]───────────────────────────────────────────────────╮

│ <div class="dni-plaintext"><pre>0</pre></div><style>                         │

│ .dni-code-hint {                                                             │

│     font-style: italic;                                                      │

│     overflow: hidden;                                                        │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview {                                                              │

│     white-space: nowrap;                                                     │

│ }                                                                            │

│ .dni-treeview td {                                                           │

│     vertical-align: top;                                                     │

│     text-align: start;                                                       │

│ }                                                                            │

│ details.dni-treeview {                                                       │

│     padding-left: 1em;                                                       │

│ }                                                                            │

│ table td {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ table tr {                                                                   │

│     vertical-align: top;                                                     │

│     margin: 0em 0px;                                                         │

│ }                                                                            │

│ table tr td pre                                                              │

│ {                                                                            │

│     vertical-align: top !important;                                          │

│     margin: 0em 0px !important;                                              │

│ }                                                                            │

│ table th {                                                                   │

│     text-align: start;                                                       │

│ }                                                                            │

│ </style>                                                                     │

╰──────────────────────────────────────────────────────────────────────────────╯

[NbConvertApp] Converting notebook DirTreeHtml.dib.ipynb to html

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbformat\__init__.py:93: MissingIDFieldWarning: Code cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.

  validate(nb)

C:\Users\i574n\scoop\apps\python\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3

  return _pygments_highlight(

[NbConvertApp] Writing 309845 bytes to DirTreeHtml.dib.html

00:00:00 #1 [Debug] writeDibCode / output: Fs / path: DirTreeHtml.dib

00:00:00 #2 [Debug] parseDibCode / output: Fs / file: DirTreeHtml.dib

00:00:00 #1 [Debug] persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/date_time.fsx; ... ] / name: DirTreeHtml / code.Length: 4631

00:00:00 #2 [Debug] buildProject / fullPath: C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj

00:00:00 #3 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64"

  WorkingDirectory =

   Some "C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml"

  CancellationToken = None

  OnLine = None }

00:00:00 #4 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:01 #5 [Verbose] >   Determining projects to restore...

00:00:03 #6 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj (in 1.61 sec).

00:00:03 #7 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj]

00:00:10 #8 [Verbose] >   DirTreeHtml -> C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\bin\Release\net9.0\linux-x64\DirTreeHtml.dll

00:00:12 #9 [Verbose] >   DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\

00:00:12 #10 [Debug] executeAsync / exitCode: 0 / output.Length: 732

00:00:12 #11 [Debug] executeAsync / options: { Command =

   "dotnet publish "C:\home\git\polyglot\target/polyglot/builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64"

  WorkingDirectory =

   Some "C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml"

  CancellationToken = None

  OnLine = None }

00:00:12 #12 [Verbose] > MSBuild version 17.10.0-preview-24101-01+07fd5d51f for .NET

00:00:13 #13 [Verbose] >   Determining projects to restore...

00:00:13 #14 [Verbose] >   Restored C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj (in 425 ms).

00:00:13 #15 [Verbose] > C:\Users\i574n\scoop\apps\dotnet-sdk-preview\current\sdk\9.0.100-preview.1.24101.2\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(313,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\DirTreeHtml.fsproj]

00:00:20 #16 [Verbose] >   DirTreeHtml -> C:\home\git\polyglot\target\polyglot\builder\DirTreeHtml\bin\Release\net9.0\win-x64\DirTreeHtml.dll

00:00:28 #17 [Verbose] >   DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\

00:00:28 #18 [Debug] executeAsync / exitCode: 0 / output.Length: 728

In [ ]:
{ . "$ScriptDir/../apps/ipfs/build.ps1" } | Invoke-Block
bun install v1.1.0 (5903a614)



 Done! Checked 220 packages (no changes) [1.64s]

In [ ]:
{ . "$ScriptDir/outdated.ps1" } | Invoke-Block
Paket version 8.1.0-alpha001+27cb9f111f156e8b68d08dc293857425c0ade23d

Resolving dependency graph...

Outdated packages found:

  Group: Main

    * Argu 6.2.2 -> 6.2.3

    * Expecto.FsCheck 10.2.1-fscheck3 -> 10.2.1

    * FsCheck 3.0.0-rc3 -> 2.16.6

    * FSharp.Core 8.0.300-beta.24080.5 -> 8.0.300-beta.24154.4

    * Microsoft.AspNetCore.Connections.Abstractions 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.AspNetCore.Http.Connections.Client 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.AspNetCore.Http.Connections.Common 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.AspNetCore.SignalR.Client 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.AspNetCore.SignalR.Client.Core 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.AspNetCore.SignalR.Common 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.AspNetCore.SignalR.Protocols.Json 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.Extensions.DependencyInjection 8.0 -> 9.0.0-preview.2.24128.5

    * Microsoft.Extensions.DependencyInjection.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5

    * Microsoft.Extensions.Features 7.0 -> 9.0.0-preview.2.24128.4

    * Microsoft.Extensions.Logging 8.0 -> 9.0.0-preview.2.24128.5

    * Microsoft.Extensions.Logging.Abstractions 8.0.1 -> 9.0.0-preview.2.24128.5

    * Microsoft.Extensions.Options 8.0.2 -> 9.0.0-preview.2.24128.5

    * Microsoft.Extensions.Primitives 8.0 -> 9.0.0-preview.2.24128.5

    * System.IO.Pipelines 8.0 -> 9.0.0-preview.2.24128.5

    * System.Threading.Channels 8.0 -> 9.0.0-preview.2.24128.5

Total time taken: 55 seconds


CheckToml / toml: C:\home\git\polyglot\Cargo.toml

chat_contract_tests

================

Name       Project  Compat   Latest   Kind    Platform

----       -------  ------   ------   ----    --------

autocfg    1.2.0    Removed  Removed  Build   ---

hashbrown  0.12.3   0.14.3   0.14.3   Normal  ---

indexmap   1.9.3    2.2.6    2.2.6    Normal  ---


CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\Cargo.toml

All dependencies are up to date, yay!


CheckToml / toml: C:\home\git\polyglot\apps\chat\contract\tests\Cargo.toml

Name                          Project  Compat   Latest   Kind    Platform

----                          -------  ------   ------   ----    --------

ahash->cfg-if                 1.0.0    ---      Removed  Normal  ---

ahash->once_cell              1.19.0   ---      Removed  Normal  cfg(not(all(target_arch = "arm", target_os = "none")))

ahash->version_check          0.9.4    ---      Removed  Build   ---

ahash->zerocopy               0.7.32   ---      Removed  Normal  ---

hashbrown->ahash              0.8.11   ---      Removed  Normal  ---

hashbrown->allocator-api2     0.2.16   ---      Removed  Normal  ---

indexmap->autocfg             1.2.0    Removed  ---      Build   ---

indexmap->equivalent          1.0.1    ---      Removed  Normal  ---

indexmap->hashbrown           0.12.3   0.14.3   ---      Normal  ---

indexmap->hashbrown           0.14.3   ---      0.12.3   Normal  ---

proc-macro2->unicode-ident    1.0.12   ---      Removed  Normal  ---

quote->proc-macro2            1.0.79   ---      Removed  Normal  ---

serde_with->indexmap          1.9.3    2.2.6    ---      Normal  ---

serde_with->indexmap          2.2.6    ---      1.9.3    Normal  ---

syn->proc-macro2              1.0.79   ---      Removed  Normal  ---

syn->quote                    1.0.35   ---      Removed  Normal  ---

syn->unicode-ident            1.0.12   ---      Removed  Normal  ---

zerocopy->zerocopy-derive     0.7.32   ---      Removed  Normal  ---

zerocopy-derive->proc-macro2  1.0.79   ---      Removed  Normal  ---

zerocopy-derive->quote        1.0.35   ---      Removed  Normal  ---

zerocopy-derive->syn          2.0.58   ---      Removed  Normal  ---


CheckToml / toml: C:\home\git\polyglot\apps\plot\Cargo.toml

All dependencies are up to date, yay!


CheckJson / json: C:/home/git/polyglot

$ npm-check-updates --target greatest

Using bun

Checking C:\home\git\polyglot\package.json





All dependencies match the greatest package versions :)


CheckJson / json: C:/home/git/polyglot/apps/ipfs

$ npm-check-updates --target greatest

Using bun

Checking C:\home\git\polyglot\apps\ipfs\package.json





All dependencies match the greatest package versions :)


CheckJson / json: C:/home/git/polyglot/apps/spiral/temp/extension

$ npm-check-updates --target greatest

Using bun

Checking C:\home\git\polyglot\apps\spiral\temp\extension\package.json





 @playwright/test  1.42.1  →  1.44.0-alpha-2024-04-04



Run ncu --target greatest -u to upgrade package.json